Adherence is the rate at which planned doses actually happen, counted against the original schedule rather than against a tolerant after-the-fact reading. In Unfair, adherence is one of two dosing-reliability signals (the other being the consistency score), and it feeds directly into how much weight any correlation or trend earns during review. A stack with 95% adherence earns a different quality of conclusion than a stack with 60% adherence, even if the daily charts look similar.
The adherence taxonomy
Every scheduled dose lands in one of six buckets. The taxonomy matters because the engine treats these states differently — a late dose inside the window is nothing like a skipped dose, and a missed dose is not the same as a paused-by-user dose.
| State | Logged? | Inside dose window? | Weight toward adherence | How the engine reads it |
|---|---|---|---|---|
| On-time | Yes | Yes, within ±30 min of target | 1.0 | Clean; no flag |
| Late (within window) | Yes | Yes, beyond ±30 min but inside window | 1.0 for adherence; lowers consistency | Trend-usable |
| Out-of-window | Yes | No | 0.5 | Flags a timing drift note |
| Missed (unlogged) | No | n/a | 0.0 | Drops adherence; flags a reminder-behavior review |
| Skipped (user-marked) | Yes, marked skip | n/a | 0.0 but treated as planned gap | No flag; does not trigger "low confidence" on its own |
| Paused (cycle-off) | n/a | n/a | Excluded from the denominator | Treated as a planned cycle window |
The distinction between "missed" and "skipped" is deliberate. A user who marks a skip is telling the engine "this was intentional" — interaction, illness, travel — and the engine will not interpret the gap as signal loss. A missed dose with no skip marker is interpreted as a real adherence drop and is counted.
A weekly calculation example
A user is on a three-times-daily protocol (morning, pre-workout, pre-bed) — 21 scheduled doses in a 7-day week. Over those 7 days the user logged the following:
- 17 on-time doses.
- 2 late-but-in-window doses.
- 1 out-of-window dose.
- 1 missed (no log, no skip marker).
- 0 skipped.
Adherence for the week:
adherence = (17 + 2 + 0.5 × 1) / 21 = 19.5 / 21 = 0.93A simplified binary count (ignoring the out-of-window penalty) returns 19/21 = 0.90. Both numbers are reported on the review screen. The weighted number is what the engine uses for signal gating; the simple number is what users tend to quote because it is easier to reason about.
What different adherence levels allow
Adherence gates the conclusions the engine will draw from a dose-outcome pair:
- 95%+ — high-fidelity trend; most correlations are trustworthy within a normal noise floor.
- 80–94% — the practical working band. Most compounds are evaluable on a 14-day window.
- 60–79% — conclusions hold with wider confidence bands; adding slow-acting compounds is risky because gaps blur the lag structure.
- Below 60% — the engine holds the current ranking and surfaces a schedule review before any further stack change.
The 80% mark is a common practical benchmark in clinical adherence literature and also happens to be where Unfair's noise floor on typical users stabilizes. Below that, it is hard to separate real effects from irregular dosing artifacts.
How to recover from misses
The right recovery rule changes by compound class.
- Stimulants and thyroid-adjacent compounds: never double-dose. If the miss is over 4 hours past target and another window is within 8 hours, skip and resume at the next planned time.
- Fat-soluble vitamins and omega-3: a single-day miss is a rounding error on a 28-day moving average window; no catch-up needed.
- Sleep supports (pre-bed magnesium, glycine): if within 1 hour of bedtime, take as planned; otherwise skip.
- Adaptogens: a one-day miss is minor; a multi-day miss resets the clock on any withdrawal-return interpretation in a n-of-1 experiment.
Logging the miss with a one-word context note — travel, illness, forgot, skipped-on-purpose — gives the engine what it needs to treat the gap correctly rather than penalize it as silent drift.
Adherence and signal quality
Adherence is the upstream lever on every other analysis number. A clean adherence log tightens correlation confidence, stabilizes the consistency score, and narrows the review-screen rationale. This is why every tracking feature in Unfair — fast entry paths, one-tap logging, reminder snoozes, context notes — is built in service of adherence first. A clean-looking chart built on 55% adherence is a false conclusion waiting to happen, and the engine will not draw it.
How this appears in Unfair
Adherence is reported as a 14-day rolling percentage with the taxonomy breakdown one tap away, so a user can see whether a low number is driven by missed doses, late doses, or out-of-window logging. Low-adherence stacks get a "confidence band widened" note on the review screen; the ranked output holds previous weights rather than reacting to thin data.
Clinical safety note
Repeated missed doses paired with severe symptoms — palpitations, syncope, confusion, severe mood changes — are not a tracking problem; they are a reason to pause the stack and involve a clinician. Do not interpret a low adherence number as a reason to push harder on catch-up doses; the safest response to a sustained adherence drop is almost always a schedule review, not an intensification.