Pick an objective and get the workout that delivers the most of it — that you can still finish. Every number here comes from a physiological model. It's a prediction, not a measurement of you.
Hover any chart to read every value at that moment.
How the model works, and every reference behind it, is in Concepts.
Most workout libraries start with the workout and leave you to guess what it does. This one starts with the goal. You pick an objective (Zone 2 work, threshold stimulus, time near V̇O₂max, anaerobic work or calories), a session length and your rider numbers. The builder then simulates every relevant workout structure second by second on a physiological model of you, and ranks them by how much of that objective each one delivers while staying finishable.
"Finishable" is doing real work here. A 6 × 8 min at 115% FTP would score beautifully on paper, and almost nobody gets through it. The model tracks the things that end sessions in real life (W′, fatigue that builds over the ride, muscle acidity, glycogen) and throws out any version that runs one of them dry. What's left is the most stimulus you can actually collect, and the price you pay for it in lasting fatigue.
There are two ways to get a workout. As Researched runs the protocols from published studies as closely as the bike allows. AI Optimized takes each structure (threshold over-unders, 30/15s, long V̇O₂ intervals and so on) and searches inside its sensible limits for the version that suits your objective and your physiology best.
Four numbers describe you: FTP, critical power (CP), W′ and the power at which you reach V̇O₂max (often called MAP). CP is the boundary between work you can stabilise and work that drains you toward exhaustion; above it, every joule comes out of a finite reserve, W′. Below it you can keep going for a long time, though not forever (see Durability).
Most riders know their FTP and nothing else, so the athlete type fills in the rest. An aerobic rider gets a small W′ (0.20 kJ/kg), CP at 107% of FTP and V̇O₂max power at 118% of FTP. Balanced is 0.30 kJ/kg, 105% and 125%. Anaerobic is 0.45 kJ/kg, 102% and 135%. These aren't arbitrary. Riders with the same V̇O₂max can sit at their lactate threshold anywhere from 66% to 82% of it (Coyle 1988), CP tracks type I fibre content (Vanhatalo 2016), and the arithmetic of a 20-min FTP test (FTP = 0.95 × (CP + W′/1200 s)) means a big W′ props FTP up relative to CP. The exact ratios are our modelling call (athlete-type defaults), and a measured W′ or CP/FTP replaces them.
V̇O₂ at a given power follows the ACSM cycling equation, scaled so you hit V̇O₂max at your MAP. That gives the model a common currency: watts in, oxygen out.
Zones use Coggan's seven power levels as % of FTP: recovery up to 55, endurance 56–75, tempo 76–90, threshold 91–105, V̇O₂max 106–120, anaerobic 121–150 and neuromuscular above that (Allen & Coggan 2010). Each objective counts only the seconds that land inside its band. A tempo block next to Zone 2 doesn't get partial Zone 2 credit; it's simply not Zone 2.
Zone 2 work adds up seconds at 56–75% FTP, each weighted by power/FTP, so an hour at 72% counts a bit more than an hour at 60%. Volume is what drives mitochondrial content, with intensity adding a smaller nudge (Granata 2018; Zone 2 scoring).
Threshold · time in zone counts seconds at 91–105% FTP, each weighted by (power/FTP)². A minute at 100% is one threshold-equivalent minute, 105% counts 1.10 and 91% counts 0.83. Higher work within the band counts more because upper-heavy training moved V̇O₂max and thresholds further than lower-heavy work (Inglis 2024). The weight stops at a square so duration still matters: in Seiler 2013, 4 × 8 min beat both the shorter, harder 4 × 4 and the longer, easier 4 × 16 (stimulus weighting). Threshold · lactate is its alternative, covered in its own section below.
Time at V̇O₂max counts minutes with oxygen uptake at or above 90% of max, the standard measure in interval research. It depends on the V̇O₂ model below, not just on power. Anaerobic work counts kilojoules done above your current CP, the critical-power version of the oxygen deficit Tabata's protocol was built to stress (Tabata 1996; anaerobic scoring). Max calories ranks every structure by kcal per hour of the main set and shows the top ten.
Threshold training can be measured two ways, and the builder offers both as objectives, with both scores on every threshold card. Time in zone counts minutes at 91–105% FTP, harder minutes weighted more. That's how most power-based plans prescribe threshold, and it rewards riding at or just around FTP. Lactate counts minutes with blood lactate held in a moderate band, 2–4.75 mmol/L with full credit at 3–4 (band placement). That's the high sub-threshold pocket: lactate clearance peaks just below the threshold, and the threshold itself is where clearance stops keeping up, not where production suddenly jumps (Messonnier 2013). Trained cyclists at their threshold held about 3.7 mmol/L; 10% less power raised clearance by almost half. That's the logic of lactate-guided training, where sessions are paced to a lactate target rather than a power number (Casado 2023). Both describe the same goal from a different angle, and they favour different workouts, so the objective you pick sets which one the ranking follows.
Each view has its own evidence. Time in zone rests on power-based interval studies, where riding higher within the threshold band moved V̇O₂max and thresholds further (Inglis 2024) and accumulated work near threshold drove adaptation (Seiler 2013). The lactate view is mostly about power at the lactate threshold. A block of long intervals at about 2.9 mmol/L raised power at 4 mmol/L more than short intervals at 7.5 (Rønnestad 2025), and a moderate block at about 2.8 raised it 4% (Mølmen 2025). Training also raises lactate clearance, and clearance peaks just below the threshold. Neither scoring has been tested head to head against the other, so both weightings are our call. It's also worth separating sessions from seasons: Guellich & Seiler 2010 found that junior cyclists who spent a bigger share of the season at 3–6 mmol/L gained less threshold power, a finding about the weekly intensity mix rather than about any single threshold session.
Lactate isn't measured here, so the builder models it. MLSS, the highest power where lactate stays steady, is set at 93% of FTP (Inglis 2020), with lactate there at 4.5 mmol/L. Below it, lactate settles at a level that climbs steeply toward MLSS, with the first rise around 70–75% FTP. Above it, lactate keeps drifting up, and faster still above CP. Short rests count, because blood lactate stays up through them, which is the whole idea behind 30/30s and the Norwegian method. The score counts band time while you're working and through rests of up to 3 min. Longer rests don't count, so lactate left over from sprints and ridden off easily isn't scored as threshold work (short-rest rule). That makes the recovery side matter. Blood lactate keeps rising for 2–3 min after a bout as it moves out of the muscle (Durand 2021; Moxnes & Sandbakk 2012), and it clears fastest when you keep pedalling near the first threshold, slower when you stop or ride close to MLSS (Menzies 2010; Devlin 2014; Belcastro & Bonen 1975). Pedalling anywhere from soft to steady still clears much faster than stopping (Hermansen & Stensvold 1972; McAinch 2004). Short easy breaks are why intermittent MLSS sits 7–13% above the continuous one (Greco 2012; Beneke 2003).
The model lands within about 25% of measured cycling sessions: 4.8 against 4.7 mmol/L for 4 × 16, 9.1 against 9.2 for 4 × 8 and 12.4 against 12.7 for 4 × 4 (Sylta 2016), about 7 for 30/15 blocks (Solli 2025), and 4.4 vs 7.7 mmol/L after active vs passive recovery (McAinch 2004; model 5.8 vs 8.8). In AI Optimized, each threshold structure is built for the concept its source workout was designed around: Norwegian, moderate and sweet-spot sessions for lactate, Odden, Stöggl, Inglis and over-unders for time in zone. The card says which, and the ranking follows the objective you chose.
Above CP you're spending W′, and spending it is easy to model: every joule above CP comes out of the tank. The interesting part is the refill. The classic W′-balance model refills with a single exponential whose speed depends on how far below CP you recover (Skiba 2012). Measured recovery doesn't follow one curve, though. It has a fast phase and a slow one.
So the model uses Chorley's bi-exponential version (Chorley 2022, 2023). About 36% of W′ behaves like phosphocreatine: it empties first and refills within a minute or so if you back off properly. The rest refills over several minutes. Both phases slow down the closer your recovery is to CP, which is why 85%-of-CP "floats" give back far less than soft-pedalling. At 85% of CP, roughly 40% comes back in 4 min.
Repeated deep drains refill less each time (Chorley 2019), so after a bout that empties more than half of W′, part of the fast deficit moves to the slow pool. We apply that only to deep drains. Short, shallow ones like 30/30s refill normally, partly because W′-balance already tends to under-predict refill there (Skiba & Clarke 2021; Bartram 2018).
CP and W′ aren't fixed numbers during a ride. Both drift down as work piles up, and that's the reason a long, flat threshold effort eventually falls apart and why intervals exist at all. The model fades CP and the W′ ceiling with accumulated load, where each kilojoule is weighted by (power/FTP)³ so hard kilojoules cost more than easy ones. The weighting is fitted to two anchors: two hours of heavy riding cut CP by about 11% and W′ by about 20% (Clark 2019), and 150 min of moderate riding lowered 5-min power by 9 ± 10% (Hamilton 2024; the model gives about 7%).
The overall rate is calibrated so a steady effort at FTP lasts about 51 min at Typical durability, 35 at Low and 67 at High. That's the mean ± 1 SD of time to exhaustion at FTP in trained cyclists (Borszcz 2018), and it holds at any FTP.
Some of that fatigue comes back quickly when you ride easy, and some doesn't. The model returns 60% of it with a 5-min time constant below 60% FTP and keeps the other 40% for the rest of the session. That split is a modelling choice (partial recovery): nobody has measured CP itself recovering mid-session, so it's fitted to force recovery after fatiguing work (McClean 2025; Carroll 2017) and to intermittent work at MLSS lasting about 24% longer than continuous (Grossl 2012). The practical upshot is that splitting the same work with rests really is cheaper than one long block.
W′ alone can't explain why a Tabata set ends around bout seven or eight. Something else accumulates during repeated hard efforts and clears slowly, and muscle pH is the obvious candidate. Lactate production itself isn't what acidifies the muscle (protons come mostly from ATP turnover outrunning aerobic supply), but blood lactate and pH move together closely enough to be useful markers.
The model keeps a separate "acidity" state that builds with work above CP and clears below it. Clearance is slow on purpose. Muscle pH recovers over many minutes after a sprint: 6.69 to 6.80 in nearly four minutes (Bogdanis 1996), with muscle lactate half-times around 9–10 min (Sahlin 1976; Allsop 1990). So acidity clears with a time constant of about 13 min riding easy, and more slowly near CP, where pH settles rather than recovers (Jones 2008).
Production also tapers as acidity rises, down to 20% of the full rate at the limit, because glycolysis throttles itself when pH drops (Gaitanos 1993). Reaching the limit ends the session, matching the consistent metabolic floor seen at exhaustion above CP (Black 2017; Vanhatalo 2010). The limit is fitted so Tabata's 20/10s end at bout seven (acidity model).
Oxygen uptake lags power. After a step up, the fast "primary" response closes most of the gap with a time constant around 30 s in trained cyclists (Murgatroyd 2011; Caritá 2014). After a step down it falls more slowly, so short recoveries don't reset V̇O₂.
Above the gas-exchange threshold, each extra watt buys less oxygen at first. The model puts that first threshold at 72% of FTP, the same place the lactate model's first rise sits, since in trained cyclists the first lactate turnpoint falls around 70–75% FTP (first-threshold placement). The fundamental gain drops from about 11.5 to 10.0 mL/min/W between moderate and severe exercise (Özyener 2001), and to 7.2–8.6 above CP against 9.3–9.7 below (Wilkerson 2004). The rest arrives later as the slow component, which is where the interesting training effects live.
Above CP, the model ties the slow component to the share of W′ you've used, so V̇O₂ reaches its max as W′ runs out. That's what the data show: every bout above CP reaches V̇O₂max before exhaustion (Hill 2002), and the slow component's size tracks W′ (Murgatroyd 2011). When you drop to just below CP, that extra V̇O₂ is held rather than cleared (Chidnok 2012).
Put those together and the fast start makes sense. Spend some W′ in the first minute or two and V̇O₂ is already high when the power settles, then stays there. Fast starts and surges do raise time near V̇O₂max (Rønnestad 2022; Bossi 2020), but when the W′ spent is matched, the advantage disappears (Miller 2023). It's the W′ spent that matters, not the shape. The sizes in our version were fitted to measured cycling time above 90% V̇O₂max (Bossi 2020; Appelhans 2025).
Calories come from oxygen. Each litre of O₂ is converted to kcal with the Weir equation at a respiratory exchange ratio that rises with intensity, from about 0.88 at 65% FTP to 1.00 at FTP, which also gives the carbohydrate share of the fuel.
The whole thing is pinned to a gross efficiency of 21% at FTP. Trained riders typically measure 19–21% (Moseley & Jeukendrup 2001; Hopker 2009); the 24% figure that gets passed around comes from world-class pros (Lucía 2002). The old rule of thumb that kcal burned equals kJ on the power meter assumes about 24%, so for most riders it under-counts.
Workouts that swing power around cost a little more oxygen than steady ones at the same average, mostly from extra breathing (Bossi 2020), so variable sessions get a small ventilatory surcharge. Carbohydrate use also drains a glycogen store sized from body mass (about 14 g per kg of muscle, plus 90 g in the liver), and a session that runs it dry counts as unfinishable.
The extra oxygen you consume after a ride is EPOC. Studies define it differently, mainly by how long they measure and what they subtract, so the model is explicit: it's the extra O₂ over roughly three hours compared with resting, the window most interval studies use.
It has three parts, shown separately in the energy breakdown. The fast part repays the oxygen shortfall from the start of each effort while W′ is still full: phosphocreatine and oxygen stores. The lactate part repays the shortfall once W′ is being drawn down. The metabolic part covers everything else that keeps your metabolism up afterwards (body temperature, hormones, substrate cycling), set as a share of the session's oxygen cost that rises with intensity: about 3% at 60% of V̇O₂max, closer to 5% at 90%. EPOC climbs steeply with intensity (Bahr & Sejersted 1991) and usually lands between 6% and 15% of the exercise oxygen cost over longer windows (LaForgia 2006).
The sizes were fitted to measured cycling studies: about 5 L after 30 min at 70% (Peterson 2025), 2.9–6.8 L across continuous, interval and sprint sessions (Matsuo 2012), 6.7 L after three 20-s all-out sprints (Clausen & Astorino 2024) and the pooled values in Panissa 2021. One known miss: a single 2-min bout at 108% V̇O₂max comes out at about half the 5.6 L Bahr 1992 measured.
Every workout has a price, and the builder tries to name it. Cost is how much the session lowers your best 5-min power once W′ has refilled: the CP fade plus the lowered W′ ceiling. W′ that's still refilling at the finish is left out, so a session doesn't look costlier just because its last rep ends late. A lasting drop in performance is the criterion Passfield 2022 used to judge training-load metrics, and it's personal: the same workout costs a low-durability rider more. TSS is shown for reference but doesn't drive any decision.
Stimulus per cost divides the objective by Cost. It's the efficiency number: which workout buys its stimulus cheapest. The cards flag the most stimulus, the most efficient and the lowest cost separately because they're often three different workouts.
How hard is the load of the whole session. The builder predicts your RPE every second, squares it and adds it up minute by minute, so every minute counts and hard minutes count more. A 60-minute Zone 2 ride scores 100. This follows the session-RPE idea of effort times duration (Foster 2001); squaring each minute, the 100 anchor and the cut-offs are our modelling choices (session load). Brutal is a fixed floor, a load of 590 or more, about an hour at 95% FTP. Below that, the levels are relative to your objective at your session length. The range from the lightest finishable version with any of your objective (for V̇O₂max, even one that only nears 90%) up to 590 is split in thirds: Breezy, Sporting and Spicy. ExtraPickels workouts keep the level they were written for, and a workout the model says can't be finished is listed as Brutal. Each level's version is the one with the most of your objective that still fits inside its band, at the lowest Cost. An objective that never reaches 590 at your length has no Brutal, and when its range is too narrow to tell levels apart, they merge, so some sessions offer only one or two levels. Easy versions are always there to choose: one that gives less than a quarter of the best workout's dose is marked Low stimulus, with its share of the best on the card, fine for an easy day or a first ride back, but it won't move the objective much. Each card shows its session RPE: how hard the whole session feels on the same 0–10 scale, whatever its length.
"AI" here means search, not a language model. Each structure comes with limits drawn from the studies behind it: how many reps, how long, how hard, how much rest and at what power, whether later reps can fade (structure limits). The search samples hundreds of versions inside those limits, refines the best ones locally, and keeps the version that scores highest on your objective at your How hard level. The budget is fixed, so the same inputs always give the same answer.
Rest is limited by what's been studied, not by what scores well. Threshold and sweet-spot reps get 1–3.5 min between them, V̇O₂max intervals 2–4 min. Two minutes beat one, and four added nothing, for 6 × 4-min intervals (Seiler & Hetlelid 2005), and 2–4 min didn't change time near V̇O₂max (Smilios 2018; Schoenmakers 2019). The full list is in rest limits. One exception is ours: an easy V̇O₂max day can space a few reps across the whole session, with recoveries up to 16 min ridden at Zone 2 instead of soft-pedalling (long recoveries). That spreads 3 × 4 min over an hour instead of bunching the work and riding easy for the last half.
If the session has time left after the best version fits, that time goes to productive work first (more reps, then more rest within the cited limits) and only then to cool-down.
These are the published protocols, run as written and scaled to your FTP. The translation from each paper's prescription (% of MAP, heart rate, % of 40-min power, lactate targets) to % FTP is ours, and each one is noted with its source. Some studies prescribed "maximal sustainable effort" rather than a number (Seiler's 4 × 4, 4 × 8 and 4 × 16, Rønnestad's 30/15s). For those, the model finds the highest power you can finish across the full protocol.
Staying faithful means nothing is cut or stretched to fit your session. Each protocol runs at its own length, every rep as published, with the warm-up and cool-down you picked. Total length decides which protocols are listed: those whose full session lands within 20% of it (at 30 min, anything shorter too, so Tabata's 19-min session shows there). The rest are named under the cards with the length that lists them. Your own ExtraPickels workouts follow the same rule. Nothing is re-tuned. As a check on that approach, the model's full-protocol maximum lands close to what riders actually chose in Sylta 2016: about 100% FTP for 4 × 16 against a measured 97% of power at 4 mmol/L, 109% for 4 × 8 against 106%, and 121% for 4 × 4 against 118%.
Every published protocol is tested to make sure the model rates it finishable at Typical and High durability, since the study riders did finish them.
"Hard" means different things. A 5-min effort at 120% FTP hurts a lot for a few minutes and is forgotten by dinner. Two hours at 80% never really hurts and still leaves you flat the next day. The pill on each card is the session RPE: the predicted effort of every minute, averaged so hard minutes weigh more (the square root of the mean squared RPE). Hover it to see the session load, the peak RPE, minutes at 7 or above, and the odds of finishing.
Finish odds. The model knows how much of your predicted tolerance a session uses at its hardest point. Real riders scatter around any prediction: time to exhaustion at FTP is 51 ± 16 min across trained cyclists (Borszcz 2018), and even one rider repeating the same test varies by about 27% (Jeukendrup 1996). With that ~30% spread, a session sitting right at your predicted limit is a coin flip, and one using 60% of it is nearly a sure thing.
How much it hurts. The builder predicts your rating of perceived exertion every second on a 0–10 scale anchored to how long you could keep going at that power right now: 2 is light aerobic riding you could hold indefinitely, 3 moderate aerobic for most of a day, 4 the top of base into tempo for hours, 5 sub-threshold for about an hour, 6 threshold, 7 working hard but in control for about 30 minutes, 8 V̇O₂max range for under 10 minutes, 9 a minute or two, and 10 is when you can't continue (effort scale). Time left comes from the same W′, CP-fade and glycogen state that ends sessions, so fatigue shows up as your next effort feeling harder, the way RPE climbs from bout to bout in interval sessions (Seiler & Hetlelid 2005), while easy riding between efforts drops back toward 2 or 3. Breathing builds over about half a minute, so the first of a set of 30/30s feels like a 5 and the set climbs to 8 or 9; legs react at once, so an all-out sprint is near 10 immediately; and hard work leaves a carry-over that makes the next set start about half a point higher. Ratings track the share of your time limit already used (Garcin & Billat 2001; Eston 2007), which is what this scale is built on. The line is on the Predicted limits chart.
Recovery is estimated but doesn't set the level. Its cut-offs are estimates, and grading by them ruled out most easier versions of hard sessions. Two clocks run after a session, and the longer one wins. Autonomic recovery is quick below the first threshold, delayed by anything much above it, and longest after real high-intensity work: roughly a day, one to two days, and two days or more (Stanley 2013; Seiler 2007). Glycogen refills at around 5–6 mmol per kg of muscle per hour if you eat well, so a big depletion needs most of a day (Burke 2017). Nobody has published an equation that turns a workout into recovery hours, so these cut-offs are coaching estimates and labelled as such.
Short isolated sprints are left out of the grade and the recovery estimate. They run largely on phosphocreatine (about half the energy of a first 6-s sprint, Gaitanos 1993), which is mostly back within a few minutes (Bogdanis 1996). Change your W′, CP/FTP or durability and the ratings move with you.
It's a model, and it's honest about where it guesses. Coefficients marked as modelling choices in the references are fitted or judged, not measured: the acidity limit, the durability recovery split, the athlete-type ratios and the EPOC sizes all sit in that group. Individual riders vary a lot around every average used here. Time to exhaustion at FTP alone spans roughly 35 to 67 min across one standard deviation of trained cyclists.
It also doesn't know about heat, altitude, sleep, nutrition before the session, or what you did yesterday. Every workout starts you fresh. And it predicts the session, not the adaptation. A higher stimulus score means more of the thing the research links to adaptation, not a guaranteed bigger gain.
Every source the model and the workouts lean on. Entries marked as a modelling choice or physiologist judgment are our calls, labelled so you can tell them apart from measured findings.