Skip to content

Methodology

PK MODEL v2 · UPDATED AUGUST 2, 2026 · EDUCATION, NOT MEDICAL ADVICE

Every number in Bild Health is either something you entered, something a device measured, or something we computed from those two. This page covers the third kind: what we compute, the exact model, the parameters, where they come from, and where they break down.

We publish this for one reason: an estimate you can't audit is a number you shouldn't trust.

Estimated medication levels

IN SHORT · A population-average pharmacokinetic curve, drawn only from doses you logged. It is an estimate of drug in your body over time — not a measurement, and not dosing guidance.

What we chart. The curve shows the estimated amount of drug in your body, in milligrams, over time. It is not a blood concentration and not a lab value. We chart amount rather than concentration deliberately: concentration would require your apparent volume of distribution — a parameter we cannot know for you — while amount depends only on bioavailability and the well-published half-life and time-to-peak. It's the one form of this number we can state honestly.

The model. One-compartment, first-order absorption and elimination, summed over your logged doses by superposition. For each dose *D* taken *t* hours ago:

amount(t) = Σ F · D · ka/(ka − ke) · (e^(−ke·t) − e^(−ka·t))

where ke = ln2 / half-life is how fast the drug leaves, and ka — how fast it's absorbed — is solved from the published time-to-peak by inverting Tmax = ln(ka/ke) / (ka − ke). Each dose gets its own rise-and-fall curve; the chart is their sum. That's the whole model: no machine learning, and nothing tuned to you beyond the doses, dates, and schedule you entered.

Two details, since we said nothing is hidden. ka is solved numerically and held at least 5% above ke, because the formula divides by the gap between them and would blow up if they met. And where any calculation on this page can produce an absurd number, we clamp it — every clamp is stated in its own section below.

Parameters, by ingredient and route — half-life (t½), representative time-to-peak (Tmax), and bioavailability (F), each read from the FDA label and the peer-reviewed pharmacokinetic literature cited below:

  • Tirzepatide (Mounjaro®, Zepbound®) — t½ 120 h · Tmax 24 h · F 0.80 · weekly
  • Semaglutide, injectable (Ozempic®, Wegovy®) — t½ 160 h · Tmax 48 h · F 0.89 · weekly
  • Dulaglutide (Trulicity®) — t½ 120 h · Tmax 48 h · F 0.55 · weekly
  • Liraglutide (Saxenda®, Victoza®) — t½ 13 h · Tmax 11 h · F 0.55 · daily
  • Orforglipron (Foundayo®) — t½ 40 h · Tmax 6 h · F 0.30 · daily
  • Semaglutide, oral (Rybelsus®, Wegovy® Pill) — t½ 160 h · Tmax 1 h · F ~0.008 · daily

Oral semaglutide is the one exception to the milligram curve. Its absorption varies so much dose to dose (within-subject variability around 137%) that a milligram number would be false precision. For oral semaglutide only, we show a 0–100% buildup envelope against the steady-state plateau instead — the honest claim is "how built up you are", not "how many milligrams are in you". Every other medication above, including oral orforglipron, gets the milligram curve.

If you were already taking your medication when you joined. We back-fill from the start date and schedule you gave us at signup, in two ways. Your shot log is seeded with up to four weeks of assumed doses — they appear in your history exactly as if you had entered them, and you can edit or delete them like anything else. The level chart additionally draws an assumed lead-in from your stated start date, up to 20 weeks back — long enough to reach steady state for every medication we model — so the curve begins at your accumulated level rather than at zero. Both assume you followed the schedule you reported; if you didn't, correct your log and the curve follows.

Covariates we deliberately don't apply. We do not adjust the curve for your weight, age, or sex. The labels for these drugs state that no dose adjustment is required for those factors, and a population PK analysis of dulaglutide found age, body weight, sex, race and ethnicity did not influence its kinetics to any clinically relevant degree (Geiser et al., 2016). Inventing a personalization the evidence doesn't support would make the curve feel more precise while making it less true.

What the curve is not

IN SHORT · Not a measurement, not a target, not a reason to change anything. Bring questions to your prescriber, not to this chart.

  • It is not a measurement of you. It is a population-average model. Real people vary widely around it — two people on the same dose can differ substantially in actual exposure. Your true levels are not knowable from an app.
  • There is no target level to hit. These medications have no established therapeutic concentration range to aim for. A curve that runs higher or lower than someone else's means nothing about whether your protocol is working. Nothing in the app is a threshold, and no number here is a goal.
  • It is not dosing guidance. Bild Health does not calculate doses, recommend doses, suggest dose changes, or tell you when to inject. Never start, stop, delay, split, or change a dose based on this chart. Dose and timing decisions belong to you and your prescriber.
  • It cannot tell you when the drug has cleared. We deliberately do not compute washout, clearance dates, or missed-dose catch-up. This matters most before surgery, anesthesia, or any procedure with sedation: GLP-1 medications carry labeled warnings about pulmonary aspiration under anesthesia, and that decision requires your surgeon and anesthesiologist — who need to know you take this medication regardless of what any chart says. Never use Bild Health to decide it's safe to proceed.
  • It assumes your log is the truth. The curve is built from the doses you recorded, on the dates you recorded them, at the strengths you entered. A missed entry, a typo, or a dose logged on the wrong day produces a confidently wrong chart. Compounded products add further uncertainty: their actual delivered strength is outside anything we can model.
  • It is not a medical device. Bild Health does not diagnose, treat, cure, or prevent any condition, and it is not a substitute for professional medical care. Education, not medical advice — consult your prescriber.

