This page explains (1) how the calculator turns your inputs into curves, and (2) what the science actually supports—including where the model is solid, where it’s simplified, and why calibration matters.
In one sentence
The calculator treats each injection as a slow-release depot, predicts a testosterone curve using a standard pharmacokinetic shape, then estimates estradiol as a scaled fraction of testosterone that’s modified by body fat, genetics, AI, and calibration.
Calibration lets you anchor the model to your own lab results. It computes two key personal factors:
Important: “Optimal / High / Excessive / Crash risk” labels in the E2 panel are heuristic risk buckets based on the simulated average E2—not clinical diagnoses. Use the curve for pattern recognition, then confirm with symptoms + labs.
Esters mainly change how quickly testosterone is released from the injection site. Single-esters use one absorption constant (ka), while Sustanon is modeled as a weighted 4-component blend (each component with its own ka and active ratio).
| Ester (model) | Active ratio | ka (1/day) | Lag (days) | ke (1/day) | Implied half‑life (days) |
|---|---|---|---|---|---|
| Propionate | 0.84 | 0.850 | 0 | 1.0 | 0.8 |
| Enanthate | 0.72 | 0.150 | 0 | 1.0 | 4.6 |
| Cypionate | 0.70 | Blend** | 0.6 | 1.0 | 8.0 |
| Sustanon 250 (blend) | 0.70* | Blend** | 0 to 6 | 1.0 | ~8.7*** |
| Undecanoate (Tea seed) | 0.63 | 0.033 | 4 | 1.0 | 21.0 |
| Undecanoate (Castor) | 0.63 | 0.020 | 5 | 1.0 | 34.7 |
Active ratio means “how many mg of testosterone base are in 1 mg of ester.” This helps translate mg injected into mg testosterone released.
* Sustanon active ratio is the weighted blend average in this model.
** Blend ka values in this model:
• Cypionate: early 0.50 + depot 0.087 (with a 0.6 day release lag).
• Sustanon: propionate 0.85, phenylpropionate 0.35, isocaproate 0.08, decanoate 0.03 (1/day), with delayed decanoate release (up to 6 days).
*** Terminal half-life shown from the slowest blend component in the model.
Route changes the effective absorption constant: SubQ uses a modestly reduced ka, which usually lowers peaks and raises troughs at the same weekly load.
Weight is used as a rough volume proxy: heavier body mass → larger distribution volume → slightly lower concentration for the same released amount (a simplification).
These primarily affect E2 prediction. The calculator is explicit about this: the testosterone curve is PK‑driven, while E2 is a scaled transform of testosterone.
Primo, EQ, and Mast are implemented as dose-aware E2 pressure modifiers. They are directional and heuristic, and intentionally conservative.
You can save full protocol snapshots to local storage and overlay a selected scenario as a dashed comparison curve for both T and E2 charts.
When enabled, the model adds a small constant testosterone “boost” based on weekly IU using a Hill‑curve (a simplified dose–response).
The model uses a one‑compartment system with first‑order absorption (ka) and first‑order elimination (ke).
For a single injection at time 0, the shape is:
C(t) ∝ (Dose · ka / (ke − ka)) · (e^(−ka·t) − e^(−ke·t)) for t ≥ 0
This is the classic “Bateman function,” commonly used for oral drugs but also a good first approximation for depot/absorption‑limited injections.
For injections at times ti:
Total(t) = Σ C(t − ti − Lag_i) over all injections ti ≤ t
For performance, contributions older than ~7 effective half-lives are skipped (remaining amount is less than 1%).
For each injection j at time tj and component i in {prop, phenylprop, isocaproate, decanoate}:
Dose_i = Dose_total × Fraction_i × ActiveRatio_i
Sustanon_Total(t) = Σj Σi Bateman(t − tj − Lag_i, Dose_i, ka_i_effective, ke)
Sustanon fractions used:
propionate 12%, phenylpropionate 24%, isocaproate 24%, decanoate 40%
ka_effective = ka_ester × RouteFactor
RouteFactor = 1.00 (IM), 0.83 (SubQ)
For Sustanon, RouteFactor is applied per component (ka_i_effective = ka_i × RouteFactor).
For formulations with delayed release, each component can use a lag:
Bateman_input_time = t − ti − Lag_i
In the current model this is used for cypionate (short depot lag), Sustanon decanoate (later tail contribution), and undecanoate oils.
The model output is scaled into typical lab units with an empirical factor (VOLUME_FACTOR) and an optional calibration multiplier:
Testosterone_ng/dL(t) = Total(t) · VOLUME_FACTOR · WeightFactor · Calibration_T
E2_pg/mL(t) = Testosterone_ng/dL(t)
× [BaseRatio × FatRel × GeneRel × AI × Responder × SexAromatase × CompoundMod]
FatMod(f) = min(2.5, 0.8 + 0.03 × max(0, f − 10)^1.2)
If calibrated and enabled:
FatRel = FatMod(current) / FatMod(calibration_fat)
GeneRel = GeneMult(current) / GeneMult(calibration_genetics)
If standard mode:
FatRel = FatMod(current)
GeneRel = GeneMult(current)
SexAromatase = 1.00 (male), 1.16 (female)
CompoundMod = max(0.55, 1 − PrimoDrop − EQDrop − MastDrop)
PrimoDrop = min(0.22, PrimoDose_mg_per_week / 2600) if enabled else 0
EQDrop = min(0.18, EQDose_mg_per_week / 3300) if enabled else 0
MastDrop = min(0.05, MastDose_mg_per_week / 6000) if enabled else 0
BaseRatio defaults by sex mode (male/female presets), but calibration sets it to labE2 / labT so future simulations start from your measured conversion ratio.
Calibration_T = clamp(labT / modelT, 0.4, 2.5).
BaseRatio = labE2 / labT and stores your baseline fat/gene settings so future changes reflect relative movement.Female mode now opens with an HRT-oriented starter profile to avoid male-dose defaults being applied accidentally.
Female starter profile (UI defaults when switching to Female):
- Injection method: SubQ
- Dose: 8 mg
- Frequency: every 7 days
- Weight: 65 kg
- Body fat: 28%
- Ester: cypionate
Male starting values are intentionally unchanged.
Big idea: injectable esters behave like a depot. The ester chain length + oil vehicle slow release, so serum testosterone rises after injection and then declines gradually. Peaks and troughs can be large with weekly/biweekly enanthate/cypionate schedules. citeturn12view2
With oil depots, elimination from blood can be faster than release from the depot. In that case, the observed half‑life is governed by the slower process (“flip‑flop kinetics”).
The calculator captures this by setting ke high and letting ka control the tail.
The calculator assumes a depot-like release profile; real-life curves can differ with injection route, site, oil, needle depth, and individual blood flow. Reviews discuss feasibility and PK differences for subcutaneous administration. citeturn8search3
Guidelines matter because the same dose can look “high” or “low” depending on when you draw blood.
Any repeated dosing schedule needs time to stabilize. The calculator’s “steady state” note is based on the ester’s effective half-life (roughly 4–5 half-lives to settle for first-order systems).
The simulator now includes an injection route selector. Intramuscular (IM) and subcutaneous (SubQ) injections both work clinically, but SubQ is often experienced as a slightly slower-release depot in day-to-day practice.
ka).This route adjustment is intentionally conservative and educational. Real kinetics still vary by needle depth, site perfusion, oil viscosity, and individual tissue characteristics.
Most estradiol in men is produced by aromatization of testosterone (and androstenedione) in peripheral tissues—especially adipose tissue. Aromatase is encoded by CYP19A1. citeturn1search5turn1search9
Higher adiposity tends to increase aromatase expression/activity, which can shift the testosterone → estradiol balance. Reviews of obesity-related hypogonadism discuss altered sex steroid levels (including estradiol). citeturn1search2turn1search9
Rare aromatase deficiency cases show undetectable estradiol with skeletal consequences, and estradiol replacement improves bone parameters—evidence that estradiol matters in male physiology. citeturn10search12turn10search8
AIs reduce aromatization (lowering estradiol and often raising gonadotropins/testosterone in some contexts), but they can affect bone metabolism. Reviews in men discuss these tradeoffs. citeturn10search1turn10search9
The calculator’s AI control is intentionally a multiplier, not a dosing engine. Real AI response varies by drug, dose, metabolism, and baseline estradiol—so dosing should be clinician-guided with follow-up labs.
Aromatase converts androgens into estradiol continuously. In TRT planning, the goal is usually not to "crush" E2 or let it run unchecked, but to keep most of the curve inside a clinically reasonable symptom-compatible band (the chart's green zone).
The TRT++ panel adds optional adjunct compounds to support scenario testing. These are simplified modifiers, not prescribing tools.
These effects are intentionally conservative and heuristic. Use this panel for directional "what-if" exploration only, and confirm any real-world decisions with clinician-guided labs.
Human chorionic gonadotropin (hCG) acts at the LH receptor and can stimulate Leydig-cell testosterone production. In controlled studies, relatively low-dose hCG helped maintain intratesticular testosterone in healthy men whose gonadotropins were suppressed by exogenous testosterone. citeturn11search0turn11search10
Why the calculator models hCG as a small “boost”: it’s aiming to represent the direction of effect (more LH-receptor stimulation → more endogenous contribution), not to reproduce full reproductive endocrinology.
Do not use this tool to self-prescribe or change medication without a clinician. It is an educational model. The best use is: propose a hypothesis → confirm with labs → iterate with supervision.
The charts include a +/-15% model range band around the central trajectory to discourage false precision. It is a visual uncertainty aid, not a formal confidence interval derived from patient-level variance data.
These sources were selected for guideline authority, primary literature, or reputable lab/medical documentation.
If you want this explainer to link back into your calculator build more tightly (same theme, same navigation, or embedded inside the app),
place this file next to index.html and keep the “Open simulator” link as-is.
© trt.ge. This page is purely informational and should not be treated as medical advice.