Free Testosterone Calculator: Vermeulen 1999 Method
Compute free and bioavailable testosterone from total T, SHBG, and albumin. Uses the Vermeulen 1999 quadratic, the same method cited by the Endocrine Society guidelines. Validated against published reference cases. Free, no sign-up, zero data collection.
Calculate your free T
Enter total T, SHBG and albumin. See free T, bioavailable T, free T %, and the age/sex normal-range band. Sign up free to save it next to your bloodwork timeline.
Calculate free T (no signup) Save to my protocolWhat is free testosterone?
Most circulating testosterone (~98%) is bound to carrier proteins, primarily sex hormone-binding globulin (SHBG) with high affinity and albumin with lower affinity. Only the unbound (free) fraction, typically 1-4% of total, can diffuse into tissues and activate androgen receptors.
Two clinically useful fractions:
- Free testosterone: truly unbound. The purest measure of bioactive androgen. Normal adult male range: ~9-30 ng/dL.
- Bioavailable testosterone: free plus the loosely albumin-bound fraction. Includes testosterone that can dissociate rapidly in capillary beds. Typically 35-50% of total T.
Why does this matter? Total testosterone can be normal while free testosterone is low, a common pattern in older men (SHBG rises with age) or men on thyroid hormone (also raises SHBG). The opposite pattern (low total T, high free T) occurs in low-SHBG states like obesity or on TRT. In both cases the clinical signal lives in free T, not total T.
Three ways to measure free testosterone
| Method | Accuracy | Availability | Cost | Clinical use |
|---|---|---|---|---|
| Equilibrium dialysis | Gold standard | Research labs, some academic centers | $100-300 | Research, difficult cases |
| Direct analogue immunoassay | Poor, unreliable at low values | Widely available | $20-40 | Not recommended: Endocrine Society advises against |
| Vermeulen calculation from total T + SHBG + albumin | r ≥ 0.95 vs dialysis | Universal, every lab measures total T + SHBG + albumin | $30-60 (panel total) | Clinical default |
The calculator-based approach is the pragmatic sweet spot: any lab can produce the three inputs, the math is fully validated against equilibrium dialysis, and the method is endorsed by the International Society for the Study of the Aging Male (ISSAM) and cited in Endocrine Society hypogonadism guidelines.
The Vermeulen equation
The calculation solves the mass-action equilibrium between testosterone (T) and its two binding proteins (SHBG and albumin) at physiologic pH and 37 °C body temperature:
Binding constants at 37 °C:
K_SHBG = 1 × 10⁹ (M⁻¹)
K_Alb = 3.6 × 10⁴ (M⁻¹)
Conservation: T_total = T_free + T_SHBG-bound + T_Alb-bound
Mass-action: T_SHBG-bound = K_SHBG × T_free × (SHBG − T_SHBG-bound)
T_Alb-bound = K_Alb × T_free × (Alb − T_Alb-bound)
Substitute and rearrange to a quadratic in T_free:
a·T_free² + b·T_free + c = 0
where a, b, c are functions of K_SHBG, K_Alb, total T, SHBG, albumin.
Solve with the quadratic formula; take the physiologically
meaningful positive root. Free T % = T_free / T_total × 100.
Bioavailable T = T_free + T_Alb-bound.
VitaLog implements this in features.computeFreeTestosterone(totalT_ng_dL, shbg_nmol_L, albumin_g_dL, bodyTempC = 37). The function is pure (deterministic, no side effects) and covered by unit tests that validate against published reference cases.
Worked examples
Plug these into the app to verify:
| Total T (ng/dL) | SHBG (nmol/L) | Albumin (g/dL) | → Free T (ng/dL) | Clinical read |
|---|---|---|---|---|
| 600 | 30 | 4.3 | ~11.5 | Normal adult male (reference case from Vermeulen 1999) |
| 300 | 60 | 4.0 | ~4.0 | Low total T with high SHBG → low free T (classic secondary hypogonadism pattern) |
| 1000 | 15 | 4.5 | ~25 | Supraphysiological total T with suppressed SHBG → high-normal free T (TRT on higher-frequency dosing) |
| 500 | 80 | 4.0 | ~5.5 | Normal total T but high SHBG → free T below typical clinical target (common in thyroid excess or old age) |
| 350 | 12 | 3.8 | ~8.5 | Low total T with very low SHBG → free T near low end of normal (metabolic syndrome pattern) |
Interpretation guide
Age-indexed normal ranges (Vermeulen-calculated free T, adult males)
| Age band | Normal free T range |
|---|---|
| 20-29 | 15-30 ng/dL |
| 30-39 | 14-28 ng/dL |
| 40-49 | 12-25 ng/dL |
| 50-59 | 10-22 ng/dL |
| 60-69 | 8-20 ng/dL |
| ≥70 | 7-18 ng/dL |
Free T typically declines 1-2% per year after age 30. A value below the age-band range, paired with symptoms (low libido, fatigue, erectile dysfunction, depression, decreased strength), is the standard definition of hypogonadism, but symptoms matter as much as numbers. Asymptomatic low-free-T is not treated.
Common patterns
- Low total T + high SHBG → classic secondary hypogonadism, free T markedly low. Work up pituitary (prolactin, LH, FSH).
- Normal total T + high SHBG → total T looks fine but free T may be below the clinical target. Check thyroid (hyperthyroid raises SHBG).
- Low total T + low SHBG → common in obesity/metabolic syndrome, free T often near normal. Lifestyle intervention often restores total T.
- High total T + low SHBG → typical TRT pattern, free T is at the upper end. Monitor hematocrit and estradiol.
How VitaLog uses this
Every bloodwork panel you enter automatically computes Vermeulen free T when total T + SHBG + albumin are all present. The value is trended over time alongside total T, making it easy to see when free T is diverging from total T. When trending alerts fire (rising or falling ≥10% across ≥3 panels), free T is included in the severity-sort. The calculator also works standalone, enter three numbers, get three outputs, no account required.
Citations
Vermeulen A, Verdonck L, Kaufman JM. A critical evaluation of simple methods for the estimation of free testosterone in serum. J Clin Endocrinol Metab. 1999;84(10):3666-72. PMID: 10523012.
Bhasin S, Brito JP, Cunningham GR, et al. Testosterone Therapy in Men With Hypogonadism: An Endocrine Society Clinical Practice Guideline. J Clin Endocrinol Metab. 2018;103(5):1715-1744. PMID: 29562364.
Frequently asked questions
- What is free testosterone?
- Free testosterone is the fraction of circulating testosterone that is not bound to carrier proteins (SHBG, albumin) and is available to diffuse into tissue and bind androgen receptors. About 1-4% of total testosterone is in the free state. "Bioavailable" testosterone includes free plus the loosely albumin-bound fraction (totaling approximately 35-50% of total T) and is sometimes considered the functional pool.
- How is free testosterone measured?
- Three methods. (1) Equilibrium dialysis, the gold standard but expensive and rarely available. (2) Direct analogue immunoassay, inexpensive but notoriously inaccurate at low values and not recommended. (3) Calculation from total testosterone, SHBG, and albumin, the Vermeulen 1999 method, which correlates closely with equilibrium dialysis and is the default clinical approach.
- What is the Vermeulen equation?
- A quadratic derived from mass-action equilibrium between testosterone and its binding proteins. Inputs: total testosterone (ng/dL), SHBG (nmol/L), albumin (g/dL), body temperature (defaults to 37 °C). Binding constants: K_SHBG = 1 × 10⁹, K_Alb = 3.6 × 10⁴ at 37 °C. Outputs: free T (ng/dL), free T percentage, bioavailable T (ng/dL).
- What is a normal free testosterone range for men?
- Approximately 9-30 ng/dL for adult men, with age-specific skew: 20s-30s typically 15-30 ng/dL, 40s-50s 10-25, 60s-70s 8-20. Free T declines ~1-2% per year after age 30. Free T percentage is usually 1.5-3.0% of total T. These ranges are for the Vermeulen calculation; direct-assay values can differ.
- Is the Vermeulen calculation accurate?
- Yes, the Vermeulen 1999 method correlates r ≥ 0.95 with equilibrium dialysis across the physiological range. The main failure mode is extreme SHBG values (very low SHBG in obesity; very high SHBG in hyperthyroidism or advanced age). The calculator applies the standard binding constants; for research-grade precision, equilibrium dialysis remains the reference method.
- When would I use bioavailable vs free testosterone?
- Free T is the clinical default and is best correlated with symptoms in most clinical research. Bioavailable T (free + albumin-bound) is sometimes used in older-adult research where SHBG rises with age and total T stays stable but free T falls, bioavailable T can reveal clinically meaningful changes that free T alone might miss.
- What units does the calculator use?
- Total testosterone: ng/dL (to convert from nmol/L, multiply by 28.84). SHBG: nmol/L (standard worldwide). Albumin: g/dL (to convert from g/L, divide by 10). Body temperature: 37 °C by default, only changes if you are measuring in a non-physiologic setting.
- My SHBG is very low, is my free T calculation still accurate?
- Yes. Low SHBG is common on TRT or in metabolic syndrome and is exactly the scenario where the Vermeulen calculation is most useful, it reveals the elevated free-T fraction that a total-T measurement alone would miss. The equation remains valid across the full physiological SHBG range.