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% was backed, as captured on 27 August 2026, by 26 stated rates from 18 distinct sources, drawn from the 69 clinical and regulatory records our corpus then held 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 (as captured on 27 August 2026) 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).
  • Zero empirical modifiers have been applied, and as of 18 September 2026 none can be. The empirical estimator runs daily and 12 of the 15 effects now clear its 10-eligible-point minimum, but both covariates it fits are constant across the eligible base: all 1,111 eligible rate points behind those fits carry sex "unspecified", and none carries an age band including 65, so every coefficient fits at 0 with an odds ratio of 1. That is a limit of what the extraction captures from trial registries and abstracts, not a sample-size shortfall the corpus will grow out of. (Model configuration is v5, generated 12 September 2026; its post-seed changes re-sourced four static base rates and aligned narrative fields with their sources — no modifier among them.)
  • 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.

    Decision, 3 September 2026. We tried the second option first. In early September 2026 we searched the published literature for sex-disaggregated and first-month adverse-event data on semaglutide and tirzepatide and found only pooled any-adverse-event comparisons and qualitative statements that gastrointestinal effects are more frequent in women — no source states a per-effect odds ratio for any of the 75 coefficients above. Turning an aggregate or a qualitative finding into a specific per-effect number would mean inventing precision the source does not contain, so we did not. On 3 September 2026 the founder approved the first option: the priors stay, labelled as seed values in every response, exactly as described above. No number in this article changed.

    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 stated, citable rate points for a fully calibrated statistical model. 12 of 15 clear it as of 18 September 2026; that article's own tables are dated snapshots of 31 August, when 1 did.
  • 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. 10 of 15 effects cleared it as of 31 August 2026; 12 of 15 from 7 September 2026, when a pinned registry fetch of SURMOUNT-1 gave hair loss and dizziness their first eligible rates; 13 of 15 from 8 September 2026, when the same fetch reached STEP 1/STEP 2 and gave fatigue its first eligible rates; 14 of 15 from 10 September 2026, when the registries' serious-adverse-event rows for gallstones and pancreatitis were re-admitted under an explicit serious-AE label. Emotional blunting is the only one left, and it publishes no clinical figure at all — so no effect now falls back to the published-literature reference table for a clinical percentage.
  • 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.
  • Correction, 31 August 2026. The two counts above originally (as of 27 August 2026) read "Five of 15" and "Thirteen of 15." A same-day correction to this article's own sibling pieces found that 150 April-2026 seed rows had been restating our static literature table under real trial URLs; excluding them shrank both bars' pass counts to the figures now shown above. See the evidence-strength correction and the pooled-rate correction for the full detail — this article's own worked examples (the nausea and hair-loss figures above) predate that correction and are stated as of 27 August 2026, not restated here.

    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, with the stated rates and distinct sources shown behind every figure. No signup required.

    Open the predictor

    Working from the data itself? The dated snapshot behind these figures is available as a one-off purchase, alongside the free public API: Data & API.

    See your personal GLP-1 side-effect risk

    Free Predictor