docs(oura): recording is motion-gated, and 0x50 MET tracks a varying input - #1060
Open
pipiche38 wants to merge 1 commit into
Open
docs(oura): recording is motion-gated, and 0x50 MET tracks a varying input#1060pipiche38 wants to merge 1 commit into
pipiche38 wants to merge 1 commit into
Conversation
…input Records three findings from a 2026-08-02 ground-truth session on a live Gen 3 ring: an 86-min flat 6.5 km walk at 4.6 km/h containing a deliberate ~3-min standing stop, against per-second cadence from a Suunto .fit. RECORDING IS MOTION-GATED. The ring does not log on a fixed wall-clock cadence; it stops emitting when the wearer stops moving. Across the stop, 0x7E/0x7F (174 s), 0x47 (150 s) and 0x50 (240 s) went silent together and resumed at their normal cadence. Three independent streams agreeing rules out a decode drop or a drain artifact. The consequence matters to any consumer: a gap must be read as "no motion", not as missing data to interpolate over, and a "samples x cadence" product is not a wall-clock duration. It also re-explains the 0x50 logging holes noted earlier as quiet periods rather than dropped records. 0x47 low_intensity / motion_seconds SATURATE. Both cap at 29 within a 30 s record; over 168 records of continuous walking, 65% and 82% of samples sit at >= 27. They count seconds containing motion, not an amount or rate of it, so a step count or cadence cannot be recovered from 0x47 at any scale factor. This is a structural reason independent of the ground-truth test already recorded, and it applies to a Tier-A stream, so a better decode will not fix it. 0x50 MET TRACKS A VARYING INPUT. Against the deliberate stop, MET falls to a resting floor when the feet stop and recovers when they restart: r = 0.860 over 88 minutes, and robust -- dropping the 3 lowest-activity samples leaves r = 0.777, where the 0x7E field collapses 0.912 -> 0.256 under the same test. This is the transition evidence the analytics guidance in CLAUDE.md asks for, as distinct from the earlier level match. Two caveats stay explicit: MET lags ~1 min on recovery, and this validates that MET tracks intensity, NOT that its absolute scale is calibrated, so it remains Tier B and unscored. Also records why that 0x7E r = 0.912 is an artifact rather than a result -- the input barely varied, and the one interval with real contrast produced no rows because recording is motion-gated -- so it is not rediscovered later and mistaken for validation. A useful step-decoder test needs cadence VARIATION, not a longer metronomic walk. Documentation only: no code, no stored data, no test changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Author
|
@ryanbr would appreciate if you could review and merge it if possible ? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents three findings about the Oura Gen 3 wire streams from a ground-truth session on 2026-08-02, and records why an earlier-looking correlation on
0x7Eis an artifact rather than a result.What this adds
Recording is motion-gated. The ring does not log on a fixed wall-clock cadence — it stops emitting when the wearer stops moving. On an 86-min flat 6.5 km walk containing a deliberate ~3-min standing stop,
0x7E/0x7F(174 s),0x47(150 s) and0x50(240 s) went silent together across the stop and resumed at their normal cadence. Three independent streams agreeing rules out a decode drop or a drain artifact.The consequence matters to anything consuming these streams: a gap must be read as "no motion", not as missing data to interpolate over, and a "samples × cadence" product is not a wall-clock duration. It also re-explains the
0x50logging holes noted earlier in §6.13 as quiet periods rather than dropped records.0x47low_intensity/motion_secondssaturate. Both cap at 29 within a 30 s record; across 168 records of continuous 4.6 km·h⁻¹ walking, 65 % and 82 % of samples sit at ≥ 27. They count seconds containing motion, not an amount or rate of motion — so a step count or cadence cannot be recovered from0x47at any scale factor. This is a structural reason independent of the ground-truth test already recorded, and it applies to a Tier-A stream, so a better decode will not fix it.0x50MET tracks a varying input. Against the deliberate stop, MET falls to a resting floor when the feet stop and recovers when they restart: r = 0.860 over 88 minutes, and — the part that matters — robust: dropping the 3 lowest-activity samples leaves r = 0.777, where the0x7Efield collapses 0.912 → 0.256 under the same test.This is the transition evidence
CLAUDE.mdasks for ("prove the method tracks a varying input"), as distinct from the earlier level match which could not exclude a coincidental fit. Two caveats are kept explicit in the text: MET lags ~1 min on recovery, and this validates that MET tracks intensity, not that its absolute scale is calibrated. It stays Tier B and unscored.Why the
0x7Er = 0.912 is not a result. Recorded so it is not rediscovered later and mistaken for validation: the input barely varied (98 % of samples effectively identical), and the one interval with real contrast produced no rows at all because recording is motion-gated. A useful step-decoder test needs cadence variation — mixed slow/fast walking, stairs, walk/jog intervals — not a longer metronomic walk.Verification
docs/OURA_PROTOCOL.md, +87 / −0.main, so it is purely additive and does not touch 73c1dd8 (Say what the Oura SpO2 unit tag actually means, and correct the mapping table (#1043) #1045) or any other v9.3.1 work..fitfor the same walk; every figure quoted is from that session's decoded streams.docs/;swift-packagesis unaffected as no package source changes.