T/E2 ratio calculator
Divide total testosterone by estradiol to get the T/E2 ratio: 500 ng/dL of testosterone with 25 pg/mL of estradiol gives a ratio of 20. Use conventional units and treat it as a learning figure, not a diagnosis. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Testosterone
- 500
- Estradiol
- 25
- Unit testosterone
- ng/dL ratio
- Unit estradiol
- pg/mL
- Ratio
- 20
- Ratio rounded
- 20
The testosterone-to-estradiol ratio is a simple division of two sex-steroid concentrations that endocrinology students, TRT clinics, and hormone-tracking apps use when reading a serum panel. Total testosterone and estradiol both come from related gonadal and adrenal steroid pathways, but their ratio can shift when aromatization, adipose tissue, aromatase-inhibitor use, or exogenous testosterone changes the relative androgen-to-estrogen balance. This capability accepts two serum values in the conventional pairing of nanograms per decilitre for testosterone and picograms per millilitre for estradiol, returns the exact unitless T/E2 ratio plus a two-decimal display value, and restates the formula so clients can pin it in tests. Missing fields, non-numeric strings, negative concentrations, and a zero estradiol value fail with a clear invalid input error and are never charged.
What the T/E2 ratio measures and which inputs you need
The testosterone-to-estradiol ratio is the quotient of two circulating sex-steroid concentrations. In conventional United States laboratory units, total testosterone is reported in nanograms per decilitre and estradiol is reported in picograms per millilitre; dividing those two numbers yields the mixed-unit T/E2 ratio that clinics, textbooks, and tracking apps treat as a unitless figure of merit. The ratio is not a diagnosis.
It is a compact way to see whether androgen and estrogen concentrations moved together or drifted apart after aromatization, body-composition change, aromatase-inhibitor use, or exogenous testosterone. Practical bounds keep consumer and classroom inputs sane: testosterone from zero through ten thousand nanograms per decilitre, estradiol from one hundredth through ten thousand picograms per millilitre. Negative testosterone likewise fails.
A testosterone of zero is allowed and returns a ratio of zero.
Where the T/E2 ratio is used, and its limits
Call the free in-browser T/E2 ratio calculator for classroom demos, nursing homework checks, and quick personal learning without reimplementing the division in every spreadsheet. Prefer consistent conventional units; if your UI only collects whole numbers, send integers and the engine still accepts numeric strings. Authors shipping SDKs can map the ratio into colour chips for educational thresholds they define themselves and show the formula string on a teaching card.
Keep expectations educational: this is a calculation and learning tool, not a diagnostic medical device, and people with symptoms, known hypogonadism, fertility concerns, gynecomastia, or medication changes should follow professional medical advice rather than any single automated ratio alone.
What you can do with it
Hormone-tracking apps and TRT worksheets
Apps show learners how androgen and estrogen concentrations move together without recoding the conventional ng/dL over pg/mL division on every client.
FAQ
What happens if estradiol is zero or a value is negative?
Zero estradiol would divide by zero; negative testosterone or estradiol is not a valid serum concentration. Those failures are not charged.
Which units should I send?
Conventional US pairing only: testosterone in ng/dL and estradiol in pg/mL. Convert SI results (nmol/L or pmol/L) before calling, or use a dedicated unit converter first.
Is the T/E2 ratio calculator free?
The browser tool runs free on your device.
Does a high or low T/E2 ratio mean I have a medical condition?
No. This product returns the unitless quotient only. It does not diagnose, treat, or label clinical bands; published intervals vary by assay, sex, and protocol. Follow professional medical advice for symptoms or treatment decisions.
What can make the T/E2 ratio change?
The balance shifts when the body converts testosterone into estradiol, with changes in body fat, with aromatase inhibitors or with testosterone therapy. The ratio shows whether the two hormones moved together or drifted apart.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/health/t-e2-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"testosterone":500,"estradiol":25}'const res = await fetch("https://api.kit.forhosting.com/health/t-e2-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"testosterone": 500,
"estradiol": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/t-e2-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"testosterone": 500,
"estradiol": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/t-e2-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"testosterone":500,"estradiol":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"testosterone":500,"estradiol":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/t-e2-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"testosterone": 500,
"estradiol": 25
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.t_e2_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What the T/E2 ratio measures and which inputs you need
Send required fields testosterone and estradiol as finite numbers; aliases such as t, total_testosterone, serum_testosterone, testosterone_ngdl, e2, oestradiol, serum_estradiol, and estradiol_pgml are accepted when documented. Estradiol must be strictly greater than zero because the ratio is a division; a zero or negative estradiol concentration fails with invalid_input. Identical inputs always yield identical JSON because the path is pure arithmetic with no network, no model, no random seed, and no wall clock. Do not send SI testosterone in nanomoles per litre or estradiol in picomoles per litre without converting first; this endpoint is the conventional nanogram-per-decilitre over picogram-per-millilitre contract only.
Reading ratio, response fields, and error behaviour
Pair the numeric fields with the formula string on a teaching card so learners can see that T/E2 is nothing more exotic than testosterone divided by estradiol in the conventional pairing. On success the response echoes testosterone and estradiol with stable rounding, sets unit_testosterone to ng/dL and unit_estradiol to pg/mL, and reports ratio as the full-precision division result plus ratio_rounded to two decimal places for UI display. The unit field is always the string ratio to mark the quantity as unitless. formula restates the teaching equation as a single string, and method is always testosterone_to_estradiol_ratio so downstream code can branch without sniffing shapes. Use ratio when you need stable numeric comparison in tests; use ratio_rounded when you show the number next to a hormone card or chart. Missing required fields, empty strings, non-finite values, out-of-range readings, any negative testosterone or estradiol, and estradiol equal to zero all fail with invalid_input and are not charged. Do not confuse this endpoint with free-testosterone calculators, SHBG-adjusted androgen indices, aromatization models, or full endocrine decision engines—those are different search intents and different contracts. This product only divides two serum concentrations and returns the unitless T/E2 ratio. It does not label high or low clinical bands because published T/E2 reference intervals vary by assay, sex, age, and clinic protocol; clients that need a band should apply their own documented thresholds to the returned ratio.
API usage, pricing, product workflows, and practical limits
Send a JSON body with required testosterone and estradiol values in the conventional pairing of nanograms per decilitre and picograms per millilitre. Use the prepaid API when a health SaaS, electronic worksheet, simulation lab, tutoring platform, or school LMS needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with your own laboratory units and clinical workflow—confirm that testosterone is in nanograms per decilitre and estradiol is in picograms per millilitre, and convert SI results before calling—then store ratio and ratio_rounded alongside the raw concentrations for dashboards and export columns.
Integration use cases
Endocrinology and medical-school homework
Students submit serum testosterone and estradiol panels and pin expected T/E2 JSON in automated checkers with deterministic outputs.
Simulation labs and SaaS backends
Server pipelines that already store sex-steroid fields call a prepaid endpoint for T/E2 instead of duplicating the formula in every language.
Technical questions
How is the T/E2 ratio calculated?
Ratio = testosterone (ng/dL) ÷ estradiol (pg/mL). Send those two required fields; the response includes ratio, ratio_rounded, unit, and a readable formula string.