Activity VO2max Explained: Why Your Number Moves (2026)

Why Your Activity VO2max Moves — And Why It's Sometimes Blank

Listen to this article Narrated by Sebastian Schluricke (Afasteryou) · 7 min · AI voice

Yesterday's ride said 54. Today's says 51. And the recovery spin this morning shows nothing at all. Which one is your real VO2max?

The one-sentence answer

None of them on its own. A single activity is one noisy measurement of your engine — the curve built from all of them is the number that means something.

Everything below is the fine print: where the per-activity estimate comes from, how far it actually swings in our own database, why some sessions show no value at all, and what you still get when the AI stays quiet.

Where the number comes from

Two layers do the work, and they do different jobs.

Mader is the foundation. Every activity you sync is run through a metabolic model built on the work of Alois Mader (Mader & Heck 1986; Mader 2003). That model is what produces lactate, phosphocreatine, oxygen uptake and fuel usage for your session. It is always active — no exceptions, no toggle.

The neural network estimates your engine. Mader's model can be solved backwards for VO2max and VLamax when an athlete is fully spent — which is exactly what a Powertest is designed to produce. In a normal Tuesday training session you're nowhere near fully spent, so that backwards calculation isn't reliable. Instead, a neural network trained on roughly 15,000 of those power tests takes your power and heart-rate trace and estimates what your VO2max and VLamax must be to explain what it just saw.

That's the honest description of the mechanism: a measured anchor for the model, a trained estimator for everyday sessions. Not a heart-rate formula, not a generic age-and-gender table.

Two levels: the snapshot and the trend

This is the part worth internalising, because it settles most of the questions we get.

Per activity, you get an estimate from that single session. It's a tendency, not a verdict.

Per week, those estimates are fused into one value — since powerAI v3, by a Kalman filter running across your whole history. That's the value your metabolic profile shows, and that's the one to steer by.

What the swing actually looks like in our data

We can put numbers on this, because it's our own database. We took every cycling session with an AI estimate over the last 180 days, grouped them by athlete and calendar week, and kept only the weeks with at least four rides — 14,344 athlete-weeks.

ValueMedian spread90th percentile
Raw network output5.3 ml/min/kg12.5 ml/min/kg
Filtered value1.1 ml/min/kg2.8 ml/min/kg

Spread = highest minus lowest estimate an athlete saw inside one calendar week. The raw network output is never displayed anywhere in the app; the filtered value is the one on your activity.

Read the first row again. In a typical training week, the raw per-session estimate wanders by more than five points — the difference between "solid club rider" and "regional level" — while nothing about your physiology changed at all. Heat, sleep, a fasted ride, a drifting chest strap, a session with barely any intensity variation: every one of them nudges what the network sees.

And the bad weeks are far worse than the median: in one raw week out of ten, the estimate swings by more than 12 ml/min/kg. After the filter, that same worst-case tenth sits at 2.8 ml/min/kg.

That's why we don't show you the raw number. The value on your activity has already been through the filter, and it moves about 1 ml/min/kg across a week — which lines up with the 1–3 ml/min/kg range our coaching team treats as entirely normal between sessions. VLamax behaves the same way, drifting 0.05–0.15 mmol/l/s; your threshold power moves 5–15 W.

A real change in your engine shows up as a weekly trend over three to four weeks. Never as one good Saturday.

Methodology: how we built this table

No external tables, no aggregation of other people's numbers. The figures above come from a single query against our production database: cycling activities from the last 180 days processed by the AI model, planned and simulated sessions excluded, compared per athlete and per calendar week. Raw output is the network's direct prediction; filtered is the value after the Kalman step that your app displays. Both rows come from the same activities — the only difference is the filter.

One detail for the pedantic, and we count ourselves in: the threshold of at least four values per week is applied to each row separately. That gives 14,344 athlete-weeks for the raw row and 14,149 for the filtered one — 195 weeks had four or more raw estimates but fewer than four filtered ones.

Platform scale for context: 1,202 athletes, 15,000+ power tests, over a million analysed training sessions.

powerAI v3: A Kalman Filter for Your Fitness CurvepowerAI v3 fuses every workout into one calm fitness curve: week to week, your VO2max now varies by less than 1 ml/min/kg. Honestly calcu…

Why some activities show no value at all

Now the message that sends people to support: "AI predictions are not possible."

That is not a bug, and nothing is broken in your account. It means the network could not produce an estimate it stands behind — and we would rather show you nothing than a number we'd have to walk back.

Four reasons cover almost every case:

  1. The session was too short. A few minutes gives the model too little to work with.
  2. The heart-rate signal was poor. Strap dropouts, a badly seated optical sensor, a wet jersey. The model wants a heart-rate quality above roughly 50 out of 100.
  3. There was too little variation in power. A perfectly steady ergometer session or a long, flat, unwavering endurance ride looks almost identical to the network no matter how strong you are. It needs changes in intensity to separate one engine from another.
  4. No Premium subscription. AI predictions aren't computed without one. Worth saying plainly, so nobody spends an evening debugging their chest strap for the wrong reason.

How often does this actually happen?

Over the last 90 days, excluding planned and simulated workouts:

SportSessions with a VO2max estimate
Running99.5 %
Cycling75.6 %

So on the bike, roughly one session in four stays blank. That's the visible cost of the rule — and we think it's the right trade. A watch estimator always shows you a number; it never tells you which ones it was guessing at.

