UNFAIR
Download
Glossary · Stack Architecture

Supplement Stack

Last updatedApr 21, 2026

A supplement stack is an ordered set of ingredients chosen for one primary goal, scheduled across defined dose windows, and sized to the user's ability to log and review it. In Unfair, a stack is a first-class object with a goal, a set of ingredients labelled core or optional, explicit timing, and written stop conditions — not a shopping list. Stack composition — which items are load-bearing, which are swappable, which cannot co-exist — matters more than the number of pills on the shelf.

The core + optional model

Every Unfair stack separates ingredients into two tiers. The distinction is what keeps the stack legible during review and what prevents the common failure mode of adding an item and then being unable to tell which of six changes did what.

TierRoleChange frequencyExample (sleep-quality stack)
CoreLoad-bearing for the stated goal; runs across cyclesQuarterly or slowerMagnesium glycinate 300–400 mg, 1 hr pre-bed
CoreEvidence-backed second anchorQuarterly or slowerGlycine 3 g, 30 min pre-bed
OptionalContext-dependent; on during a test cycle, off between cyclesPer cycle (4–8 weeks)L-theanine 200 mg, pre-bed, 8-week trial
OptionalSituational (travel, high-stress weeks)As neededMelatonin 0.3 mg, short-haul jet lag only
OptionalExperimental; under active n-of-1 trialSwapped or dropped at reviewApigenin 50 mg, 4-week trial

Core items change slowly because the evidence for them is stable and the user has personal confirmation from their own log. Optional items rotate because that is where the personal evidence actually gets produced — running three candidates for twelve weeks each, one at a time, generates more usable signal than swapping five compounds in and out at random.

Overlap, interaction, and burden caps

A stack fails in three ways long before dose-response ever matters. Each has a check the app runs before a new ingredient can be added.

  • Duplicate-ingredient [overlap](/blog/supplement-stack-mistakes-to-avoid). The same compound under two brand names — magnesium glycinate in a multi-ingredient sleep product and a standalone magnesium pill — stacks dose silently.
  • Drug and compound [interaction checks](/blog/supplement-stack-mistakes-to-avoid). SSRI plus 5-HTP is the textbook one; curcumin plus anticoagulants is a quieter one. Runs on every add and every medication change.
  • Monitoring-burden cap. A stack above eight items or above twenty scheduled doses per week typically collapses adherence within six weeks. The app flags the size before it allows the add.

A real example

A 34-year-old user whose goal is sleep quality runs a stack of magnesium glycinate, glycine, and theanine as core, with apigenin on a 6-week test cycle. Seven weeks in, apigenin shows no measurable effect on sleep efficiency or subjective restfulness, so it drops off and the next candidate (low-dose magnesium L-threonate replacing glycinate for 4 weeks) begins. Core stays put across the swap, which keeps the trial interpretable — the only variable that changed was the magnesium form.

Start small, grow deliberately

The practical guidance to build your own stack is to start with two core items, run them for 4 weeks to confirm tolerance and a baseline, then add one optional at a time with a written stop condition. A stack that grows past its owner's ability to log it is, for practical purposes, not a stack — it is a supplement drawer.

Stack goal and dose windows

Every stack in Unfair carries a single stated goal and a set of named dose windows. The goal tells the engine what to rank against; the dose windows tell the engine where a new candidate can fit without producing schedule collisions. A goal of "morning energy" and an existing 7 a.m. window with two items means a new candidate will be proposed as an addition to that window only if it passes interaction checks with both existing items — otherwise it lands in a later window or is skipped entirely.

When to simplify a stack

The cue to simplify is almost never dose-related. It is adherence-related. When 28-day adherence drops below 65% on a previously stable stack, the fix is to remove the lowest-evidence optional item rather than add a reminder or re-engineer the schedule. A four-item stack logged at 90% generates more usable information than a seven-item stack logged at 60%, because the missed doses in the bigger stack are almost never random — they cluster on specific items and specific days, producing a log that cannot be read as evidence for any of the seven items individually.

Stop conditions and cycle boundaries

A stack in Unfair is bounded in time. Core items have indefinite cycles with quarterly reviews; optional items have explicit cycle lengths (4, 6, or 8 weeks) with a written stop condition set at the moment the item was added. A stop condition names the proxy, the threshold, and the action — for example, "if pre-bed anxiety does not drop below 5.0/10 by week 6, remove." Writing the stop condition before adding the item is the single practice that most distinguishes a working stack from a growing collection of compounds, because without it every cycle ends with "I'll keep it for another month" and nothing ever leaves.

How this appears in Unfair

The stack view labels every ingredient core or optional, shows its current cycle day count, and highlights the next review date. The recommendation engine will propose adds only into the tier the user allows (most users set adds to optional by default) and refuses to propose more than one optional add per week. Cycle reviews print the core and optional rosters separately so the question at each review stays narrow: which optional item earned its place and which did not.

Clinical safety note

Any stack that coincides with new prescription medication, pregnancy, or planned surgery needs a full reread against current interactions — the stack that was safe last month may not be safe this week. Stop any compound that produces persistent GI, mood, or sleep disturbance and consult a clinician before restarting.