Skip to content

Reconcile algorithm catalog with verified WHOOP 4 inputs #77

Description

@highdeftant

Problem

docs/ALGORITHM_CATALOG_1HZ.md currently describes several WHOOP 4.0 inputs as available/usable without matching the verified protocol contract:

  • It lists 24/7 skin-temperature, SpO2 red/IR, ambient-light and skin-contact channels, but protocol/lib/src/records.dart marks skinTempRaw, skinContact and ppgRedIr as misdecoded/deprecated; the red/IR bytes are not independent oxygenation channels.
  • It claims a foreground optical PPG waveform at ~419 Hz. The Gen4 protocol currently documents R10 as 100 Hz accel/gyro, v25 as an approximately 24 Hz raw burst with timestamp-only decoding, and R11 channels as unknown.

These distinctions affect whether proposed algorithms are even implementable from captured data. histVersion is a layout marker, not proof of a firmware build or physical sensor identity.

Requested scope

Audit the catalog against the capture-backed Gen4 protocol contract. Mark each input/algorithm as verified, firmware/layout-dependent, derived, or unsupported; remove or qualify unsupported sensor/rate claims; do not infer part numbers or signal meaning from field names. Keep implementation work separate from this documentation correction.

Evidence

  • Protocol README: protocol/README.md (1 Hz R24 contract and raw-field limits)
  • Gen4 decoder: protocol/lib/src/records.dart (R24/v25 routing and v25 timestamp-only decode)
  • Live records: protocol/lib/src/live.dart (R10 IMU; R11 unknown channel semantics)
  • Regression tests: protocol/test/gen4_field_honesty_test.dart, protocol/test/v25_test.dart

Local checks passed: Gen4 field-honesty tests (17) and v25 tests (3). No code or device state was changed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions