Methods · for physiologists

How every number is computed.

The planned processing chain from raw breath signals to VO₂max and thresholds, written down before validation so you can check it, challenge it and hold us to it.3 Methods v0.1 · planned, not yet validated · last changed 21 Oct 2026.

In development · Pilot planned 2027 · Not for saleDesigned in India

01 · Status and version

Planned, not frozen.

Design stage. Nothing here has been validated. The algorithm will be frozen and versioned before the validation study, and published in full with the results.

Change log. v0.1 · 21 Oct 2026 · First public draft of the planned methods.

02 · Signal chain

From raw signals to V̇O2.

  1. SensorsFlow, O₂, CO₂, pressure, temperature, humidity
  2. SamplingOne device clock for every signal
  3. Lag correctionFirst-order model per gas sensor
  4. Breath detectionZero-crossings with hysteresis
  5. Volume-domain alignmentGas assigned to the air that carried it
  6. HaldaneInspired volume from the N₂ balance
  7. BTPS / STPDMeasured pressure, temperature, humidity
  8. Quality flagsLeak, out-of-range, rejected
  9. AveragingBreath, rolling or binned; chosen after the test
  10. Derived variablesV̇O₂, V̇CO₂, RER, V̇E, VT1, VT2, VO₂max

Every step is versioned and will be published. Nothing in this chain is meant to be a black box.

03 · Equations

The full Haldane form.

V̇I = V̇E × (1 − FEO₂ − FECO₂) ÷ (1 − FIO₂ − FICO₂)
V̇O₂ = V̇I · FIO₂ − V̇E · FEO₂
V̇CO₂ = V̇E · FECO₂ − V̇I · FICO₂
FIO₂, FICO₂
Inspired fractions, taken from the room-air reference before each test (dry room air is about 20.93% O₂ and 0.04% CO₂).
V̇E
Expired volume per breath, converted to STPD for these equations.
BTPS
V × (273 + 37) ÷ (273 + T) × (PB − PH₂O) ÷ (PB − 47 mmHg)
STPD
V × 273 ÷ (273 + T) × (PB − PH₂O) ÷ 760 mmHg
Water vapour
PH₂O from measured humidity and temperature at the flow sensor, per breath.
04 · Units and conditions

What is reported, and how.

VariableReported asNote
V̇E, tidal volumeBTPSBody temperature, ambient pressure, saturated
V̇O₂, V̇CO₂STPD0 °C, 760 mmHg, dry
End-tidal O₂ and CO₂mmHgEstimates from the lag-corrected signal
WorkloadW, or speed and gradeFrom a trainer or power meter, or entered
Heart ratebpmFrom a paired chest strap
TimesOne device clock for breaths, heart rate and workload

Every breath is stored on its own. Averaging (a number of breaths, a rolling time window, or fixed bins) is applied afterwards and can be changed; VO₂max uses a 30 s rolling average by default. Sampling rates will be set on prototypes and published.

05 · Breaths and quality flags

Flagged, never deleted.

Breath detection
Breaths are split at flow zero-crossings with hysteresis. Events shorter than a minimum duration or volume (swallows, coughs, partial breaths) are flagged and kept in the export, not deleted.
Sensor response
Each gas sensor’s response is modelled as a first-order lag. The signal is corrected with that sensor’s measured time constant before it is used, and the time constant is reported with each test.
Gas–flow alignment
Gas concentration is aligned to expired volume, not to clock time, so a breath’s gas is assigned to the air that carried it, whatever the breathing rate.
V̇O₂ and V̇CO₂
Classical breath-by-breath calculation from expired volume and expired fractions. Inspired volume is derived with the Haldane (N₂-balance) transformation, which needs measured CO₂ as well as O₂. Inspired flow is measured too and used for breath detection and leak checking.
Leak check
Every breath, inspired volume measured by the flow sensor is compared with inspired volume predicted from the N₂ balance. A sustained mismatch flags a probable mask leak, and the flagged breaths are marked in the report and export.
Corrections
Ventilation reported at BTPS, gas volumes at STPD, using measured pressure, temperature and humidity.
End-tidal gases
End-tidal O₂ and CO₂ are taken from the lag-corrected signal. They are reported as estimates and flagged above the breathing rate at which the sensor can no longer resolve the end-tidal plateau; this limit will be published.
VT1
Proposed by the V-slope method and cross-checked against ventilatory equivalents and end-tidal O₂; confirmed or moved by the tester. Both the algorithm’s pick and the final pick are stored.
VT2
Detected automatically from the rise in V̇E/V̇CO₂ and fall in PETCO₂; the tester can override, and overrides are logged.
VO₂max
Highest 30 s rolling average (window user-selectable). Plateau: an increase of less than 150 ml/min (or less than 50% of the expected rise) over the final 60 s of the ramp. Optional verification bout at 105–110% of peak ramp power after 10 min of recovery. Reported as VO₂peak when neither confirms a maximum.
Out-of-range flag
Breaths above the validated flow range are marked in the report and export, and VO₂max is reported with a warning if they fall in the final 60 s.
Fuel mix
Only from steady-state stages of 3–5 minutes below VT1 (for example a step test), never from a ramp.

