Instructions: check off your characteristics and symptoms below. The ranking updates as you click. Check nothing, and you get the base rates — the list anyway.

Diagnosis likelihood %

    Your characteristics

    Symptoms

    Had a confirmed diagnosis? Feed the machine. Submissions accumulate in the database and future versions of the probability table are re-derived from them.

    This is a rebuild of a beloved, long-abandoned early-web tool. Its brilliance was restraint: a few dozen checkboxes, a ranked list, and a sensible default — with no input at all, it simply showed the base rates. This version does the same, with a naive-Bayes ranker: each diagnosis starts at its background prevalence (the "prior"), and every box you check multiplies in the probability of that symptom given that diagnosis.

    Where the numbers come from (and will come from)

    The current probability matrix is a hand-curated starter set — plausible, clinically informed, and clearly labeled as v0. The roadmap is to re-derive it from public data: NAMCS/NHAMCS (CDC ambulatory-care microdata pairing reason-for-visit with physician diagnosis, plus age and sex) for the conditional probabilities, and HCUP / CDC WONDER prevalence tables for the priors. Crowdsourced submissions get folded in as a third stream.

    Hooking up the database

    The Submit tab writes to Supabase. Fill in the two constants at the top of the script in this file, and create the table with:

    create table submissions (
      id bigint generated always as identity primary key,
      created_at timestamptz default now(),
      diagnosis text not null,
      symptoms text,
      notes text
    );
    alter table submissions enable row level security;
    create policy "anon insert" on submissions
      for insert to anon with check (true);

    The guarantee

    This tool is 100% guaranteed accurate, or your $0.00 cheerfully refunded. Should the guarantee and your actual physician ever disagree, the guarantee gracefully yields.