Stillbirth risk calculator
Estimate the chance of stillbirth over the rest of pregnancy from the week, the mother's age and optional risk factors: at 39 weeks and age 28 with none, it is 0.88 per 1000, a low band. Educational, not a prognosis. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Gestational age
- 39
- Maternal age
- 28
- Base per 1000
- 0.88
- Maternal age rr
- 1
- Factor rr
- 1
- Combined rr
- 1
Stillbirth is the death of a fetus at or after twenty weeks of gestation, and families, midwives, educators, and product teams often need a transparent percentage that combines how far the pregnancy has already come, the mother's age, and a short list of well-studied clinical flags. This stillbirth risk calculator estimates remaining stillbirth probability from gestational age between twenty and forty-two weeks, maternal age, and selected optional risk factors—previous stillbirth, pre-existing diabetes, hypertension, smoking, obesity, fetal growth restriction, and multiple pregnancy—using a remaining-risk table, age relative risks, and odds-adjusted factor multipliers.
What remaining stillbirth risk means and how gestational age, age, and factors combine
Stillbirth in this calculator follows the conventional United States vital-statistics threshold: fetal death at or after twenty completed weeks of gestation, rather than the twenty-four-week cut used in some other reporting systems. The quantity returned is a remaining-risk percentage. Given that the pregnancy has already reached the stated gestational age, the engine estimates stillbirth probability through the rest of pregnancy after maternal age and selected flags are applied.
That is a different question from the week-specific stillbirth rate among deliveries that happen to occur at that week, which is dominated at twenty to twenty-three weeks by the fact that many of those births are themselves stillbirths. Remaining risk is the counselling-style figure people search for when they type stillbirth risk calculator.
Baseline remaining stillbirths per thousand ongoing pregnancies sit near recent United States incidence of about six per thousand at week twenty and then decline toward term, with a modest uptick at forty-one and forty-two weeks that reflects the well-described rise in weekly stillbirth hazard after the due date when birth has not yet occurred.
Maternal age is converted to a relative risk with a nadir in the mid-twenties, a mild rise through the early thirties, and a steeper rise after thirty-five and again after forty, following the pattern reported by Reddy and colleagues. Optional flags for previous stillbirth, pre-existing diabetes, chronic or pregnancy hypertension, smoking, obesity at a body-mass index of thirty or more, fetal growth restriction, and multiple pregnancy multiply the odds by published Flenady-style relative risks rather than adding raw percentages, so stacked factors saturate below one hundred percent instead of overshooting.
Gestational age must lie between twenty and forty-two weeks inclusive; values outside that window are rejected because both the remaining-risk table and the stillbirth definition itself are undefined there.
How to read the percentage, where the calculator belongs, and what it does not decide
Risk bands are remaining-risk strata, not a personal prognosis. Low remaining risk is under two stillbirths per thousand ongoing pregnancies, the usual teaching band near term with no stacked factors. Moderate remaining risk is two up to five per thousand, which covers much of mid-pregnancy at baseline.
High remaining risk is five up to ten per thousand, typical of early remaining-risk at twenty weeks or a modest cluster of flags later on. Very high remaining risk is ten or more per thousand and usually means a previous stillbirth, fetal growth restriction, or several multipliers have been combined; the odds model still keeps the percentage below one hundred. Those bands are historical-style educational cuts, not delivery-timing rules.
They do not replace kick-counts, cardiotocography, growth scans, Doppler studies, induction counselling, or a clinician's view of comorbidities this table never captures—cholestasis, antiphospholipid syndrome, substance use beyond the smoking flag, or reduced fetal movements on the day of the visit. Use the calculator for education, exam keys, research coding of obstetric rows, and product prototypes that need a deterministic stillbirth-risk step before handing off to licensed systems.
Neighbouring tools such as a due-date engine, a pregnancy-week calculator, or a pregnancy weight-gain band answer different search intents and should keep their own landings rather than being overloaded here.
What you can do with it
Teaching vignettes and exam keys
Score textbook obstetric cases so instructors and auto-graders share one remaining-risk percentage for a given gestational age, maternal age, and set of stillbirth risk flags.
Research coding of pregnancy cohorts
Attach a reproducible remaining stillbirth percentage and risk band to study rows when gestational age, maternal age, and the seven binary factors are already in the table.
Prototype antenatal education scaffolds
Wire a transparent stillbirth-risk step into educational apps and checklists that later hand off to licensed clinical systems for real monitoring and timing decisions.
FAQ
Why must gestational age be between 20 and 42 weeks?
Stillbirth is defined here from 20 completed weeks, and the remaining-risk table is tabulated through 42 weeks.
How should I interpret low, moderate, high, and very high remaining risk?
Bands are remaining stillbirths per thousand ongoing pregnancies: low under 2, moderate 2–5, high 5–10, and very high 10 or more. They are educational strata, not a personal prognosis or a delivery-timing rule.
Can I use this percentage to time birth or stop monitoring?
No. This is an educational arithmetic aid, not medical advice. Surveillance, induction, and whether to continue a pregnancy need a licensed clinician and the rest of the clinical picture this calculator does not collect.
How is remaining risk different from the stillbirth rate at a given week?
Remaining risk assumes the pregnancy has already reached that week and looks at the rest of it. The rate among births at one particular week is another figure; in the earliest weeks it is dominated by births that are themselves stillbirths.
Why do risk factors multiply instead of adding up?
Each factor multiplies the odds by its published relative risk, such as 2.90 for pre-existing diabetes. Working on odds keeps several stacked factors below 100% instead of overshooting, which adding raw percentages would do.
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/stillbirth-risk \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"gestational_age":39,"maternal_age":28}'const res = await fetch("https://api.kit.forhosting.com/health/stillbirth-risk", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"gestational_age": 39,
"maternal_age": 28
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/stillbirth-risk",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"gestational_age": 39,
"maternal_age": 28
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/stillbirth-risk", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"gestational_age":39,"maternal_age":28}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"gestational_age":39,"maternal_age":28}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/stillbirth-risk", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"gestational_age": 39,
"maternal_age": 28
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.stillbirth_risk",
"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
Gestational age outside twenty to forty-two weeks fails with invalid_input and is not billed. Treat the JSON percentage as an educational arithmetic aid, not a diagnosis or a substitute for licensed obstetric judgment about monitoring, timing of birth, or whether to continue a pregnancy.
What remaining stillbirth risk means and how gestational age, age, and factors combine
The engine is pure arithmetic: no network, no clock, and no random seed, so the same vignette always yields the same JSON.
Input contract, validation, and the shape of a successful response
Optional output keys are omitted rather than set to null. Send a JSON object with two required finite numbers. The canonical name gestational_age is completed weeks of gestation and must fall between twenty and forty-two inclusive; fractional weeks are allowed and linearly interpolated between adjacent table rows. Aliases ga, weeks, and gestational_weeks map onto the same parse path. The canonical name maternal_age is the mother's age in years between twelve and sixty; aliases age, mother_age, and maternal_years are accepted. Seven optional flags default to false when omitted: previous_stillbirth, diabetes, hypertension, smoking, obesity, fetal_growth_restriction, and multiple_pregnancy. Each flag must be a JSON boolean or a 0/1 value when present; the strings 0, 1, true, and false are accepted as the same tokens when a form encodes checkboxes as text. Aliases such as prior_stillbirth, preexisting_diabetes, preeclampsia, smoker, obese, fgr, iugr, and twins are mapped onto the canonical names, but the response always echoes the canonical keys. A missing required field, an empty string, null, a non-finite number, gestational age outside twenty to forty-two weeks, maternal age outside twelve to sixty years, or any other flag token—including yes, no, or a nested object—fails with invalid_input naming the field; those failures are not billed. On success the body returns the echoed ages and seven booleans, factors_present as the ordered list of canonical names that were true, base_per_1000 from the gestational-age table, maternal_age_rr and factor_rr and combined_rr as the stacked multipliers, risk_per_1000 and risk_pct as the odds-adjusted remaining risk, a risk_band of low, moderate, high, or very_high with a short risk_band_label, and a formula string citing the Flenady and Reddy sources. Pair the free browser form with the same contract from scripts; successful API calls cost $0.002 per item and validation failures do not consume prepaid balance.
How to read the percentage, where the calculator belongs, and what it does not decide
Do not time a birth, stop antenatal surveillance, or issue a stillbirth-risk letter from this JSON alone. The arithmetic is pure parse with no outbound network, so identical inputs always yield identical JSON, and the published API price remains $0.002 per successful request.
Technical questions
What does this stillbirth risk calculator estimate?
It returns a remaining stillbirth probability as risk_pct (and the equivalent risk_per_1000) from gestational age between 20 and 42 weeks, maternal age, and optional flags for previous stillbirth, diabetes, hypertension, smoking, obesity, fetal growth restriction, and multiple pregnancy.
Which risk factors does the calculator accept?
Seven optional flags, each a boolean or 0/1 value defaulting to false: previous_stillbirth, diabetes, hypertension, smoking, obesity, fetal_growth_restriction, and multiple_pregnancy. Relative risks follow Flenady 2011-style published multipliers.
What does the stillbirth risk calculator cost?
The browser widget runs free and locally. The same computation via the API is billed at $0.002 per successful request from prepaid KIT balance; invalid_input failures are not charged.