How We Score

The whole method, including the parts that make us look smaller than we could pretend to be. If you are wondering how this differs from asking a chatbot, this page is the answer.

The order of operations

In one sentence

Your list check uses no AI. Rules we wrote by hand decide the severity of every combination they cover, they run on our own servers, and they can only ever make a result stricter.

  1. 1
    Your list is matched.

    Everything you enter is matched against the curated dictionary: 387 supplements, 328 medication and drug names, 287 brand names. Anything that matches nothing is carried through and reported back to you as unrated, by name.

  2. 2
    The rules run, a pair at a time.

    Your list check uses no AI. It runs on our own rules, on our own servers, and sends nothing to any AI service on any path. Taking your entries two at a time is what lets a warning name the two things that caused it instead of pointing at the list as a whole. Not every pair is run. Two medications are checked against each other only where one of our rules covers that pair; any other pair of entries we read as medications is for your pharmacist, and the list says so. Two entries of one supplement ingredient are not paired either, and the list names them as the same ingredient twice.

  3. 3
    The deterministic floors run.

    90 floors (the 89 curated interaction rules plus the serotonin-syndrome floor) run over the items you actually entered, matched by name. Each one that fires forces a minimum risk level, caps the score at a fixed ceiling, and inserts its own written warning. They escalate only: risk can rise, scores can be capped down, warnings can be added. Nothing here runs the other way.

  4. 4
    Practical guidance is attached.

    Absorption-spacing rules for the well-established mineral and polyphenol competitions, an upper-limit tally across 9 nutrients, and positive pairing notes. This layer never moves the score in either direction.

  5. 5
    The coherence passes strip timing advice where timing does not help.

    82 of the 89 rules cover risks that spacing cannot mitigate, among them additive bleeding, serotonergic load, CNS depression, high or low potassium, a rise in blood pressure, and enzyme induction or inhibition. For those, the warning itself never offers a time gap as the fix, because a separation window would imply that timing can make it fine to combine something this same report calls dangerous. A timing line from a different rule, about another part of the same product (a mineral or an antacid in it, say), can still appear beside that warning. These passes can only remove a suggestion or raise a severity badge.

No pass in the engine softens a result

There used to be one. It lowered the risk level and raised the score on supplement-only stacks it judged over-rated, which contradicted the promise on this page, so it was deleted rather than tuned. The escalate-only rule is enforced in code on every path: a fresh analysis, a cached result, and the pre-generated stack pages all run the identical passes.

The 89 curated interaction rules

  • • blood thinner + supplement
  • • potassium + ACE inhibitor/ARB
  • • potassium + potassium-sparing diuretic
  • • Entresto + ACE inhibitor
  • • ARB + ACE inhibitor
  • • ARB or ACE inhibitor + potassium-sparing diuretic
  • • ARB or ACE inhibitor + aliskiren
  • • aliskiren + potassium
  • • piracetam + anticoagulant or antiplatelet
  • • MAOI + stimulant
  • • multiple stimulants
  • • statin + red yeast rice
  • • lithium + interacting drug
  • • levothyroxine + minerals (spacing helps)
  • • antibiotic + minerals (spacing helps)
  • • CNS depressant combination
  • • sedating supplement + prescription sedative
  • • liver-stress combination
  • • diabetes drug + glucose-lowering supplement
  • • SSRI/SNRI + bleeding-risk supplement
  • • levodopa + iron/vitamin B6 (spacing helps)
  • • transplant immunosuppressant + St. John’s Wort
  • • digoxin + licorice/hawthorn/St. John’s Wort
  • • warfarin + INR-shifting supplement (vitamin K, CoQ10, cranberry, goji)
  • • warfarin + St. John’s Wort
  • • warfarin + CBD
  • • warfarin + fenugreek
  • • oral bisphosphonate + minerals (spacing helps)
  • • hormonal contraceptive + St. John’s Wort
  • • nitrate/PDE5 medication + nitric-oxide-booster supplement
  • • PDE5 inhibitor + nitrate
  • • dabigatran + St. John’s Wort
  • • PAH medicine + St. John’s Wort
  • • NSAID + anticoagulant
  • • anticoagulant + antiplatelet
  • • ketorolac + NSAID or aspirin
  • • NSAID + antiplatelet
  • • NSAID + SSRI/SNRI
  • • warfarin or DOAC + SSRI/SNRI
  • • NSAID + potassium-sparing diuretic
  • • NSAID + blood-pressure medicine
  • • warfarin + co-trimoxazole
  • • warfarin + amiodarone
  • • penicillin G potassium + ACE inhibitor/ARB or potassium-sparing diuretic
  • • penicillin G potassium + potassium supplement or salt substitute
  • • warfarin + glucosamine or L-carnitine
  • • folic acid + phenytoin
  • • two NSAIDs
  • • warfarin + metronidazole
  • • NSAID + oral steroid
  • • Plavix + omeprazole or esomeprazole
  • • alcohol + opioid or benzodiazepine
  • • alcohol + sleep medicine
  • • alcohol + metronidazole or tinidazole
  • • alcohol + gabapentin, pregabalin or sleepy antihistamine
  • • grapefruit + simvastatin or lovastatin
  • • grapefruit + amiodarone or dronedarone
  • • grapefruit + transplant immunosuppressant
  • • grapefruit + atorvastatin
  • • grapefruit + nifedipine, nisoldipine or felodipine
  • • grapefruit + buspirone
  • • two different ARBs, or Entresto + an ARB
  • • stimulant + antacid (spacing helps)
  • • stimulant + vitamin C (spacing helps)
  • • prescription stimulant + caffeine
  • • NSAID + bleeding-risk supplement
  • • levothyroxine + acid reducer (PPI)
  • • St. John’s Wort + medicine it can weaken
  • • licorice + potassium-lowering water pill
  • • licorice + blood-pressure medicine
  • • ashwagandha + antiseizure medicine
  • • atomoxetine + MAOI
  • • viloxazine + caffeine or melatonin
  • • licorice + spironolactone or eplerenone
  • • levodopa or mucuna + older MAOI
  • • caffeine + older MAOI
  • • garcinia cambogia + SSRI
  • • sleep-promoting supplement + sedating medicine
  • • ashwagandha + thyroid medicine
  • • senna + potassium-sensitive medicine
  • • hawthorn or holy basil + blood-pressure medicine
  • • licorice + steroid medicine
  • • isotretinoin + vitamin A
  • • isotretinoin + St. John’s Wort
  • • transplant medicine + CBD
  • • cyclosporine + berberine
  • • tacrolimus + schisandra
  • • digoxin + antacid (asks for a blood level)
  • • thiazide-type water pill + vitamin D

The 6 marked “spacing helps” are absorption conflicts that a separation window actually helps with. The one marked “asks for a blood level” says nothing about timing either way: its label asks for a blood level to be checked, not for a time gap. The other 82 are not, which is why the coherence pass strips timing advice from them.

Plus the serotonin-syndrome floor, which fires whenever two or more of these 18 distinct serotonergic classes appear in one list, whether they are prescriptions or supplements: SSRIs and SNRIs, tricyclic antidepressants, opioids (fentanyl, methadone, oxycodone, hydrocodone, codeine, morphine, buprenorphine), MAOIs, trazodone, buspirone, mirtazapine, lithium, amphetamines, tramadol, dextromethorphan, triptans, St. John’s Wort, 5-HTP, L-tryptophan, SAM-e, tianeptine, kanna.

Where AI is used, and where it is not

Your list check uses no AI

