Skip to content

[Feature]: No daily movement score, and no training load #116

Description

@ak710

What problem does this solve?

PulseLoop has goals, activity rings and a readiness score, but no answer to "how well did I move today?" — the thing Oura calls an Activity Score and Ultrahuman a Movement Index. And nothing weighs this week's effort against recent normal, which is the metric WHOOP built a company on.

Every input already exists: ActivityDaily, the intraday ActivityBucketSample buckets, HR-zone boundaries, and editable goals.

Proposed solution

Movement score — four contributors scored against the user's own goals, not a population target: steps (35), active minutes (30), active energy (20), and movement spread through the day (15). The goals already exist and are already editable; a score built on a fixed 10,000 steps would tell a marathoner and someone recovering from surgery the same thing.

Exceeding a goal should never be penalised — overreaching is what training load is for.

The regularity contributor is what separates a day that hit its step goal in one gym session from one that moved throughout. 250 steps/hour (the stand-hour convention) over 08:00–22:00, judged against the hours the ring actually reported buckets for so a ring taken off at lunch isn't scored for the afternoon.

Training load — Edwards' summated heart-rate zones rather than Banister's TRIMP. Banister needs a reliable average HR over a bounded session; all-day ring data is sparse, irregularly spaced and has no session boundaries, so Edwards degrades far better. Zone floors should match the ones the workout summary already draws.

Each reading credited the gap to the next, capped adaptively — otherwise two all-day readings 12 h apart become "12 hours of zone-1 work".

Acute (7-day) vs chronic (28-day) mean daily load. Days with no readings must be excluded from both means, never counted as rest — averaging in zeros would manufacture a "detraining" reading out of a charging cable.

Belongs on the Activity tab under the rings it summarises, not on Today.

Area

UI / DesignSystem

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions