HKQuantityTypeIdentifierVO2Max — reading VO₂ max from Apple Health

HKQuantityTypeIdentifierVO2Max looks like a lab result and is an estimate — and Apple even records which kind of estimate it made.

Open your file

Drop your file here

export.zip straight from the Health app — do not unzip it

No account. No upload. The file is read on this device and never leaves it.

Nothing has been sent anywhere. 0 requests to this site, for the page's own code.

A submaximal estimate, labelled as one

A true VO₂ max comes from a maximal-effort lab test. The Watch produces a submaximal estimate from heart rate and pace during ordinary outdoor activity, in mL/kg·min. Apple tags each value with a test type describing how it was derived, and reading that type — rather than assuming every VO₂ max is the same measurement — is the difference between an honest chart and an implied lab result. Our own adapter reads the recorded test type instead of hard-coding “submaximal estimate”, because the file states it.

Why it barely moves, and why that is correct

VO₂ max is a slow signal. Real cardiorespiratory fitness changes over weeks of training, not days, so a healthy export shows a nearly flat line with gentle drift — and a value that jumps around by several points day to day usually means the estimate had thin data to work from (a walk instead of a run, a hilly route that confused the pace-to-effort model). Reading a two-point wobble as a fitness swing is a misread; the trend over months is the only part worth interpreting.

What you get from this page

This page lists every VO₂ max estimate in your export with its date and, where present, its recorded test type, on your device. It plots them as the slow line they are, so the multi-month drift is legible and a single noisy estimate does not read as a change in you.

This identifier is one of dozens. The Apple Health data dictionary lists every identifier this parser reads, with its canonical type and unit.