ForHosting KIT · Health & fitness

Wells PE score calculator

Signs of DVT, PE as the leading diagnosis, a heart rate of 110 and a previous clot add up to 9 points: high probability, PE likely. Answer the seven Wells criteria to get the score and both risk readings. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Heart rate
110
You get
Score
9
Likelihood
high
Likelihood label
High probability
Two tier
likely

The Wells score for pulmonary embolism is a seven-item bedside rule that converts clinical findings into an additive point total and a published likelihood band. This calculator accepts six required clinical flags plus a measured heart rate in beats per minute, applies the original Wells 2000 weights—three points for signs of deep-vein thrombosis, three points when pulmonary embolism is the leading or equally likely diagnosis, one and a half points for tachycardia above one hundred beats per minute, one and a half points for immobilization or recent surgery, one and a half points for prior DVT or PE, one point for hemoptysis, and one point for active malignancy—and returns the score together with the three-tier and two-tier likelihood categories.

What the Wells PE score measures and how the seven criteria add up

The Wells score for pulmonary embolism is an additive bedside rule that Wells and colleagues published for adults with suspected PE, and it remains one of the most taught pretest-probability tools in emergency medicine, pulmonology, and internal-medicine clerkships. Each of seven independent predictors contributes a published weight when present and zero when absent. Clinical signs and symptoms of deep-vein thrombosis—typically leg swelling and pain with palpation of the deep veins—add three points.

An alternative diagnosis that is less likely than pulmonary embolism, meaning PE is the leading diagnosis or equally likely, also adds three points. A heart rate greater than one hundred beats per minute adds one and a half points; a rate of one hundred exactly does not score. Immobilization for at least three days or surgery in the previous four weeks adds one and a half points.

A previously objectively diagnosed deep-vein thrombosis or pulmonary embolism adds one and a half points. Hemoptysis adds one point. Active malignancy, meaning treatment ongoing, completed within six months, or palliative, adds one point.

The score is the sum of those weights and therefore ranges from zero to twelve and a half in half-point steps. The traditional three-tier model labels a total below two as low probability, two through six as moderate probability, and a total above six as high probability. The dichotomized two-tier model used with D-dimer pathways labels four or less as PE unlikely and more than four as PE likely.

How to read likelihood categories, where the calculator belongs, and what it does not decide

Low probability is a Wells total below two points and is the usual teaching band when few or none of the seven criteria fire. Moderate probability is two through six points, which is the band where many pathways still combine the score with a sensitive D-dimer rather than proceeding straight to computed-tomography pulmonary angiography. High probability is a total above six, where teaching discussions typically treat PE as likely enough that a negative D-dimer does not stand alone.

The two-tier cut is independent of those three labels: four or less is PE unlikely and more than four is PE likely, which is the dichotomy used in many D-dimer exclusion pathways. Those bands are historical cohort strata, not a personal prognosis, and they do not replace arterial-blood-gas interpretation, chest imaging, echocardiography, or a clinician's view of comorbidities this table never captures. Use the calculator for education, exam keys, research coding of suspected-PE rows, and product prototypes that need a deterministic Wells PE step before handing off to licensed systems.

Neighbouring tools such as the revised Geneva score, PERC, or a D-dimer unit converter answer different search intents and should keep their own landings rather than being overloaded here.

Teaching vignettes and exam keys

Score textbook suspected-PE cases so instructors and auto-graders share one Wells 2000 ground truth for the seven criteria, the weighted total, and both likelihood bands.

Research coding of suspected-PE cohorts

Attach a reproducible Wells PE total and likelihood category to study rows when heart rate and the six clinical flags are already in the table.

Prototype decision-support scaffolds

Wire a transparent Wells PE step into educational apps and checklists that later hand off to licensed clinical systems for imaging and treatment decisions.

What is the Wells PE score?

It is Wells' seven-item bedside rule for the pretest probability of pulmonary embolism. This tool returns the weighted point total, the three-tier likelihood (low, moderate, high), and the two-tier PE-unlikely versus PE-likely band.

Which criteria does the calculator use and how many points is each worth?

Signs of DVT (3.0), PE as the leading or equally likely diagnosis (3.0), heart rate greater than 100 (1.5), immobilization or recent surgery (1.5), prior DVT or PE (1.5), hemoptysis (1.0), and active malignancy (1.0).

How is heart rate scored?

The engine awards 1.5 points only when the rate is strictly greater than 100; a rate of 100 exactly scores zero.

What happens if a criterion answer is missing?

Every flag and the heart rate must be answered; missing fields and tokens such as yes are rejected and are not billed.

How should I read low, moderate, and high probability?

Low is a score below 2, moderate is 2 through 6, and high is above 6. Independently, a score of 4 or less is PE unlikely and a score above 4 is PE likely. Figures are historical cohort strata, not a personal prognosis.

Can I use this result to rule out pulmonary embolism?

No. This is an educational arithmetic aid, not medical advice. Imaging, anticoagulation, and whether to discharge need a licensed clinician and the rest of the clinical picture this calculator does not collect.

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.

POSThttps://api.kit.forhosting.com/health/wells-pe

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.

curl -X POST https://api.kit.forhosting.com/health/wells-pe \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dvt_signs":true,"pe_most_likely":true,"heart_rate":110,"immobilization_or_surgery":false,"prior_dvt_pe":true,"hemoptysis":false,"malignancy":false}'
{
  "dvt_signs": true,
  "pe_most_likely": true,
  "heart_rate": 110,
  "immobilization_or_surgery": false,
  "prior_dvt_pe": true,
  "hemoptysis": false,
  "malignancy": false
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.wells_pe",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Every criterion must be answered; a missing flag or heart rate fails with invalid_input and is not billed. Treat the JSON as transparent arithmetic, not a diagnosis or a substitute for licensed clinical judgment about imaging, anticoagulation, or whether to discharge a patient.

What the Wells PE score measures and how the seven criteria add up

This capability implements those published tables exactly, with no hidden weights, so a hand-scored vignette and the JSON body can be compared line by line.

Input contract, validation, and the shape of a successful response

The strings 0, 1, true, and false are accepted as the same tokens when a form encodes checkboxes as text. Optional output keys are omitted rather than set to null. Send a JSON object with seven required answers. The six clinical flags are dvt_signs, pe_most_likely, immobilization_or_surgery, prior_dvt_pe, hemoptysis, and malignancy; each must be a JSON boolean or a 0/1 value. Integer 1 and boolean true both count as present; integer 0 and boolean false count as absent. The seventh field is heart_rate, a finite non-negative number in beats per minute; the engine awards one and a half points only when that rate is strictly greater than one hundred and echoes heart_rate_gt_100 so the threshold decision is visible. Aliases such as clinical_dvt, dvt_symptoms, pe_likely, alternative_less_likely, immobilization, recent_surgery, prior_dvt, previous_dvt, prior_pe, coughing_blood, haemoptysis, cancer, active_cancer, hr, pulse, and bpm are mapped onto the canonical names, but the response always echoes the canonical keys. A missing field, an empty string, null, or any other 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 score as the weighted total, likelihood as low, moderate, or high with a short likelihood_label, two_tier as unlikely or likely with a PE-unlikely or PE-likely label, the six echoed booleans, the numeric heart_rate, heart_rate_gt_100, a points field per criterion, criteria_present as the ordered list of canonical names that scored, and formula Wells PE (Wells 2000). 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 likelihood categories, where the calculator belongs, and what it does not decide

Do not withhold anticoagulation, cancel a CT pulmonary angiogram, or discharge a dyspneic patient 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.

What does the Wells PE 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.

Read the full KIT documentation →