VBAC success calculator
A 28-year-old with a BMI of 24, a prior vaginal birth and a non-recurring reason for her cesarean gets an 89.3023% predicted chance of VBAC success in the Grobman 2007 model. Enter five facts to see the percentage and its band. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Maternal age
- 28
- Bmi
- 24
- Ethnicity
- White
- Prior cesarean indication
- Non recurring
- Intercept
- 3.766
- Logit
- 2.122
- Success probability
- 0.893023
- Success pct
- 89.3023
Vaginal birth after cesarean (VBAC) is a trial of labor after a previous cesarean delivery, and families, midwives, educators, and product teams often need a transparent percentage that combines maternal age, body-mass index, ethnicity, whether there has been a prior vaginal birth, and whether the prior cesarean was for a recurring indication such as arrest of dilation. This VBAC success calculator estimates the probability of a successful vaginal birth after cesarean from those five required inputs using the Grobman 2007 Maternal-Fetal Medicine Units Network logistic model, returning a success probability percentage plus a counseling band.
What VBAC success probability means and how the five inputs combine
VBAC in this calculator means a successful vaginal delivery after a trial of labor in a person who has already had at least one cesarean birth. The quantity returned is a predicted success probability as a percentage, not a uterine-rupture risk and not a recommendation to attempt or avoid labor.
The engine implements the Grobman 2007 Maternal-Fetal Medicine Units Network antepartum nomogram: a logistic intercept of 3.766, a linear penalty of 0.039 per year of maternal age, a linear penalty of 0.060 per kilogram per square metre of pre-pregnancy body-mass index, dummy penalties of 0.671 for African American ethnicity and 0.680 for Hispanic ethnicity, a bonus of 0.888 when any prior vaginal delivery is present, and a penalty of 0.109 when the prior cesarean was for a recurring indication such as arrest of dilation, arrest of descent, cephalopelvic disproportion, or failure to progress.
White and other ethnicities are the published reference group and contribute zero ethnicity dummy. The logit is converted with a numerically stable sigmoid so stacked unfavorable factors saturate below one hundred percent instead of overshooting. Age must lie between fourteen and fifty-five years and BMI between fifteen and seventy; values outside those windows are rejected because the nomogram was derived in reproductive-age candidates for trial of labor, not in pediatric or extreme-BMI rows.
How to read the percentage, where the calculator belongs, and what it does not decide
Success bands are educational strata, not a personal prognosis and not a trial-of-labor rule. High predicted VBAC success is seventy percent or more, the usual teaching band for a younger candidate with a modest BMI, a prior vaginal birth, and a non-recurring cesarean indication such as breech. Moderate predicted VBAC success is fifty percent up to but not including seventy, which covers many first-time trial-of-labor profiles without a prior vaginal birth.
Low predicted VBAC success is under fifty percent and usually means older age, a high BMI, African American or Hispanic ethnicity as coded in the 2007 nomogram, a recurring dystocia indication, or several of those factors stacked together; the sigmoid still keeps the percentage between zero and one hundred. Those cuts are historical-style counseling bands, not delivery-route orders.
They do not replace a review of the prior operative note, estimated fetal weight, inter-delivery interval, uterine scar type, induction plan, or a clinician's view of comorbidities this table never captures—preeclampsia, gestational diabetes, more than one prior cesarean, or a classical scar. Use the calculator for education, exam keys, research coding of obstetric rows, and product prototypes that need a deterministic VBAC-success 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 VBAC success percentage for a given maternal age, BMI, ethnicity, prior vaginal birth flag, and cesarean indication.
Research coding of trial-of-labor cohorts
Attach a reproducible Grobman-style success percentage and counseling band to study rows when age, BMI, ethnicity, prior vaginal birth, and indication are already in the table.
Prototype antenatal counseling scaffolds
Wire a transparent VBAC-success step into educational apps and checklists that later hand off to licensed clinical systems for real trial-of-labor counseling.
FAQ
How should I interpret high, moderate, and low predicted VBAC success?
They are counseling strata, not a personal prognosis or a delivery-route order.
Can I use this percentage to decide on a trial of labor?
No. This is an educational arithmetic aid, not medical advice. Trial of labor, uterine-rupture counseling, and whether to schedule a repeat cesarean need a licensed clinician and the rest of the clinical picture this calculator does not collect.
What VBAC success does a 28-year-old with a prior vaginal birth get?
With a BMI of 24, white ethnicity and a non-recurring reason for the earlier cesarean, the model gives 89.3023%, in the high band of seventy percent or more. The remaining 10.6977% is the predicted chance the trial of labor does not end vaginally.
Does a previous vaginal birth improve the chance of a successful VBAC?
Yes. Any earlier vaginal delivery adds 0.888 to the model's score, the largest favorable term. The original paper also counted a prior successful VBAC separately, but that sixth fact is not asked here.
Is the VBAC success percentage the same as the risk of uterine rupture?
No. It is the predicted probability of a successful vaginal delivery after a trial of labor. It says nothing about uterine rupture and is not a recommendation to attempt or avoid labor.
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/vbac-risk-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"maternal_age":28,"bmi":24,"ethnicity":"white","prior_vaginal_birth":true,"prior_cesarean_indication":"non_recurring"}'const res = await fetch("https://api.kit.forhosting.com/health/vbac-risk-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"maternal_age": 28,
"bmi": 24,
"ethnicity": "white",
"prior_vaginal_birth": true,
"prior_cesarean_indication": "non_recurring"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/vbac-risk-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"maternal_age": 28,
"bmi": 24,
"ethnicity": "white",
"prior_vaginal_birth": true,
"prior_cesarean_indication": "non_recurring"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/vbac-risk-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"maternal_age":28,"bmi":24,"ethnicity":"white","prior_vaginal_birth":true,"prior_cesarean_indication":"non_recurring"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"maternal_age":28,"bmi":24,"ethnicity":"white","prior_vaginal_birth":true,"prior_cesarean_indication":"non_recurring"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/vbac-risk-score", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"maternal_age": 28,
"bmi": 24,
"ethnicity": "white",
"prior_vaginal_birth": true,
"prior_cesarean_indication": "non_recurring"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.vbac_risk_score",
"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.
Limits
min_age | 14 |
max_age | 55 |
min_bmi | 15 |
max_bmi | 70 |
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
Any missing required field 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 trial of labor, uterine rupture counseling, or whether to schedule a repeat cesarean.
What VBAC success probability means and how the five inputs combine
The published paper also listed a separate bonus for a prior successful VBAC; this endpoint does not collect that sixth variable, so prior_vaginal_birth maps only onto the any-prior-vaginal-delivery term. 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 five required fields. The canonical name maternal_age is the mother's age in years between fourteen and fifty-five inclusive; aliases age, mother_age, and maternal_years map onto the same parse path. The canonical name bmi is pre-pregnancy body-mass index in kilograms per square metre between fifteen and seventy; aliases body_mass_index, prepregnancy_bmi, and bmi_kg_m2 are accepted. The canonical name ethnicity is a closed set of white, african_american, hispanic, or other; aliases race and ethnic_group are accepted, as are a short list of tokens such as caucasian, black, latina, and asian that fold onto those four canonical values. The canonical name prior_vaginal_birth is a JSON boolean or a 0/1 value stating whether any prior vaginal delivery occurred; aliases prior_vaginal_delivery, any_prior_vaginal, and previous_vaginal_birth are mapped onto the same flag. The canonical name prior_cesarean_indication is recurring or non_recurring; aliases indication, cesarean_indication, prior_cs_indication, and indication_for_prior_cesarean are accepted, and tokens such as dystocia, cpd, breech, and elective fold onto the two canonical values. A missing required field, an empty string, null, a non-finite number, age or BMI outside the declared window, an ethnicity or indication token outside the closed set, or a prior_vaginal_birth value that is not boolean or 0/1 fails with invalid_input naming the field; those failures are not billed. On success the body returns the echoed five inputs, african_american and hispanic and recurring_indication as the dummy flags actually used in the logit, intercept, logit, success_probability as a unit interval, success_pct and failure_pct as percentages, a band of high, moderate, or low with a short band_label, a formula string citing Grobman 2007, and a one-line message. 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 schedule a repeat cesarean, promise a successful VBAC, or issue a trial-of-labor 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 VBAC success calculator estimate?
It returns a predicted probability of successful vaginal birth after cesarean as success_pct (and the equivalent success_probability on 0–1) from maternal age, BMI, ethnicity, prior vaginal birth, and whether the prior cesarean indication was recurring.
Which formula does the calculator use?
The Grobman 2007 MFMU antepartum logistic model: logit = 3.766 − 0.039×age − 0.060×BMI − 0.671×African American − 0.680×Hispanic + 0.888×any prior vaginal delivery − 0.109×recurring indication, then P = 1/(1+e^(−logit)).
What counts as a recurring indication for the prior cesarean?
recurring covers arrest of dilation or descent, cephalopelvic disproportion, and failure to progress. non_recurring covers breech, fetal distress, previa, elective, and other non-dystocia indications. Unknown tokens fail with invalid_input.
What does the VBAC success 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.