A contraindication is a profile attribute — a condition, medication, pregnancy status, or organ-function result — that makes a specific compound or class unsafe enough to exclude from a stack regardless of the goal. In Unfair, contraindications are evaluated against the user's profile at every recommendation step and at every manual add in the builder, and a matched contraindication blocks activation rather than warning-and-allowing. The distinction from interaction risk is the number of compounds involved: interaction risk is a property of a pair, while a contraindication is a property of a single compound meeting a single profile flag.
Absolute vs relative contraindications
Absolute contraindications remove a compound from any recommendation path until the triggering profile attribute changes — pregnancy ends, the medication is discontinued, the lab value normalizes. Relative contraindications allow the compound to be used at a reduced dose, a restricted window, or with a specific monitoring plan, and require explicit user confirmation before activation. Pregnancy flags are almost always absolute. Prescription-medication flags are usually relative for common over-the-counter supplements and absolute for compounds with documented severe interactions.
Class-based contraindication map
The table below shows the most frequently triggered profile flags in the Unfair library, the compound classes those flags exclude, and representative examples drawn from the regulatory categories metadata. This is not exhaustive; it is the subset the builder surfaces most often.
| Profile flag | Classes excluded or restricted | Representative compounds | Tier |
|---|---|---|---|
| Pregnancy or lactation | Retinoid-form vitamin A, high-dose herbal extracts, uterotonic herbs, most adaptogens, CBD | Vitamin A >3000 mcg RAE, ashwagandha, black cohosh, dong quai, blue cohosh | Absolute |
| Anticoagulant therapy (warfarin, DOAC) | Platelet-function and INR-shifting supplements | High-dose fish oil or omega-3 products, vitamin E >400 IU, ginkgo, garlic extract, nattokinase, high-dose curcumin with piperine | Relative and clinician-gated; INR or bleeding-risk monitoring for warfarin |
| Hepatic impairment (elevated ALT/AST, diagnosed hepatitis, cirrhosis) | Hepatotoxic-adjacent herbs and high-dose fat-soluble vitamins | Green tea extract >500 mg EGCG, kava, chaparral, comfrey, high-dose niacin, vitamin A at retinoid doses | Absolute until liver enzymes normalize |
| Renal impairment (eGFR <60) | Mineral- and protein-loading compounds | Potassium supplementation, high-dose magnesium citrate, creatine at loading dose, high-protein amino-acid formulas, high-dose vitamin C >2 g | Relative, dose-reduced, monitored |
| SSRI, SNRI, MAOI, tramadol, triptans | Serotonergic agonists and precursors (see serotonergic interaction) | 5-HTP, L-tryptophan at gram doses, St. John's wort, SAMe, high-dose saffron extract | Absolute for MAOI, relative and clinician-gated for SSRI/SNRI |
| Hormone-sensitive cancer history | Phytoestrogens and hormone-modulating extracts | Soy isoflavone concentrates, red clover, DIM at pharmacologic doses, DHEA | Absolute without oncology sign-off |
A single profile flag can exclude dozens of library entries. A new anticoagulant prescription logged in the profile triggers a re-screen across every active stack, and high-dose fish oil or omega-3 products are moved behind clinician review rather than treated as a universal cutoff — the risk depends on the prescription, dose, bleeding history, procedure plans, and monitoring plan.
A numeric example
A 34-year-old user on sertraline 100 mg daily adds an Unfair "mood support" stack containing 5-HTP 200 mg, saffron extract 28 mg, and magnesium glycinate 300 mg. Sertraline plus 5-HTP at 200 mg is an absolute serotonergic contraindication and blocks activation. Saffron at 28 mg is a relative flag because published human trials have paired similar doses with SSRIs without incident but the data is limited; activation is permitted only with prescriber confirmation logged. Magnesium glycinate has no serotonergic profile match and passes with no flag. The final stack ships with 5-HTP removed, saffron gated behind a prescriber note, and magnesium activated.
Distinguishing contraindication from interaction risk
A contraindication is a property of the user plus one compound. An interaction risk is a property of two compounds in the same stack. The same pair — sertraline plus 5-HTP — reads as a contraindication if sertraline is in the user's prescription profile, and as an interaction risk if both are user-entered supplements. The mitigation path is usually the same, but the responsibility for the check differs — contraindication checks run against profile data, while interaction checks run against the stack roster.
How profile changes propagate
A newly entered prescription, lab result, or pregnancy status does not only affect future stacks. Unfair walks every currently active stack and re-runs the contraindication pass against the updated profile. Compounds that become contraindicated after the change are paused on the stack, a one-line reason is written into the stack history, and the next scheduled reminder is suppressed until the user acknowledges the change. A stack that loses two or more compounds to a profile change is flagged for full rebuild rather than patched, because partial rosters rarely move the proxy they were designed for.
Edge cases the library treats conservatively
Three classes sit in the middle of the tier spectrum and the library defaults to the more restrictive side.
- Peri-surgical windows. Supplements with platelet, coagulation, anesthesia, or blood-pressure effects are flagged for surgical-team review, and the hold and restart windows follow the surgeon or anesthesia plan rather than a universal two-week-before and one-week-after rule.
- Newly diagnosed hepatic or renal function changes. A single abnormal lab does not normalize tier assignments; the flag holds until a repeat lab confirms either direction.
- High-dose botanicals with limited human data at those doses. The library caps the allowed dose at the highest published trial dose rather than the highest label claim, which occasionally produces a "dose reduced" flag even on products marketed as single-serving.
Acknowledgement vs override
Relative contraindications are acknowledged, not overridden. The distinction is deliberate. An acknowledgement records the user's informed decision and the prescriber note that justified it, and the record is visible on every subsequent review cycle so the assumption can be revisited. An override would let the flag disappear once clicked, which is exactly how safety checks become stale. A user who acknowledged a relative flag in March and whose prescriber changed medication in May sees the flag re-fire with the acknowledgement note attached — the system never treats the earlier note as permanent consent.
For readers building their first stack, the related pillar at building your first supplement stack walks through how first recommendations are filtered against these profile flags before a shortlist is surfaced, so the user sees a safe candidate set rather than an unfiltered library.
How this appears in Unfair
Every compound in the library carries a contraindication metadata block that the builder reads at add-time. Matched absolute flags hold the activation button in a disabled state with a plain-language reason and a link to the relevant library entry. Matched relative flags unlock activation only after the user checks an acknowledgement and, where required, pastes a prescriber note into the stack record. Profile changes — a new prescription, a new pregnancy test, a new lab — trigger a re-screen across all active stacks, and compounds that become contraindicated are paused rather than silently removed so the user sees why the stack changed. Related safety framing lives in supplement stack mistakes to avoid under the risk checks section.
Clinical safety note
Contraindication metadata in Unfair is curated from pharmacology references and published trial reports; it is narrower than a prescriber's chart review and does not know about conditions or medications the user has not entered. New prescriptions, new diagnoses, pregnancy, and planned surgery should all trigger a clinician conversation before any stack continues, and any symptom cluster matching the escalation triggers in the interaction risk entry is a reason to stop the stack immediately.