These are coverage rates, not error rates. The gap has several causes at once — the four above, mixed together — and this figure alone doesn't tell you how they split. We're showing you how often we stay quiet, not claiming a measured accuracy we haven't published.

What you always get, even with no AI value

This is the part most people miss when a session shows no VO2max. Mader is still running. Open the activity details and you still have:

  • Blood lactate — a model value, not a measured blood sample. It describes the estimated lactate turnover across the session in absolute mmol, and it isn't comparable to a lab fingerprick reading. Use it to compare your own sessions to each other.
  • Muscle lactate and muscle pH
  • Phosphocreatine (PCr)
  • Oxygen uptake (VO2)
  • Carbohydrate and fat consumption

You never have nothing. You have everything except a VO2max update — and your weekly curve simply carries on from the sessions that did produce one.

What you can actually do about it

Three levers, in order of effect:

  1. Wear a chest strap for your key sessions. Optical wrist sensors drift under vibration and load; a strap is the single biggest upgrade to the input the model receives.
  2. Give the network something to chew on. A session with genuine changes in intensity — intervals, a hilly route, a hard block inside an endurance ride — is far more informative than 90 minutes of unwavering steady state. You were probably going to do that anyway.
  3. Take a Powertest once a year. Estimates from everyday training can carry a personal offset: the shape of your curve is right, but its level sits slightly off. A Powertest anchors the curve to a measured value and calibrates that offset. One test a year keeps the calibration fresh; between tests, the curve does the week-to-week work.

And one thing not to do: don't chase the daily number. If you re-read your engine after every ride, you're reading the noise in the first row of that table, not your fitness.

You don't need a Powertest to start

A fair question at this point: if the Powertest is the measured anchor, is the curve worth anything before you've done one?

Our own numbers say yes. Of the athletes on the platform who have never done a Powertest but have connected activities, 831 out of 841 — 98.8 % have a VO2max estimate from their everyday training alone. The curve starts with your first sync. The test sharpens it later.

That's also the honest order of operations: connect your device first, and let the model watch you train for a couple of weeks. Start your free trial — you'll have a curve before you ever step on a test protocol.

One more thing

VO2max is only half of what the network estimates from each session. The other half is VLamax — your glycolytic power — and it's the number that decides whether that engine makes you a fast finisher or a rider who can hold threshold all day.

Here's why two athletes with the same VO2max race differently.

FAQ

Why did my VO2max drop after one bad ride? It almost certainly didn't. What you're seeing is the per-session estimate, which moves with heat, sleep, fuelling and heart-rate quality. In our data the value shown on activities spans about 1 ml/min/kg within a single week. Check the weekly value in your metabolic profile — if that's steady, nothing has changed.

Why does one of my activities show no VO2max? Because the model couldn't make a prediction it stands behind. The usual causes are a very short session, poor heart-rate signal quality, too little variation in power (steady ergometer rides are the classic case), or no Premium subscription. It's a deliberate rule, not a failure.

Is the Mader model still used if the activity says "AI"? Yes, always. Mader produces the physiology of every session — lactate, PCr, VO2, fuel usage. The neural network's job is narrower: estimating your VO2max and VLamax when Mader can't be solved backwards, which is any session where you weren't fully spent.

Is the "blood lactate" figure my actual blood value? No. It's a model estimate of lactate turnover across the session, given in absolute mmol, and it isn't comparable to a lab measurement in mmol/L. It's useful as a relative comparison between your own sessions.

Do I still need a Powertest? Yes, but not often. The test is the measured anchor the curve calibrates against — it fixes any personal offset in your level. One per year is enough. Between tests, your everyday sessions carry the trend.

Why is my running VO2max there almost every time, but my cycling isn't? Running gives the model a well-behaved extra input channel in pace, while on the bike everything hinges on power data and how much it varies. Steady indoor rides are the most common blank. In our last 90 days, 99.5 % of runs produced an estimate versus 75.6 % of rides.

How does this relate to what my watch shows? A watch estimate is generally derived from the relationship between heart rate and pace, using population-level assumptions. Ours is trained on 15,000+ maximal power tests and calibrated to you personally by your own test. Comparing the two absolute numbers isn't very useful — different methods, different reference points. Compare each one's trend instead. And if you want the full picture of where your value sits, start with the VO2max reference tables.

Sources: Mader, A. & Heck, H. (1986). A theory of the metabolic origin of the anaerobic threshold. International Journal of Sports Medicine, 7(Suppl 1), 45–65. · Mader, A. (2003). Glycolysis and oxidative phosphorylation as a function of cytosolic phosphorylation state and power output of the muscle cell. European Journal of Applied Physiology, 88(4–5), 317–338. · Kalman, R. E. (1960). A new approach to linear filtering and prediction problems. Journal of Basic Engineering, 82(1), 35–45. Platform figures: A Faster You production database, queried 27 July 2026 — 1,202 athletes, 15,000+ power tests, 1M+ analysed training sessions; coverage rates from 90 days of activities, within-week spread from 14,344 (raw) and 14,149 (filtered) athlete-weeks over 180 days.

Ready to become a Faster You?

Start your free 30-day trial today. Experience the world's most intelligent training plan.

30-Day Free Trial
Cancel Anytime
Register Now