Rejection thresholds (minimum breath duration and volume) will be published with the frozen version.

06 · Leak check

The N2 balance, every breath.

Nitrogen is neither used nor produced by the body, so the inspired volume can be predicted from the expired volume and the gas fractions. Every breath, that prediction is compared with the inspired volume the flow sensor actually measured. A sustained mismatch means air is escaping around the mask: those breaths are flagged in the report and export, and the flag threshold will be set from prototype data and published.

07 · Thresholds

VT2 automatic. VT1 confirmed by a person.

VT1 is the threshold with the weakest agreement between experts, so the algorithm proposes it (V-slope, cross-checked against ventilatory equivalents and end-tidal O₂) and a tester confirms or moves it. VT2 is detected automatically from the rise in V̇E/V̇CO₂ and the fall in PETCO₂, and can be overridden. The algorithm’s pick, the final pick and who changed it are all stored with the test. VT1 can only be judged after the ramp has passed it, so it is not shown as a live result.

08 · VO₂max

Maximum, or peak.

Highest 30 s rolling average (window selectable). Plateau: an increase of less than 150 ml/min, or less than 50% of the expected rise, over the final 60 s of the ramp. An optional verification bout at 105–110% of peak ramp power after 10 minutes of recovery. Reported as VO₂peak when neither confirms a maximum, and with a warning if out-of-range breaths fall in the final 60 s.

09 · Calibration and checks

Planned checks, all logged.

Every test: room-air reference for O₂ and CO₂, and a zero-flow check of the flow sensor with the mask held still, alongside the room-air reference. Seal check before each test: planned, once the leak rule is validated. Daily, or when a flow element changes: 3-litre syringe check of flow at several stroke rates (planned; not in the current build). Periodically: two-point gas check with a certified reference gas (about 16% O₂ / 4–5% CO₂; planned, not in the current build). Every check is logged with date, values and pass or fail, and travels with the test in the export. Intervals will be set from prototype drift data and published.

10 · Operating range and known limitations

Where it works, and where it doesn’t yet.

0255075100125150175200Current flow element · about 85–100 L/min (characterised, not validated)High-flow element · in developmentUntrained, typical peak (~110)Recreational, typical peak (~150)Elite endurance, typical peak (~190)V̇E, L/min (BTPS)V̇E, L/min (BTPS)050100150200~110~150~190Current element · about 85–100 L/mincharacterised, not validatedHigh-flow element · in developmentTypical peak V̇E (~, approximate):~110 · Untrained~150 · Recreational~190 · Elite endurance
Illustrative. Typical peak ventilation varies widely between people; the markers are approximate.
QuantityPlannedMeasuredValidated
V̇E range, current flow elementAbout 85–100 L/min——
V̇E range, high-flow elementUp to about 200 L/min (in development)——
Gas response time (10–90%)To be measured on prototypes——
Breathing rate for valid end-tidal valuesTo be measured on prototypes——
Dead space and resistanceTo be measured and published——
Ambient temperature and humidityTo be defined——
V̇O₂ agreement with a cartLimits registered before testing——

