Method and limits
How the app turns daily WHOOP numbers into a picture of your injection week, how it was checked, and what it can't tell you.
The steps
- Your usual week: for each weekday, the average of your mornings in the weeks before your first dose.
- Adjust: each morning minus your usual for that weekday, so a regular Monday dip doesn't look like an injection effect.
- Line up injection weeks: day 0 is set by your injection time, and each week runs to the next injection. Weeks with a missed, moved or changed injection day are left out, as are weeks with too few mornings.
- Center each week: subtract that week's own average, which removes slow drift such as weight change, dose level or season.
- Average across weeks: the result for each day is the mean over your injection weeks, with a band from resampling whole weeks.
- Clear or not: a day is called clear only if a stricter interval, which allows for the many days and metrics checked, excludes zero.
Self-tests
The analysis is checked on synthetic members whose answers are known in advance. These results are computed by the app's own code.
- PassPlanted pattern: on Member A, the recovered shape is within 0.61 × the day-to-day noise of the planted one on its worst day (allowed: 1.0 ×).
- PassNo effect: Member B showed a clear pattern in 1 of 100 simulated runs (allowed: up to 10%).
- PassPlacebo date: Member B's data before starting, with a fake start date, showed a clear pattern in 1 of 100 runs (allowed: up to 10%).
- PassWeekday trap: Member C's weekly habit shows as clear on day 0 in the raw view, and disappears once adjusted.
Smallest change this analysis can detect for one person
Simulated on 2,000 runs of a member with no drug effect, about 30 injection weeks and 12 pre-drug weeks. A smaller change on a given day may be real but won't be called clear.
| Metric | Day-to-day noise | Detected about half the time | Detected 4 in 5 times |
|---|---|---|---|
| Resting heart rate | 3.0 bpm | 4.0 bpm | 4.8 bpm |
| HRV | 10.0 ms | 13.3 ms | 16.2 ms |
| Recovery | 12.0 points | 15.9 points | 19.3 points |
| Sleep performance | 8.0 points | 10.7 points | 13.0 points |
Why this interval
The first approach, percentile intervals from resampling, was slightly too narrow with few injection weeks. At the strict level needed for many checks, that let Member B show false clear patterns in 14 of 100 runs, and 31 of 100 with a placebo date.
The app now builds a t interval from the resampled spread, with degrees of freedom set by the scarcer of injection weeks and pre-drug weeks. False clear patterns fell to about 1 in 100. A more lenient option reached the 10 in 100 limit with only 8 weeks of data, while the app allows as few as 6.
For a health-facing tool, a false clear pattern is worse than a missed one, so the stricter interval was chosen. It costs some sensitivity.
Known limits
- One person's data: a few dozen injection weeks can only reveal fairly large within-week changes (see the table above).
- This shows patterns that line up with your injection days. It cannot show what produced them.
- WHOOP's API has no medication data, so injection dates come from what you enter in Setup.
- Your usual week is learned from the weeks before your first dose. If your routine changed when you started, the comparison shifts too.
- The demo members are synthetic. Their patterns were planted to test the method, not taken from real people.