Back to blog
Science & Safety 7 min2026-08-27

What Is Actually Inside a "Personalised" GLP-1 Side-Effect Risk Number

Personalised risk tools give you one number. It is really two ingredients multiplied together — an evidenced base rate and a set of profile multipliers — and almost nobody shows you the second. Here are all 75 of ours, including the fact that none of them carries a citation.

Type your age and sex into a "personalised" GLP-1 side-effect tool and it returns a single percentage. Ours is two ingredients multiplied together: a base rate drawn from our evidence corpus, and a set of profile multipliers that push it up or down for you specifically. We have written at length about the first ingredient and never published the second.

So here it is — all 75 coefficients our predictor applies, together with the uncomfortable part: not one of them carries a citation. We make no claim about how anyone else builds their tool; we are publishing ours because a reader cannot check what they cannot see. This is the fifth piece in our evidence series, after which effects have enough evidence to calibrate a statistical model, the corpus-derived pooled clinical rates, what patients themselves report, and gallstones end to end.

The worked example

Ask our predictor for nausea on semaglutide at a mid-range dose, for a 40-year-old with no GI history, no diabetes, and past the first month. Both figures below are live API responses captured on 27 August 2026:

  • Male: 32%.
  • Female: 37%.
  • The five-point difference is one multiplier: an odds ratio of 1.25 applied to the female profile. The API says so in the response itself — unadjustedPercentage: 32, then modifiersApplied: [{ id: "sex:female", oddsRatio: 1.25, provenance: "seed-2026-04-12" }].

    Now look at how differently evidenced the two ingredients are.

    The 32% is backed by *26 stated rates from 18 distinct sources*, drawn from the 69 clinical and regulatory records our corpus holds for nausea at that dose tier, deduplicated to one entry per source. You can read every one of those sources, with URLs, at the nausea endpoint.

    The ×1.25 is backed by nothing we can show you. It was hand-coded when the model was seeded on 12 April 2026. There is no per-modifier citation recorded anywhere in our code, our documentation, or our stored model configuration — we went looking on 27 August 2026 and found none. It is an expert-coded prior: a judgement, honestly held, but a judgement.

    That asymmetry is the entire point of this article. A number carrying "26 stated rates from 18 distinct sources" beside it looks fully evidenced. Five of its 37 points are not.

    All 75 coefficients

    Every effect has five multipliers. An odds ratio above 1.00 raises your estimate; below 1.00 lowers it; exactly 1.00 does nothing. These are the live values on 27 August 2026, readable any time from modifiers on the per-effect endpoint.

    EffectFemaleAge 65+GI historyDiabetesFirst month
    Nausea1.250.901.400.852.50
    Vomiting1.301.101.500.902.50
    Diarrhea1.101.201.501.002.00
    Constipation1.301.401.301.001.50
    Abdominal pain1.151.201.801.001.80
    Acid reflux1.101.302.001.001.50
    Reduced appetite1.101.101.000.901.80
    Headache1.201.001.001.102.00
    Fatigue1.151.301.001.101.80
    Dizziness1.151.501.001.201.80
    Injection-site reaction1.101.001.001.001.50
    Emotional blunting1.101.001.001.001.20
    Gallstones1.601.401.301.200.50
    Hair loss1.401.201.001.000.30
    Pancreatitis1.001.503.001.301.20

    Things worth noticing, stated as what the table *is* rather than what it proves:

  • 14 of the 15 effects carry a female multiplier other than 1.00. Only pancreatitis does not. So on almost every effect we track, a female profile gets a different clinical number than an otherwise identical male profile — driven entirely by uncited priors.
  • The largest single coefficient is pancreatitis × GI history, at 3.00. The smallest is hair loss in the first month, at 0.30.
  • Two coefficients are protective in the first month (hair loss 0.30, gallstones 0.50) where every other first-month value raises risk. Both are effects with a delayed onset, so a lower first-month figure is not surprising. But we want to be precise about what we do and do not know here: no rationale is recorded for any of these 75 values. We checked the model configuration, the code that defines them, and our documentation on 27 August 2026 — there is no comment, source, or note explaining how any single coefficient was arrived at. We cannot tell you the reasoning behind 0.30 because it was never written down.
  • The cap, and why it does not currently bind

    Multipliers stack. To stop a five-flag profile from compounding into an absurd number, the engine caps the cumulative log-odds shift at 2.5 — roughly a 12× ceiling on the combined odds ratio — and clamps any displayed estimate to the 1–95% range.

    Computing the total shift for every effect with all five flags firing, the largest achievable value across all 15 effects is 1.95 (pancreatitis, for a woman over 65 with GI history and diabetes in her first month). That is comfortably under 2.5, so the cap never binds on today's coefficients. We publish the pre-adjustment rate and the post-adjustment rate as two explicit endpoints — "32% → 37%" — rather than only the multipliers, precisely so the sentence stays true if a future coefficient update ever makes the cap bite.

    Two live examples of stacking, both captured on 27 August 2026 for a woman of 70 with GI history, diabetes, and in her first month:

  • Nausea: 32% → 61% with all five modifiers listed in the response.
  • Hair loss: 2% → 1%. The same five flags, applied to that effect's coefficients, move the estimate *down* — because the 0.30 first-month value outweighs the rest.
  • Why we are publishing our own weakest link

    Because a bug forced the question, and we would rather answer it in public.

    Until 27 August 2026 a scoping defect in our engine was checking for sex-tagged data across the wrong set of records, and the effect was that the female multiplier was being suppressed on nearly every clinical estimate — male and female predictions came out identical on 14 of 15 effects. Fixing that defect was correct. It also, in the same deploy, put an uncited ×1.25 live on every female clinical estimate, sitting immediately beside a basis line that advertised only the 26 rates and 18 sources behind the *unadjusted* half of the number.

    So the same day we shipped the disclosure that now runs on the predictor API, both languages of our methodology page, the API help endpoint, and llms.txt: the pre-adjustment rate, every modifier that fired, its odds ratio, and its provenance. This article is the public version of that disclosure.

    What it would take to earn these numbers

    The honest path is to derive sex, age, and comorbidity effects from data rather than judgement. We checked on 27 August 2026 whether our own corpus can support that yet. It cannot:

  • Of 1,431 corpus data points, only 247 state a patient's sex at all — and those 247 are 83% female (205 female, 39 male, 3 trans woman), a skew that would itself need handling.
  • Zero of the 349 clinical and regulatory points state a sex. Every sex-tagged point is a community report (240) or a news item (7).
  • Our model configuration is still version 1, generated 12 April 2026, with zero empirical modifiers applied. The FDR-corrected empirical estimator runs daily; no effect has yet met its evidence bar.
  • You cannot derive a sex-stratified clinical odds ratio from a clinical evidence base in which no record states a sex. Until that changes, our options are to keep the priors and label them honestly, source them individually and drop whatever cannot be sourced, or stop applying them — which would make male and female clinical predictions identical again. That choice is open, and it is not one an automated pipeline should make quietly.

    This is a third bar, not the other two

    Our evidence series uses some words in narrow senses, so to be explicit about which threshold this article is and is not about:

  • The calibration bar (that article) governs whether an effect has enough independently-sourced evidence for a fully calibrated statistical model. Five of 15 clear it.
  • The pooled-rate bar (that article) is much lower: one eligible citable rate lets us publish a pooled clinical estimate, always printed with its source count and confidence grade. Thirteen of 15 effects clear it; the other two fall back to a labelled published-literature reference.
  • The modifiers in this article clear neither, because they are not corpus-derived at all. They are a separate layer applied on top of whichever base rate the first two bars produce. A well-evidenced base rate multiplied by an uncited prior is not a well-evidenced result, and we would rather you knew which part is which.
  • Check it yourself

  • GET /api/data?q=effect&id=nausea returns modifiers (the five coefficients) and modifiersNote (their provenance) alongside the fully-cited rateBase block.
  • POST /api/predictor/calculate returns unadjustedPercentage, modifiersApplied, and a basis string that now names both endpoints of the adjustment.
  • The eligibility rules that decide which rates may support any published estimate are at magistra.health/en/methodology.
  • Every figure in this article was read from the live production API or database on 27 August 2026 and is stated as of that date; the corpus grows daily, so the endpoint is the current truth and this page is a snapshot.

    This is educational content about how a statistical tool is built, not medical advice, and none of the numbers here should be used to decide whether to start, continue, or stop a medication — that is a conversation with a clinician who knows your history.

    Query the whole dataset — all 15 effects, both tracks, every source with its URL — at magistra.health/en/data-api.

    See your own numbers

    Our free predictor estimates your side-effect risk and weight trajectory from 1,200+ sourced data points. No signup required.

    Open the predictor

    See your personal GLP-1 side-effect risk

    Free Predictor