Known limitations (design stage)

  • Flow rangeThe current flow element is characterised to about 85–100 L/min V̇E. Maximal tests in trained athletes need the high-flow element now in development.
  • Gas sensor speedOn-mask sensors are slower than cart analyzers. Breath values rely on lag correction, and end-tidal values are estimates whose valid breathing-rate range will be published.
  • VT1 needs a personVT1 is proposed by the algorithm and confirmed by a tester. VT2 is automatic but can be overridden.
  • Mask sealLeaks bias every gas-exchange variable. Leak-flagged breaths are marked, not hidden.
  • Dead space and resistanceThe mask and flow element add both. Figures will be published; their effect is largest at rest and at very high ventilation.
  • EnvironmentExtreme cold, heat, humidity, rain and altitude are untested.
  • ProtocolsFuel mix and energy expenditure need steady-state stages; thresholds from step tests are less precise than from a ramp.
  • AccuracyUnknown until validation is published.
11 · Validation protocol

Registered before the first test.

The validation plan sets the reference cart, the bench tests for each flow element, the acceptance limits, the statistics and the publication rules. It will be registered publicly before the first participant is tested, and linked here once the registry entry exists.

The full validation plan

0+7%−7%bias ±3%95% limits ±7%No data yetMean of VenTracer and cart V̇O₂ (L/min)Difference, VenTracer − cart (%)
Template. This chart stays empty until the validation data exist. The shaded band is an example of the acceptance limit to be registered before testing.
12 · Data export

Two levels, both yours.

Breath table: every breath with time, volumes (BTPS), fractions, end-tidal values, V̇O₂ and V̇CO₂ (STPD), quality flags (leak, out-of-range, rejected), heart rate and workload. Raw signals: flow, O₂, CO₂, pressure, temperature and humidity at the native sample rate, uncorrected and corrected, so you can rerun every step yourself. Each file carries its metadata: device serial, firmware and algorithm version, flow element, check log, ambient conditions, mask size and protocol. Format: CSV with a JSON metadata sidecar; schema and units documented and versioned.

Example breath table (CSV, example data) Example breath table (Excel, formatted) Example metadata sidecar (JSON)

13 · Open methods

Planned, in writing.

Planned

Open methods.

Every processing step, from breath detection to threshold picking, published as documented equations and a reference implementation, with a version number on every report. When an algorithm changes, the change log says what changed and how it affects results, and old data can be reprocessed with any version.

Planned

Open validation data.

De-identified breath-by-breath and raw-signal data from the validation study, published with the paper, so anyone can check our numbers.

14 · References

What these methods build on.

  1. Beaver WL, Wasserman K, Whipp BJ. A new method for detecting anaerobic threshold by gas exchange. J Appl Physiol. 1986;60(6):2020–2027.
  2. Wasserman K, Hansen JE, Sue DY, et al. Principles of Exercise Testing and Interpretation. Lippincott Williams & Wilkins.
  3. Poole DC, Jones AM. Measurement of the maximum oxygen uptake V̇O₂max: V̇O₂peak is no longer acceptable. J Appl Physiol. 2017;122(4):997–1002.
  4. American Thoracic Society; American College of Chest Physicians. ATS/ACCP statement on cardiopulmonary exercise testing. Am J Respir Crit Care Med. 2003;167(2):211–277.
  5. Hopkins WG. Measures of reliability in sports medicine and science. Sports Med. 2000;30(1):1–15.
  6. Bland JM, Altman DG. Statistical methods for assessing agreement between two methods of clinical measurement. Lancet. 1986;1(8476):307–310.
  7. Atkinson G, Nevill AM. Statistical methods for assessing measurement error (reliability) in variables relevant to sports medicine. Sports Med. 1998;26(4):217–238.
  8. Van Hooren B, Souren T, Bongers BC. Accuracy of respiratory gas variables, substrate, and energy use from 15 CPET systems during simulated and human exercise. Scand J Med Sci Sports, 2024.
15 · Review these methods

Disagree with a choice here? Tell us before we freeze it.

Named reviewers will be acknowledged in the methods paper. Email the founder with the section and your reasoning.

Apply to the pilot