Pulse pressure calculator
A reading of 120 over 80 has a pulse pressure of 40 mmHg, in the normal band of 40 to 60. Enter the top and bottom numbers from your cuff to see the gap between them and whether it is narrow or wide. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Systolic
- 120
- Diastolic
- 80
- Pulse pressure
- 40 mmHg
- Interpretation
- normal
- Interpretation label
- Normal pulse pressure — 40 to 60 mmHg
- Precision
- 2
This pulse pressure calculator takes systolic and diastolic blood pressure in millimeters of mercury and returns the difference between them, often called pulse pressure, together with a simple low, normal, or high band. Pulse pressure is the numeric gap between the top and bottom cuff readings: for a classic one hundred twenty over eighty reading the pulse pressure is forty millimeters of mercury, while one hundred forty over seventy yields seventy and one hundred over seventy five yields twenty five. Those differences matter in textbooks, nursing quizzes, and fitness dashboards because a narrow gap and a wide gap are discussed differently even when mean pressure looks similar. The engine is fully deterministic: the same pair of pressures always yields the same rounded result, with no network calls, no sampling, and no date-dependent shortcuts.
What pulse pressure means and what you get
Pulse pressure is the arithmetic difference between systolic blood pressure and diastolic blood pressure, both expressed in millimeters of mercury. Systolic is the peak pressure during ventricular contraction, the top number on a cuff reading, and diastolic is the trough during relaxation, the bottom number. Subtracting diastolic from systolic isolates how wide that beat-to-beat swing is, independent of where the pair sits on the absolute pressure scale.
This calculator does not measure your arm; it applies a closed-form subtraction to the two numbers you supply and classifies the result into three educational bands used widely in teaching materials: low or narrow when pulse pressure is below forty, normal when it lies from forty through sixty inclusive, and high or wide when it exceeds sixty.
Where pulse pressure fits in study, teaching, and software
Students meet pulse pressure when vital-sign labs ask for the difference between systolic and diastolic, when a worksheet contrasts narrow and wide readings, or when a nursing quiz expects both the number and a qualitative band. Teachers can pre-generate answer keys for modest cuff pairs without trusting opaque apps that silently swap units or drop the inequality check between diastolic and systolic.
Developers call the same contract from scripts to seed deterministic test vectors for blood-pressure UIs, to normalize user-entered pairs before charting demos, or to satisfy programming-challenge statements that demand pulse pressure rather than a hand-waved interpretation. Fitness and education products use the difference when a learner types a cuff reading and the UI must show the gap plus a clear low normal or high tag without implying a medical diagnosis.
Chart-review practice sometimes needs a fast offline source of differences so solutions can be checked without inventing thresholds under time pressure.
What you can do with it
Homework and vital-sign labs
Compute pulse pressure from textbook cuff pairs and check low, normal, or high bands before grading or chart practice.
Education and dashboard UIs
Normalize user-entered systolic and diastolic values into pulse pressure for tutors, quizzes, and simple health charts.
FAQ
What does the pulse pressure calculator cost?
It is free in your browser on this page.
How is pulse pressure calculated?
Pulse pressure equals systolic minus diastolic, both in mmHg. Example: 120/80 yields 40 mmHg; 140/70 yields 70 mmHg.
What do low, normal, and high mean here?
Educational bands: low if pulse pressure is below 40 mmHg, normal if 40 through 60 inclusive, high if above 60. These are teaching thresholds, not a diagnosis.
What happens if diastolic is higher than systolic?
Diastolic must not exceed systolic because pulse pressure is defined as systolic minus diastolic.
Is this medical advice?
No. The tool only subtracts two pressures and applies fixed educational bands. It does not diagnose conditions or replace clinical care.
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/pulse-pressure \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"systolic":120,"diastolic":80}'const res = await fetch("https://api.kit.forhosting.com/health/pulse-pressure", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"systolic": 120,
"diastolic": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/pulse-pressure",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"systolic": 120,
"diastolic": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/pulse-pressure", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"systolic":120,"diastolic":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"systolic":120,"diastolic":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/pulse-pressure", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"systolic": 120,
"diastolic": 80
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.pulse_pressure",
"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_mmhg | 0 |
max_mmhg | 400 |
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 pulse pressure means and what the response contains
For each request you get the validated systolic and diastolic values, the computed pulse_pressure, unit tagged as mmHg, interpretation as low normal or high, a human-readable interpretation_label, method as systolic_minus_diastolic, the precision used for rounding, and a short formula reminder string. There is no wearable sync path and no random noise: the engine either builds a finite difference inside the supported pressure range or rejects the input with invalid_input. Rejected cases include missing systolic or diastolic, non-finite values, pressures outside the documented zero-to-four-hundred millimeter ceiling, and any case where diastolic exceeds systolic, because a negative pulse pressure is not a valid cuff geometry.
How systolic and diastolic are read and how results stay reproducible
Optional leading plus signs and scientific notation on pressure strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong difference. Both values must fall between zero and four hundred millimeters of mercury inclusive, which covers realistic cuff readings while blocking nonsense magnitudes. Equal pressures yield a pulse pressure of zero and are classified as low, which is unusual clinically but mathematically consistent and useful for edge-case tests. Classification thresholds are fixed: below forty is low, forty through sixty is normal, and above sixty is high, matching common educational summaries of narrow versus wide pulse pressure. The preferred fields are systolic for the top pressure and diastolic for the bottom pressure, but aliases sbp sys and s for systolic and dbp dia and d for diastolic are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Diastolic must not exceed systolic: when the bottom number is larger than the top, the request fails with invalid_input explaining that pulse pressure is systolic minus diastolic. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose for systolic, diastolic, and pulse_pressure, defaulting to two and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the subtraction and labels yourself.
Where pulse pressure fits in study, teaching, 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. Pair it with other health endpoints when you are building a small lab of free, deterministic physiology helpers, and always treat band labels as educational summaries rather than clinical advice or treatment decisions.
Integration use cases
Deterministic test fixtures
Generate reproducible mmHg differences and interpretation tags for unit tests, property checks, and CI assertions.