Skip to content
OptiPin app icon OptiPin
Download

How OptiPin forecasts your levels

A transparent walk-through of the pharmacokinetic model behind every level curve in the app - the compound database, the math in plain language, and the part most calculators skip: calibrating the forecast to your own bloodwork instead of leaving it on a population average.

Model
One-compartment PK
Compounds
~70 profiled
Inputs
Your dose log
Anchored by
Your bloodwork
TL;DR

The short version

Every time you log an injection, OptiPin knows the compound, the dose, and the date. It looks up that compound's pharmacokinetic parameters - chiefly its half-life and time-to-peak - and computes a rise-then-fall curve for that single dose. It does this for every dose in your history and adds the curves together. The sum is your forecast: where your level has been, where it is now, and where it's heading. If you've logged a blood test, OptiPin then nudges the curve up or down so it passes through your real, measured value - that's the calibration step, and it's what separates a forecast tuned to you from a generic average.

The model

OptiPin doesn't force one equation onto every compound - it uses the most accurate model the evidence supports for each, and is explicit about which is which.

Calibrated testosterone esters (propionate, enanthate, cypionate, undecanoate, and transdermal gel) use a Cmax-anchored saturation-then-decay model. Each ester carries its own peak-concentration (Cmax), dose-scaling factor, and absorption rate, individually tuned against published and community-reference curves - SteroidPlotter, the Nankin/JCEM cypionate data, the Nebido prescribing information for undecanoate. The level ramps to that calibrated peak by the ester's time-to-peak, then decays first-order on its elimination rate. This is what lets the model capture, for instance, that cypionate and enanthate have nearly identical half-lives but very different peak shape - cypionate absorbs far more slowly (its absorption rate is roughly a seventh of enanthate's), so it peaks later and flatter. A single generic curve can't express that; per-ester calibration can.

Everything else - the estimated testosterone esters, estradiol esters, and the whole tier-B catalog (SARMs, aromatase inhibitors, GLP-1s, peptides, oral and other injectable anabolics) - uses a one-compartment pharmacokinetic model with first-order absorption and first-order elimination: the classic Bateman function, the standard textbook model for a drug entering and leaving a single body compartment. A dose is absorbed from the depot at one rate and cleared at another, and the level you see is the running balance between the two.

The compound database

The app ships with a flat catalog of roughly 70 compound profiles. Each profile carries the parameters the model needs:

Testosterone esters, estradiol esters, and DHT each get a dedicated, individually calibrated calculator that outputs real clinical units (ng/dL, pg/mL) against reference ranges. Everything else - SARMs, aromatase inhibitors, GLP-1s, growth and healing peptides, oral and injectable anabolics, pharmaceuticals like tadalafil - runs through the unified Levels & Protocol Planner, where the output is amount-on-board in the compound's native unit (mg, mcg, IU). For those compounds there's no clean assay-to-blood-level conversion, so the app honestly plots "how much is still active," not a fabricated blood concentration.

The math, plainly

For a calibrated testosterone ester, a single dose is anchored to that ester's peak - it saturates toward the peak up to Tmax, then decays:

peak = active dose × F × scale × (Cmax / Cmax_ref)
level(t ≤ Tmax) = peak × (1 − e^(−3t / Tmax))
level(t > Tmax) = peak × e^(−ke·(t − Tmax))

where F is bioavailability, scale and Cmax are the ester's individually-calibrated constants, and ke = ln(2) / half-life. The ramp constant of 3 means the level reaches about 95% of its peak by Tmax.

For every other compound - estimated esters, estradiol, and the tier-B catalog - a single dose follows the one-compartment Bateman function:

level(t) = (active dose × F × ka / (ka − ke)) × (e^(−ke·t) − e^(−ka·t))

where ka is the absorption rate, back-solved from each compound's Tmax. The curve climbs to a peak at Tmax, then decays exponentially.

The key step, shared by both models, is superposition: because each is linear in dose, the contribution of every injection is computed independently and the curves are simply added together. Your level today is the sum of what's left of last week's shot, the week before's, and so on. That's why a steady weekly protocol settles into a stable peak-and-trough band rather than climbing forever.

Worked example: 100 mg testosterone cypionate weekly

Take one 100 mg cypionate injection. Cypionate's active testosterone fraction is about 70% (the rest is the ester), so roughly 70 mg of actual testosterone enters the depot. OptiPin scales that to cypionate's calibrated peak concentration and ramps the level up over the first several days - cypionate's slow absorption means it peaks around day 4–5, later and flatter than enanthate despite a similar half-life - then decays across the rest of the week. A single 100 mg dose doesn't return you to baseline before the next shot is due, so when you inject again the new curve stacks on the tail of the old one. After four to six weeks of weekly dosing the curves superpose into a repeating steady-state band; for a typical responder, 100 mg/week lands that band in roughly the 800–900 ng/dL peak range - the value cypionate's per-ester calibration is tuned to. That's the population-average output; your real peak depends on how fast you clear it, which is exactly what bloodwork calibration fixes.

Estradiol and DHT