Protein target

IN SHORT · Grams per kilo, applied to an adjusted weight — not your scale weight, which would set a number you can't eat.

The target comes from the muscle-retention literature for people in a caloric deficit: about 1.4–1.6 g/kg to hold lean mass, and 1.6–2.2 g/kg when you're lifting and trying to keep or build it (ISSN position stand, Jäger et al., 2017; Morton et al., 2018 puts ~2.4 g/kg as the ceiling past which more protein adds nothing in a deficit).

The numbers we actually use are single points inside those bands: 1.5 g/kg if you're not lifting, 1.8 g/kg if you are.

The decision that matters: we multiply by adjusted body weight, not scale weight.

adjusted weight = goal weight + 0.25 × (current weight − goal weight)

Fat tissue needs very little protein, so multiplying by scale weight overshoots badly for anyone with real weight to lose — and hands you a target you can't hit on a suppressed appetite. If a DEXA scan gives us your fat-free mass, we use that instead, which is cleaner still.

One honest caveat: until you set a goal weight, it equals your current weight — so your first target is effectively computed from your scale weight. Set your goal weight (Settings → Height & Goal Weight) and the target rebases immediately. And once you adopt a body-composition goal, your protein number comes from that goal's dual-basis floor instead — see Body composition goals below.

Then two adjustments. We round to the nearest 5 g so it reads as a target rather than false precision, and we hold the result between 80 g and 240 g a day. At the extremes the clamp wins, so your number won't match the arithmetic above.

One note on honesty: standard clinical "adjusted body weight" uses your *ideal* weight. We use your *goal* weight, because you chose it and it's what you're working toward. That's our adaptation, not an established formula.

This is a nutrition target, not a prescription. If you have kidney disease or any condition that restricts protein, this number does not apply to you — ask your clinician for yours.

Lifting target

IN SHORT · Two sessions a week is the floor and a complete dose; the third is offered once you've held the floor for about a month.

Resistance training is the lever this app exists around: on a GLP-1 the weight comes off regardless, and lifting is what decides how much of it is fat rather than muscle. The floor is 2 sessions a week, which is where the major guidance lands for every adult — WHO's 2020 physical activity guidelines, the US Physical Activity Guidelines for Americans, and ACSM all recommend muscle-strengthening on at least 2 days a week, explicitly including adults 65 and over. Two is not a reduced target. It is the target.

Where you start depends on where you are. If you told us you're already lifting consistently, you start at 3. If you're not lifting yet or getting back into it, you start at 2 — and we offer the third session only after you've hit 2 in four of the last five weeks. That's roughly a month of established habit, which is deliberate: connective tissue adapts well behind muscle, and a caloric deficit with a suppressed appetite leaves less recovery capacity than the training literature's usual well-fed subjects.

We never raise it on a timer, and never without asking. A target that climbs on the calendar moves the bar away from the person already struggling to reach it. Yours changes when you accept the change, and you can set it anywhere from 2 to 7 yourself in Goals.

This is a general fitness target, not an exercise prescription. We don't know your joints, your heart, or your history. If you're new to resistance training, returning after a long gap, pregnant, or managing any cardiovascular or musculoskeletal condition, talk to your clinician about what's appropriate for you before you start.

Hydration target

IN SHORT · The national reference intake for your sex, plus the extra water your protein target costs you.

Two things make this more than "drink more water".

One: the reference number already assumes you're eating. The NASEM/IOM Dietary Reference Intake is about 3.7 L/day (125 oz) for men and 2.7 L/day (91 oz) for women — but that's *total* water, and normally around 20% of it arrives in food. On a GLP-1 you're eating considerably less, so most of that hidden contribution disappears. We therefore treat the full total-water figure as your beverage target rather than the usual 80% share. Two men drinking identically can be hydrated very differently.

Two: protein costs water. Clearing the extra urea from a high-protein intake takes fluid — roughly 250 mL per 37.5 g of protein above a habitual 80 g/day. Because we already know your protein target, we can add exactly that much instead of guessing.

litres = 3.7 (men) or 2.7 (women) + 0.25 × (protein target − 80) / 37.5

Then: held between 2 and 5 litres so an outlier can't produce an absurd target, and rounded to the nearest 5 oz.

What we don't do: we don't scale this by your body weight. You'll see a 30–35 mL/kg rule of thumb quoted elsewhere; we don't use it. It's a clinical heuristic rather than an endorsed standard, and stacking it on a DRI figure that already accounts for body size would double-count.

Hydration gets its own protocol on a GLP-1 for a specific reason: appetite suppression cuts the food-water you'd normally get, GI side effects add losses, and these drugs blunt thirst — so the usual "drink when thirsty" signal is least reliable exactly when it matters most. This is general wellness information, not treatment for any condition.