It runs on our own rules, on our own servers. Running a check sends nothing about your list, your health profile or your account to any AI service, whether or not you have an account and whether or not AI is switched on. One thing you can choose does send something to one: scanning a label with the camera sends that photo. It is named below, it is yours to switch on or off on your Account page, and it does not change your list check. Your DNA report sends nothing to any AI service either: its findings come from our own rules and the sources they cite. Every finding and its severity word (Major, Moderate or OK) comes from a rule we wrote: one of the 89 interaction rules above, the serotonin-syndrome floor, the absorption-spacing and upper-limit rules in step 4, or the duplicate check that names one ingredient arriving in two of your products.

Where a language model is used

  • The public pair guides are written by a language model

    The pair guides a search engine sends people to are drafted ahead of time, before anyone visits, by a language model working from two generic ingredient names and the curated data we hand it. Our rules then check that draft and can only make it stricter. No list, profile or account is involved: the pairs come from a fixed catalogue we keep, not from anybody’s data. Every rated guide says on its face that its analysis is AI-written, and a guide for a pair we hold no rating for carries none of that text at all. On a few guides we have corrected the score and the text by hand against the drug labels and the published studies; each of those pages says so, and says what the AI-written analysis had given it.

  • You can let AI read a label from a photo you take

    If you scan a product with the camera, that photo goes to an outside AI provider to be turned into a name and an amount. It asks the first time, and the switch lives on your Account page. Turned off, you type the name in yourself and the check that follows is identical.

  • Stacks saved on the old site (switched off today)

    A background sweep that re-checks stacks people saved on the old site is switched off today, so nothing is re-checked or sent. If it is switched back on, it asks that person’s permission before sending a stack to an outside AI provider, and without a yes it re-checks the stack on our rules alone. The list you keep now is not part of that sweep.

That is all of them. Nothing else on this site sends anything to an AI service, and that count is not kept by hand: a test reads our own source code and works out every place that can reach an AI provider, so a new one cannot be added quietly.

What our reference actually is

We do not query third-party medical websites

When you run a check, no request goes to WebMD, Mayo Clinic, Examine, or any other outside medical publisher. There is exactly one live external lookup: the NIH Dietary Supplement Label Database, for label amounts. Everything else is a curated file that ships inside the app. Where a curated entry was written from a public fact sheet or monograph, we link that source next to the entry.

  • Our curated interaction rule set

    89 hand-written rules plus a serotonin-syndrome floor spanning 18 serotonergic drug and supplement classes. Each rule states which two classes trigger it, the minimum risk level it forces, the score ceiling it imposes, and the warning text it inserts. The mechanism and its citations (PMIDs, prescribing information, NIH and NCCIH monographs) sit in the source comment beside most rules.

  • Our compound dictionary

    387 supplement entries with their alternate spellings, 328 medication and drug names, and 287 brand names mapped to their generic. This is what turns what you typed into something a rule can match.

  • NIH Dietary Supplement Label Database (DSLD)

    The one live external lookup. Queried over its public API for real product labels and cached for a day. It is where the daily totals get the amounts actually printed on your bottles, and where a scanned photo is matched to a real product.

  • NIH Office of Dietary Supplements fact sheets

    Read by a human and distilled into our absorption-spacing rules, the 9 nutrients we tally against published upper limits, and our positive pairing notes. We link the fact sheet wherever the number came from one.

Every number here is our coverage, not a census

387, 328, 287, 89, 18, 9: each of those counts what is in our files today, and each one is counted when this page is built rather than typed into this sentence. None of them is a count of everything that has ever been documented about supplement and medication interactions. Nobody has that number, and we are not going to imply we do.

The score bands

Every rated pair guide (the supplement pair pages) carries a score from 1 to 10, where 10 is the lowest risk and 1 the highest. Your own list check carries no score: each finding has a severity word (Major, Moderate or OK) instead, except that a spacing note or a same-ingredient note that is not raised to Major or Moderate carries a plain label (Worth spacing, Same ingredient twice). One shared function turns that score into a risk label. A label can be raised above its band (see below), so two pages with the same score can carry different labels. The bands below are generated from that function when this page is built, so they cannot drift from what the app does.

