Skip to main content
One 60-second reading returns the metrics below in a VitalsResult. Readings are processed entirely on the phone with deterministic signal processing, not machine learning. No images are stored or transmitted; the SDK returns only these metrics, a quality tier and diagnostics.
The NEUROFIT Vitals SDK is not a medical device. The metrics describe autonomic and cardiorespiratory state for wellness and self-tracking; they do not diagnose, treat or prevent any condition.

Result fields

Metrics are optional (nil / null) when the engine could not recover them; every value is finite (no NaN reaches a result or its JSON). Heart rate is the one metric a completed reading always has; a reading with no heart rate ends in failed(noHeartRate) rather than a result. During the reading, LivePreview carries provisional values: heart rate from the first seconds, HRV (RMSSD) from about 20 s, breathing rate from about 30 s. They are for display only; store the final VitalsResult.

Quality tier

The SDK grades every reading and withholds the ones it cannot stand behind. Two rules apply on top of the engine’s grading. A reading whose values are outside physiological plausibility (heart rate outside 20 to 200 bpm, HRV (RMSSD) outside 5 to 400 ms, breathing rate above 60 breaths per minute; an absent breathing rate counts as 0) is downgraded to withheld and sd2sd1 and baevskyStressIndex are dropped. And a breathing rate with confidence below 0.5 is still returned with its confidence, so the host decides how to present it. In the validation study the SDK withheld 3.3% of readings.

Validated accuracy

The figures come from the NEUROFIT validation study: 30 participants, 265 accepted readings, each a 60-second seated reading taken while wearing a Polar H10 chest strap, with the strap’s beat-to-beat timing as the reference. Half the readings were at rest and half during paced breathing at 6 breaths per minute. Three readings with frequent irregular heartbeats were excluded. The two investigators are excluded from every figure.

Consistent across groups

No group had a reading off by 20 ms or more. Groups with one or two people describe those individuals, not the whole group. The full method and plots are in the validation report (PDF). These are interim development results; the finished system is being tested blind on new participants, and the figures will be updated as the study grows.

Limits of the validation

The accuracy figures apply to seated, still, 60-second readings. Not yet claimed:
  • Accuracy for Monk skin tones 7, 9 and 10 (no participants in the study so far).
  • Accuracy during movement.
  • Breathing rate outside paced breathing at 6 breaths per minute.
  • Readings shorter or longer than 60 seconds.
Most participants were 25 to 34 years old.

Presenting the numbers

  • Round heart rate and HRV (RMSSD) to whole numbers, breathing rate to one decimal.
  • Say “HRV (RMSSD)” the first time you show HRV, so users comparing with a wearable know which HRV it is.
  • Compare a person with their own baseline, not with population tables; see Outcomes best practices.
  • When quality is withheld, show a calm retry prompt rather than a number.