Goal weight

IN SHORT · Yours to set, with your prescriber. The app does not currently suggest one, and it does not stop you from entering an unwise one.

Earlier versions of Bild Health suggested a goal-weight range during onboarding. The current app does not: your goal weight is a number you set yourself, in Settings → Height & Goal Weight, and the app computes from it without second-guessing it. We removed the suggestion rather than ship one we weren't confident in; the age-adjusted BMI guardrails built for it are retained in our test suite and may return in a future version.

Because the app does not gate what you enter, it will accept a goal weight it would never recommend. A too-low goal weight quietly distorts your other targets — protein is computed from it, and water from protein. Set it with your prescriber, not against them.

When you adopt a body-composition goal, the app also shows a projected weight — your target fat mass plus your measured lean mass and planned lean change. That is a projection for orientation, not a target; it can even rise while your body fat falls.

The right weight for you depends on things this app cannot see. Your prescriber sets your goals.

Body composition

IN SHORT · We chart what your scale, Apple Health, or DEXA reported. If you have none of those, we'll estimate — and we treat it as an estimate.

Weight, body fat percentage, and lean mass are normally your measurements, not ours: values you entered, values read from Apple Health with your permission, or DEXA results you imported. We display them, chart them, and compute the changes between them. Their accuracy is the accuracy of whatever produced them — and the methods are not interchangeable. DEXA, bioimpedance scales, and Apple Health sources will disagree with each other, and comparing across them shows apparent changes that aren't real. Where we chart a trend, we're charting your measurements, not a model of you.

One consequence of not asking where a number came from: a body-fat percentage you type by hand is treated like a scale reading. If you have DEXA results, import them through DEXA Scans rather than typing the number, and the app will treat them with DEXA-grade confidence.

The one thing we do estimate. If you don't have a body-fat reading at all, we can estimate one from your BMI, age, and sex using the Deurenberg equation:

body fat % = 1.2 × BMI + 0.23 × age − 10.8 (if male) − 5.4

It is accurate to about ±4–5 percentage points, which is far too loose to build a plan on. So we treat it as a direction, not a measurement (and clamp it to 5–60% before use): an estimated reading gets you guidance about which way to go, and the app withholds the specific composition targets — your goal body-fat percentage, the fat you'd need to lose, your lean-mass floor — until a real measurement backs them. A scale that reports body fat, or a DEXA scan, unlocks those numbers. That is the honest use of a figure with ±5 points of slack in it.

Body composition goals

IN SHORT · A target body-fat band for your age, sex, and objective; your target is the band's midpoint, and a lean-mass floor guards the other side.

If you adopt a body-composition goal, the target comes from a banded lookup table, not a formula fitted to you. For your sex, age band (under 40, 40–54, 55 and over), and objective (longevity or performance), we look up a healthy body-fat range drawn from population reference data — for example, a man of 45 with a longevity objective gets 15–20% — and set your target at the band's midpoint. From age 50, the longevity bands apply regardless of the objective you picked, on purpose: past 50, chasing performance-lean numbers costs muscle you should keep.

target fat mass = lean mass × t / (1 − t)

where *t* is your target body-fat fraction and lean mass is your measured fat-free mass — not a projection. Fat to lose is your measured fat mass minus that target, never shown below zero. The planned lean change across a protocol is a flat +2 kg; we do not yet scale it by your training history.

A lean-mass floor guards the other side. Your floor is your current lean mass, screened against reference minimums — an appendicular lean-mass index of 7.0 kg/m² for men and 5.5 for women, with a fat-free-mass-index screen at 18 and 15. Screening low raises a flag and a suggestion to get a DEXA scan. It is never a diagnosis.

The clamps in this engine, since we said every clamp is stated: body-fat targets will not go below 8% for men or 15% for women; the goal editor tops out at 35%; and projections carry a margin that widens with your measurement source — about ±0.5 kg from a DEXA, about ±3 kg from a body-fat scale. A BMI-only estimate gets direction, not numbers, as described above.

The protein number this engine produces is a floor computed two ways, taking the higher: 1.9–2.2 g per kilogram of fat-free mass, and 1.2 g per kilogram of body weight (Morton et al., 2018; Longland et al., 2016). Once you adopt a goal, this floor is the protein target you see, in place of the intake-based method above.

Alongside lifting, the Today screen's cardio row defaults to 3 sessions a week, in line with general aerobic-activity guidance of 150 minutes of moderate activity spread across the week. It is a general fitness default, not an exercise prescription.

Sources

IN SHORT · The labels and papers every parameter above was read from. Check our work.

FDA labels (primary sources for half-life, Tmax, bioavailability, and dose ladders):

Peer-reviewed pharmacokinetics:

Body composition, protein, hydration, and goal weight:

Changes to this page

Model parameters are re-verified against current FDA labels when labels change and when we add a medication. If you believe a method or parameter is incorrect, tell us and show your source — we'd rather be corrected than incorrect: methodology@bildhealth.com.