Pedplot draws a simple, teachable model: first-order decay, stacked doses, ester weight, and a straight rise to the peak. This page shows the formula, where each number comes from, and what the model leaves out.
By Austin Witherow and Mason Calvert · Last updated · Sources
The chart shows the estimated amount of a drug still in the body, in milligrams (IU for compounds dosed in IU). For an ester, that is the amount of the parent hormone, after the ester weight is taken out.
It is not a blood level, and it will not match a lab result in ng/dL. Turning an amount into a blood concentration needs each person's volume of distribution, binding proteins such as SHBG, and clearance. All three vary a lot from person to person, and the model has none of them.
Each dose rises in a straight line to its time to peak (Tmax), then halves once every half-life (t½):
activeDose = doseMg × activeFraction remaining(t) = 0 if t < t0 activeDose × (t − t0)/Tmax if t0 ≤ t < t0 + Tmax activeDose × 0.5^((t − t0 − Tmax) / t½) otherwise
Every later dose is the same curve shifted in time, and the chart adds them together. That sum is why long esters climb for weeks before they level off.
One 200 mg dose of Test E on day 0. The ester share is 72%, so the active dose is 144 mg. Time to peak is 2 days and the half-life is 4.5 days. These are the values the plotter draws:
| Day | Estimated mg in body |
|---|---|
| 1 | 72 mg |
| 2 | 144 mg |
| 5 | 90.7 mg |
| 10 | 42 mg |
Every compound lists its sources, and each source is one of 4 kinds. The last column counts how many of the 37 listed compounds take their half-life from that kind.
| Kind | What it is | Half-lives |
|---|---|---|
| Label | The official prescribing information for an approved product (an FDA label or a European SmPC) | 10 |
| Paper | A published pharmacokinetic study, read in full or from its abstract | 8 |
| Computed | Arithmetic from molecular weights listed on PubChem | 0 |
| Community estimate | A figure used by older plotters and forums, with no study behind it | 18 |
1 plotted half-life is not stated by any single source, because the sources disagree: Test C. The compound page explains why.
Each compound also gets a data-quality grade:
Each compound page lists its sources in full, with the exact figure and where it appears. The catalog table below links to them.
An ester is the hormone with a fatty acid chain attached, which slows its release from the injection. The chain has weight but no hormone, so part of every milligram is the ester. PubChem lists testosterone at 288.4 g/mol and testosterone enanthate at 400.6 g/mol. So 100 mg of testosterone enanthate is about 72 mg of testosterone (288.4 ÷ 400.6).
The plot multiplies each dose by that share, which the catalog table calls the share that is parent. Orals, GLP-1s, and peptides are not esters, so the table shows a dash for them.
Sustanon is split into its 4 esters, 3 of which are not listed on their own. Rows marked * use an estimate with weaker published data.
| Compound | Group | t½ | Tmax | Share that is parent | Unit | Data quality | Sources |
|---|---|---|---|---|---|---|---|
| Test E (Testosterone enanthate) | Testosterone | 4.5d | 2d | 72% | mg | Medium | 4 (Paper, Computed (PubChem), FDA label) |
| Test C (Testosterone cypionate) | Testosterone | 5d | 2d | 70% | mg | Low | 3 (FDA label, Paper, Computed (PubChem)) |
| Test P (Testosterone propionate) * | Testosterone | 19h | 1d | 84% | mg | Low | 3 (Paper, Computed (PubChem), Community estimate) |
| Test U (Testosterone undecanoate) | Testosterone | 34d | 7d | 63% | mg | Medium | 4 (Paper, FDA label, SmPC, Computed (PubChem)) |
| Sustanon (Sustanon 250) | Testosterone | 7.5d | 3d | 70% | mg | Medium | 2 (SmPC, Community estimate) |
| Test gel (Testosterone gel) * | Testosterone | 1d | 7h | — | mg | Low | 3 (FDA label, SmPC, Community estimate) |
| Deca (Nandrolone decanoate) | Injectable | 7.5d | 2d | 64% | mg | Medium | 4 (SmPC, Paper, Computed (PubChem)) |
| NPP (Nandrolone phenylpropionate) * | Injectable | 1.5d | 1d | 67% | mg | Low | 3 (Paper, Computed (PubChem), Community estimate) |
| EQ (Boldenone undecylenate) * | Injectable | 14d | 4d | 63% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| Mast E (Drostanolone enanthate) * | Injectable | 4.5d | 2d | 73% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| Mast P (Drostanolone propionate) * | Injectable | 19h | 1d | 84% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| Tren A (Trenbolone acetate) * | Injectable | 1d | 12h | 87% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| Tren E (Trenbolone enanthate) * | Injectable | 4.5d | 2d | 71% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| DHB (Dihydroboldenone cypionate) * | Injectable | 5d | 2d | 70% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| Primo (Methenolone enanthate) * | Injectable | 4.5d | 2d | 73% | mg | Low | 2 (Computed (PubChem), Community estimate) |
| Winny (Stanozolol suspension) * | Injectable | 1d | 6h | — | mg | Low | 1 (Community estimate) |
| Superdrol (Methasterone injectable) * | Injectable | 1d | 6h | — | mg | Low | 1 (Community estimate) |
| Anavar (Oxandrolone) | Oral | 10h | 58m | — | mg | High | 2 (FDA label, Paper) |
| Dianabol (Methandienone) * | Oral | 5h | 58m | — | mg | Low | 1 (Community estimate) |
| Anadrol (Oxymetholone) * | Oral | 14h | 4h | — | mg | Low | 2 (Paper, Community estimate) |
| Superdrol (Methasterone) * | Oral | 10h | 58m | — | mg | Low | 1 (Community estimate) |
| Proviron (Mesterolone) | Oral | 12h | 2h | — | mg | High | 1 (SmPC) |
| Halotestin (Fluoxymesterone) | Oral | 9h | 58m | — | mg | High | 2 (FDA label, Paper) |
| Turinabol (Chlorodehydromethyltestosterone) | Oral | 16h | 3h | — | mg | Medium | 1 (Paper) |
| Winny (Stanozolol oral) * | Oral | 10h | 58m | — | mg | Low | 1 (Community estimate) |
| Ozempic (Semaglutide) | GLP-1 | 7d | 2d | — | mg | High | 2 (FDA label) |
| Mounjaro (Tirzepatide) | GLP-1 | 5d | 2d | — | mg | High | 2 (FDA label) |
| Reta (Retatrutide) | GLP-1 | 6d | 2d | — | mg | Medium | 2 (Paper, Community estimate) |
| Saxenda (Liraglutide) | GLP-1 | 13h | 12h | — | mg | High | 2 (FDA label) |
| Trulicity (Dulaglutide) | GLP-1 | 5d | 2d | — | mg | High | 1 (FDA label) |
| Rybelsus (Oral semaglutide) | GLP-1 | 7d | 58m | — | mg | High | 2 (FDA label) |
| Mazdu (Mazdutide) * | GLP-1 | 18d | 3d | — | mg | Low | 3 (Paper) |
| HGH (Somatropin) | Peptide | 4h | 4h | — | mg | High | 2 (FDA label) |
| HCG (Chorionic gonadotropin) | Peptide | 1.5d | 6h | — | iu | Medium | 1 (SmPC) |
| Sermorelin * | Peptide | 14m | 29m | — | mg | Low | 3 (Paper, Community estimate) |
| CJC-1295 (Mod GRF 1-29 (CJC-1295 no DAC)) * | Peptide | 7h | 2h | — | mg | Low | 3 (Paper, Community estimate) |
| MK-677 (Ibutamoren) * | Peptide | 6h | 5h | — | mg | Low | 3 (Paper, Community estimate) |
We check the cited label or paper, update the number and the date on the page, and note the change on the methodology page. Send a correction with its source to austin@buildleansaas.com.
| Date | Compound | Change | Source |
|---|---|---|---|
| Test U | Half-life: 21d → 34d | Behre et al. 1999 | |
| MK-677 | Half-life: 1d → 6h | Sinha et al. 2020 | |
| Sermorelin | Half-life: 1h → 14m | Sinha et al. 2020 | |
| Deca | Time to peak: 4d → 2d | Bagchus et al. 2005 | |
| Anadrol | Time to peak: 58m → 4h | Cardoso et al. 2002 | |
| Turinabol | Time to peak: 58m → 3h | Schumann 1991 | |
| Rybelsus | Time to peak: 1d → 58m | Rybelsus / Ozempic tablets FDA label | |
| HCG | Time to peak: 12h → 6h | Pregnyl 5000 IU SmPC | |
| Test P | Share that is parent: 80% → 84% | Computed (PubChem) | |
| Mast P | Share that is parent: 80% → 84% | Computed (PubChem) | |
| Mast E | Share that is parent: 70% → 73% | Computed (PubChem) | |
| Primo | Share that is parent: 70% → 73% | Computed (PubChem) | |
| EQ | Share that is parent: 61% → 63% | Computed (PubChem) | |
| Test C | Share that is parent: 69% → 70% | Computed (PubChem) | |
| Tren E | Share that is parent: 70% → 71% | Computed (PubChem) |