Low risk8 to 10

No curated rule fired, and nothing in the combination raised a flag we hold a rule for.

Medium risk4 to 7

Something is worth knowing about (an absorption conflict, an upper-limit overlap, a real but non-emergency interaction), or our coverage of these particular items is thin.

High risk1 to 3

A curated rule fired on a well-documented, clinically serious mechanism, or the AI-written analysis itself rated the pair high. Every high result carries a written warning.

One-way escalation

A label may be escalated above its band and is never softened below it. If a rule, or the AI-written analysis, states a risk more severe than the score band implies, the more severe label is what you see. The reverse cannot happen: a comfortable-looking score can never talk a warning down. Where a result has no score at all, the label falls back to medium: the conservative default, not the flattering one.

What we do not do

Silence is not a clearance

Silence is not a clearance: an unrated ingredient means we hold no rule for it, not that nothing happens. The checker names those items back to you rather than letting a quiet result read as a verdict.

We do not check every medication against every other.

Two medications are checked against each other only where one of our rules covers that pair; any other pair of entries we read as medications is for your pharmacist, and the list says so. Checking every medication against every other needs a licensed clinical compendium, which we do not have and do not pretend to have. Your pharmacist has one, and is the right person to ask.

We hold no rule for many compounds.

The dictionary and rule set are hand-maintained and finite. A compound nobody has added yet gets no rule of its own, however real its interactions are.

We are not a research database.

No PubMed connection, no clinical-trial feed, no FDA API, no proprietary drug compendium. What we have is a hand-curated file and one public label database.

Hand-maintained means it can lag.

Rules and dictionary entries are edited by a human on a review cadence, so newly published findings are not reflected the day they appear.

The public pair guides carry AI-written text, and it can be wrong.

The pair guides a search engine sends people to are drafted by a language model and then checked by our rules, which can only make them stricter. AI-written text can still be incomplete, out of date, or confidently wrong, and the rules cannot catch everything. Treat those pages as an estimate. Your own list check carries none of that text.

We do not know your body.

Your list check reads no labs, no kidney or liver function, no dosing history, and nothing about your circumstances beyond what you tell us. A saved health profile narrows this gap; it does not close it.

Corrections

If something here is wrong, we would rather hear it than not. Errors are corrected in the source file by hand, and because the deterministic passes run on every serve path (fresh analyses, cached results and the pre-generated stack pages alike), a corrected rule changes what everyone sees without anyone having to re-run their check.

What to include

  • • The exact items you entered, and which screen showed the problem
  • • What you believe is wrong: a missing warning, a warning that should not be there, a wrong amount or limit
  • • A source if you have one. A fact sheet or a PMID is ideal; a clear description is fine too

Where to send it

Use the contact form or email support@canistackthis.com. Both land in the same inbox: the form posts to it directly.

A report that turns out to be right gets the file changed. A report that turns out to be wrong gets an answer explaining why, not silence.

How this is funded

Readers pay for this, and nobody else does. The only money coming in is from Premium subscriptions and the one-time DNA report. There are no ads, no supplements for sale, no affiliate links, no sponsored placements, and no paid inclusion in any rule, suggestion or score.

  • Nothing in a score can be bought, because there is nothing to buy from us at the end of a warning.
  • Warnings are never held back, blurred, delayed or used as a reason to upgrade. Every warning is shown in full on the free tier.
  • A feature launched free stays free. We can widen the free tier, and we do not narrow it.

This is not medical advice

CanIStackThis is an informational tool. It is not medical advice, it is not a diagnosis, and it is not a substitute for your doctor or your pharmacist. It knows only what you tell it about yourself, and the list check reads none of your lab results, kidney and liver tests included. Use it to arrive at that conversation with better questions; that is what it is for.

Now see it run

Every score on this site is produced by the method above, except on the few guides we corrected by hand, which say so. For who builds this and why, see About.