The estradiol calculator is a little richer because, on TRT, most of a man's circulating estradiol comes from testosterone aromatizing into E2. So OptiPin estimates E2 as the sum of three parts: (1) an aromatization component scaled from your modeled testosterone level by an aromatization factor, (2) any directly-injected estradiol ester, and (3) an endogenous baseline. If you log an aromatase inhibitor, the model suppresses the aromatization component - and it treats the two AI classes differently. Reversible inhibitors (anastrozole, letrozole) suppress in proportion to their plasma concentration, so suppression rises and falls with the drug. Exemestane, an irreversible "suicide" inhibitor, is modeled separately: it covalently inactivates the enzyme, so suppression builds to a peak a few days after the dose and then recovers only as the body synthesizes new aromatase. It deliberately does not decay on the drug's ~24-hour plasma half-life, and repeated dosing saturates toward a knockdown ceiling rather than summing linearly. The aromatization factor itself is one of the things bloodwork calibration tunes. DHT is modeled from directly-administered DHT esters or gel via a volume-of-distribution conversion - it is not auto-derived from your testosterone (the app doesn't currently model 5-alpha-reductase conversion of your T into DHT).

Bloodwork calibration - the part that matters

This is the genuine differentiator, and it's worth being precise about. An uncalibrated forecast uses population-average pharmacokinetics. The curve shape is trustworthy - half-lives and absorption don't vary wildly - but the absolute level can be well off, because clearance, SHBG, body composition, and aromatization differ enormously between people. Two men on identical 100 mg/week can sit hundreds of ng/dL apart.

OptiPin closes that gap by fitting your forecast to your actual lab results. When you enter a testosterone panel, the model computes what your dose history should have produced at the draw date (pulling ~45 days of prior doses so the contribution is accurate), compares it to your measured value, and solves for two personal parameters:

The relationship the app solves is simply measured = baseline + (expected contribution × dose-response factor). With one lab point it does a direct fit; with several panels it runs a multi-point grid search that finds the baseline and response factor minimizing the error across all your measured points at once. The result is a curve that passes through your reality - a forecast anchored to your physiology rather than a textbook average. If you've never opened the calculator or entered a lab, it stays on the neutral defaults (baseline 0, response factor 1.0) and is honest about being a pure exogenous estimate.

Note that calibration applies to the hormone calculators (testosterone, estradiol). The amount-on-board curves for peptides, SARMs, and GLP-1s are not calibrated to bloodwork - there's no routine assay to anchor them to - so treat those as schedule-comparison tools, not blood levels.

What it's not

Where the numbers come from

The compound parameters are grounded in published pharmacokinetic literature, and the testosterone-ester curves are cross-checked against established reference curves so a given dose lands where the evidence says it should. Key sources behind the testosterone modeling include:

Where a compound's evidence is thin - many SARMs and novel peptides - the profile is flagged limited or estimated in-app rather than presented as settled science.

Track it in OptiPin

The forecast isn't a one-off calculator you re-type numbers into. In OptiPin it runs continuously off your dose log, updates as you inject, and recalibrates whenever you add new bloodwork - and OptiPin can read that calibrated picture to surface plain-language observations about your trends. The same engine powers the half-life visualizer and the level calculators.

Forecast tuned to you

Calibrate your levels to your own bloodwork

Log your doses, enter a lab result, and OptiPin anchors the curve to your physiology - not a population average. All on-device.

Download on the App Store

FAQ

How accurate is the forecast?

Uncalibrated, it's a population-average estimate - the curve shape is reliable but the absolute number can be off because metabolism varies. Enter one real bloodwork result and OptiPin fits two parameters (your baseline + a 0.5×–1.5× dose-response factor) to anchor the curve to you, which sharply improves the absolute level. It's still an estimate; a blood draw is always the source of truth.

Which compounds does it cover?

Testosterone, estradiol, and DHT get dedicated calibrated calculators in clinical units (ng/dL, pg/mL). Around 70 other compounds - SARMs, AIs, GLP-1s, peptides, oral/injectable anabolics, pharmaceuticals - run in the Levels & Protocol Planner as amount-on-board (mg/mcg/IU).

Does it work for peptides and GLP-1s?

Yes, but it plots amount-on-board (how much is still active) rather than a blood concentration, because there's no routine assay to map those to a blood level. Great for comparing schedules and timing; not calibrated to bloodwork the way the hormone curves are.

Why calibrate with bloodwork?

Two people on the same dose can sit hundreds of ng/dL apart due to clearance, SHBG, and aromatization differences a generic model can't know. One lab value tells the model where you actually land; more points make the multi-point fit better still.

Is it medical advice?

No. OptiPin is an educational tracking tool, not a prescriber. Forecasts are mathematical estimates to help you understand timing and trends - they don't diagnose, recommend doses, or replace a clinician or a lab test.

What model is it, exactly?

Two models, chosen by compound. Calibrated testosterone esters (cypionate, enanthate, propionate, undecanoate, gel) use a Cmax-anchored saturation-then-decay model with per-ester constants tuned to published curves. Everything else - estimated esters, estradiol, and the tier-B catalog of SARMs, AIs, GLP-1s and peptides - uses the one-compartment Bateman function. Both are applied per dose and superposed across your whole log. No machine-learning black box; transparent, parameter-driven pharmacokinetics.

Educational only, not medical advice. OptiPin's level forecasts are mathematical estimates built from published pharmacokinetic parameters and your own logged data. They are not measurements, diagnoses, or dosing recommendations. Confirm with bloodwork and work with a clinician who knows your history.

Related

All calculators · Half-life visualizer · Free testosterone calculator · Bloodwork guide