A rationale snippet is the one- to two-sentence explanation that sits under every ranked recommendation in Unfair and tells the user why the item is where it is — which signals pushed it up, which caveats hold it back, and what would change the rank next cycle. Snippets are assembled from the same deterministic score the engine used to rank the item, not from a language model reaching for a plausible-sounding sentence. If a user cannot read why a rank exists, the rank might as well be a coin flip with good UX.
The four sources a snippet draws from
Every snippet is built from up to four named sources. The number of sources visible in the final sentence depends on how strong each one is for that user and item.
| Source | What it contributes | Example phrase |
|---|---|---|
| Evidence | The evidence tier for this ingredient at this goal | "tier-B evidence for sleep quality" |
| Personalization | The top signals from the user's personalization weights | "matches your top goal and tolerance history" |
| Outcome log | Movement in the user's own proxies during prior cycles | "raised your sleep efficiency 6% in the last cycle" |
| Safety and timing | Active guardrails, caveats, or stop conditions | "hold dose during SSRI titration; review in 14 days" |
Snippets never draw from fewer than two sources. A suggestion that can be described only by evidence tier is either too generic to show or is a first-time pick without personalization context, in which case the engine says so explicitly rather than pretending confidence it does not have.
Strong snippet vs. weak snippet
A strong snippet is specific, names its signals, and includes the next action.
Magnesium glycinate 300 mg, 1 hour pre-bed — tier-B evidence for sleep quality, 84% 28-day adherence, your sleep efficiency rose 5.2% in the prior cycle; continue through the next review in 2 weeks.
A weak snippet — the kind the engine refuses to produce — would look like this.
Try magnesium. Many users report better sleep.
The first sentence is specific to this user, this ingredient, and this cycle. The second is a product description pretending to be a recommendation. Unfair suppresses the second kind at generation time, not after the fact.
Possible vs. likely language
Two small words do a lot of work in snippets. The engine uses them as confidence flags so the user reads intensity without reading a number.
- Possible — direction of effect is supported by evidence and at least one user signal, but signal density or confidence is insufficient to call it likely. Typical confidence band 0.40–0.69.
- Likely — effect direction is supported by the user's own cycle data, adherence is stable, and the recommendation ranking has held across two reviews. Typical confidence band ≥ 0.70.
The app never uses "definitely," "proven," or "guaranteed" in a snippet. Those words are not present in the generation template.
When a snippet is omitted
Three conditions cause the snippet to be replaced with a "not enough signal yet" card instead of a rationale sentence.
- Fewer than 10 days of relevant logs after a goal or medication change.
- Conflicting signals the engine cannot reduce to a coherent sentence — for example, a rising subjective trend against a falling objective trend on the same outcome.
- A hard safety flag that would contradict any positive framing; the engine shows the stop condition instead of a rec.
An empty card is better than a plausible-sounding lie. Users rely on snippet honesty to interpret rank movement between cycles, and the cost of one dishonest snippet is greater than the cost of many honest silent ones.
How this appears in Unfair
Snippets sit directly under the recommendation title on every home-screen card. Tapping the snippet opens the full trace — which signals contributed, what their weights were, and what would have to change for the rank to move. The per-cycle review aggregates snippet history so the user can see how their own signals evolved across reviews rather than only the final sentence from the most recent rank.
Clinical safety note
A snippet is a summary, not a medical decision. Phrases like "likely benefit" and "tier-A evidence" describe the rank, not the user's individual safety. New symptoms, medication changes, or severe side effects should override any snippet — pause the stack and escalate to a clinician before continuing, regardless of the confidence label on the card.