Estimated fetal weight calculator
Four standard ultrasound measurements give an estimated fetal weight: a BPD of 9 cm, HC of 32.5 cm, AC of 31 cm and femur of 6.5 cm come to about 2543.3 g with the Hadlock formula. Results also appear in kilograms and pounds. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Bpd
- 9
- Hc
- 32.5
- Ac
- 31
- Fl
- 6.5
- Bpd cm
- 9 cm
- Hc cm
- 32.5
- Ac cm
- 31
- Fl cm
- 6.5
This estimated fetal weight calculator applies the classic Hadlock four-parameter equation to standard obstetric ultrasound biometry: biparietal diameter, head circumference, abdominal circumference, and femur length. The model maps those lengths, expressed in centimetres, through a published log10 polynomial and returns estimated fetal weight in grams, kilograms, and pounds without network calls, sampling, or date-dependent shortcuts. Enter measurements in centimetres or millimetres, optionally set decimal precision, and read back normalized centimetre values, the intermediate log10 result, a formula string, and step lines you can show beside the answer. Treat the output as an educational and engineering estimate, not a clinical diagnosis or substitute for professional obstetric judgment.
What the Hadlock weight estimate tells you
Estimated fetal weight in the Hadlock sense is a regression-derived mass predicted from four fetal size measurements commonly taken on second- and third-trimester ultrasound: biparietal diameter (BPD), head circumference (HC), abdominal circumference (AC), and femur length (FL). The four-parameter form used here follows the widely cited log10 model in which the common logarithm of weight in grams is a linear combination of AC times FL, HC, BPD times AC, AC, and FL, plus a constant intercept. Raising ten to that log10 value yields estimated fetal weight in grams.
Missing any of the four lengths always fails because the four-parameter Hadlock model requires BPD, HC, AC, and FL together. Zero, negative, non-finite, or out-of-range measurements after unit conversion also fail with field-named messages so a bad form cell does not become a wrong gram figure.
How biometry fields are read and how results stay reproducible
Optional unit accepts centimetres (default) or millimetres so report sheets that print millimetres can post without pre-dividing by ten; every length shares the same unit on a single request. Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message.
After conversion, each measure must lie inside a practical centimetre window that catches inverted unit mistakes without pretending to enforce a gestational-age chart: BPD roughly half a centimetre to fifteen centimetres, HC and AC from two to fifty centimetres, and FL from three tenths of a centimetre to twelve centimetres. Computation builds the log10 polynomial with fixed published coefficients, exponentiates base ten, and derives kilogram and pound companions with a pounds-and-ounces helper for US-style display.
Where a Hadlock EFW calculator earns its keep in education and software
Sonography and obstetric coursework introduce Hadlock estimates when textbooks walk through standard biometry packs and ask learners to convert four lengths into a single gram figure. Product teams call the same contract from scripts to seed deterministic test vectors for maternal-fetal dashboards, to validate user-entered ultrasound fields before related tools run, or to satisfy programming-challenge statements that demand a Hadlock four-parameter estimate rather than a black-box app.
Clinical-engineering demos sometimes show EFW beside measured birth weight purely as a historical regression reference, while reminding readers that real growth assessment depends on percentiles, serial scans, maternal context, and professional interpretation. Treat the output as an educational and engineering estimate: if clinical or research accuracy is required, prefer your institution’s ultrasound package, published growth charts, and a qualified clinician. Pair this tool with other health calculators when you need related anthropometrics, and keep units honest so millimetres and centimetres are never mixed by accident when building forms.
What you can do with it
Sonography coursework and exam checks
Convert BPD, HC, AC, and FL into a Hadlock estimated fetal weight for homework, labs, and exam keys with a reproducible formula string.
Form validation for ultrasound report demos
Normalize cm or mm biometry, reject incomplete packs, and return a single educational EFW for prototype report UIs and input pipelines.
FAQ
What does the estimated fetal weight Hadlock calculator cost?
It is free in your browser on this page.
Which formula does this tool use?
The four-parameter Hadlock model: log10(EFW in grams) = 1.3596 − 0.00386×AC×FL + 0.0064×HC + 0.00061×BPD×AC + 0.0424×AC + 0.174×FL, with lengths in centimetres.
Which ultrasound measurements are required?
All four: biparietal diameter (bpd), head circumference (hc), abdominal circumference (ac), and femur length (fl).
Can I enter millimetres instead of centimetres?
All four lengths share that unit and are converted to centimetres before the formula.
Is this medical advice or a diagnostic tool?
No. The result is an educational and engineering estimate from published coefficients. Clinical decisions need professional obstetric interpretation and institutional protocols.
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/efw-hadlock \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bpd":9,"hc":32.5,"ac":31,"fl":6.5}'const res = await fetch("https://api.kit.forhosting.com/health/efw-hadlock", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bpd": 9,
"hc": 32.5,
"ac": 31,
"fl": 6.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/efw-hadlock",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bpd": 9,
"hc": 32.5,
"ac": 31,
"fl": 6.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/efw-hadlock", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bpd":9,"hc":32.5,"ac":31,"fl":6.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bpd":9,"hc":32.5,"ac":31,"fl":6.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/efw-hadlock", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bpd": 9,
"hc": 32.5,
"ac": 31,
"fl": 6.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.efw_hadlock",
"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
The free browser run on this page uses the same pure module as the API, so homework checks and automation never disagree on a borderline biometry set. Failed validation is not billed; each successful API estimate costs $0.002.
What Hadlock estimated fetal weight means and what the response contains
This calculator returns the echoed input lengths, the unit label you used, normalized centimetre fields for every measure, the intermediate log10_efw value, efw_g, efw_kg, and efw_lb with a compact pounds-and-ounces breakdown, the method tag hadlock_bpd_hc_ac_fl, a human-readable formula string, the precision applied to rounded mass fields, a short message, and ordered steps that restate the arithmetic. There is no gestational-age percentile table, no growth-curve chart, no twin-specific adjustment, and no Doppler or amniotic-fluid term in this contract: the engine either computes a finite positive mass inside supported biometry limits or rejects the request with invalid_input.
How biometry fields are read and how results stay reproducible
The preferred fields are bpd, hc, ac, and fl as finite positive numbers, with aliases biparietal or biparietal_diameter for BPD, head_circumference or head for HC, abdominal_circumference or abdomen for AC, and femur or femur_length for FL. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline.
Where a Hadlock EFW calculator earns its keep in education and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result.
Integration use cases
Deterministic test fixtures for health software
Generate stable efw_g, efw_kg, and efw_lb fields for unit tests, dashboards, and CI assertions without re-coding Hadlock coefficients.