BUN to creatinine ratio calculator
Divide BUN by creatinine, both in mg/dL. Values of 14 and 1 give a ratio of 14, inside the 10 to 20 band taught as normal. Each result is labelled low, normal or high for learning, never as a diagnosis. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Bun
- 14
- Creatinine
- 1
- Unit bun
- mg/dL
- Unit creatinine
- mg/dL
- Ratio
- 14
- Ratio rounded
- 14
The blood urea nitrogen to creatinine ratio is a simple division clinicians and students use every day when reading a basic metabolic panel. Blood urea nitrogen and serum creatinine both rise when glomerular filtration falls, but their ratio can shift when urea production, volume status, protein load, or lower urinary tract obstruction changes relative to pure filtration. This capability accepts two serum values in conventional milligrams per decilitre units, returns the exact ratio plus a two-decimal display value, and labels a common educational band of low, normal, or high using the widely taught ten-to-twenty range. Missing fields, non-numeric strings, negatives, out-of-range readings, and zero creatinine fail with a clear invalid input error and are never charged.
What the BUN to creatinine ratio measures and which inputs you need
Blood urea nitrogen reflects urea nitrogen concentration in blood, a by-product of protein metabolism that the kidneys filter and partially reabsorb. Serum creatinine reflects muscle creatine breakdown filtered by the glomerulus with little reabsorption. When both are reported in milligrams per decilitre, the classic teaching ratio is simply BUN divided by creatinine.
A common classroom and board-review band places many healthy adults near ten to twenty to one; values below ten or above twenty invite differential thinking about low protein intake, malnutrition, or intrinsic renal patterns on the low side, and prerenal azotemia, upper gastrointestinal bleeding, high protein load, or obstruction patterns on the high side—always as educational framing, never as a standalone diagnosis. Practical bounds keep consumer and classroom inputs sane: BUN from zero through three hundred milligrams per decilitre, creatinine from zero point zero one through thirty milligrams per decilitre.
Negative BUN likewise fails.
Practical limits and safe use of the ratio
Call the free in-browser BUN to creatinine ratio calculator for classroom demos, nursing homework checks, and quick personal learning without reimplementing the division in every spreadsheet. Prefer consistent conventional units; if your UI only collects whole numbers, send integers and the engine still accepts numeric strings. Authors shipping SDKs can map band into colour chips for educational thresholds you define yourself and show the formula string on a teaching card.
Keep expectations educational: this is a calculation and learning tool, not a diagnostic medical device, and people with symptoms, known kidney disease, bleeding, dehydration, or medication changes should follow professional medical advice rather than any single automated ratio alone.
What you can do with it
Health education apps and worksheets
Apps show learners how urea and creatinine move together without re-coding the division and 10–20 teaching band on every client.
FAQ
What do low, normal, and high bands mean?
Educational labels only: low is ratio under 10, normal is 10 through 20 inclusive, high is above 20. They match common teaching ranges and are not a lab-specific reference interval or diagnosis.
What happens if creatinine is zero or missing?
Zero creatinine would divide by zero; missing or non-numeric fields are also rejected and not charged.
Is the BUN to creatinine ratio calculator free?
The browser tool runs free on your device.
Can I send SI units (mmol/L or µmol/L)?
No. This product uses conventional US units only: BUN and creatinine both in mg/dL. Convert SI lab results before calling, or use a dedicated unit converter first.
Why can the ratio change if both values rise when the kidneys filter less?
Both climb when filtration falls, but urea also depends on protein intake, fluid status, urea production and urinary tract obstruction. When one of those shifts on its own, the ratio drifts away from what filtration alone would give.
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/bun-creatinine-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bun":14,"creatinine":1}'const res = await fetch("https://api.kit.forhosting.com/health/bun-creatinine-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bun": 14,
"creatinine": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/bun-creatinine-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bun": 14,
"creatinine": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/bun-creatinine-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bun":14,"creatinine":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bun":14,"creatinine":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/bun-creatinine-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bun": 14,
"creatinine": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.bun_creatinine_ratio",
"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
What the BUN to creatinine ratio measures and which inputs you need
Send required fields bun and creatinine as finite numbers; aliases such as bun_mgdl, blood_urea_nitrogen, creat, cr, and serum_creatinine are accepted when documented. Creatinine must be strictly greater than zero because the ratio is a division; zero or negative creatinine fails with invalid_input. Identical inputs always yield identical JSON because the path is pure arithmetic with no network, no model, no random seed, and no wall clock. Do not send SI urea in millimoles per litre or creatinine in micromoles per litre without converting first; this endpoint is the conventional US ratio contract only.
Reading ratio, band, response fields, and error behaviour
On success the response echoes bun and creatinine with stable rounding, sets unit_bun and unit_creatinine to mg/dL, and reports ratio as the full-precision division result used for banding, plus ratio_rounded to two decimal places for UI display. The band field is low when ratio is strictly less than ten, normal when ratio is between ten and twenty inclusive, and high when ratio is strictly greater than twenty. band_low_max and band_normal_max restate those thresholds so clients never hard-code magic numbers. formula restates the teaching equation as a single string, and method is always bun_to_creatinine_ratio_mgdl so downstream code can branch without sniffing shapes. Use ratio when you need stable numeric comparison in tests; use ratio_rounded when you show the number next to a chart or lab card. Missing required fields, empty strings, non-finite values, out-of-range readings, any negative BUN or creatinine, and creatinine equal to zero all fail with invalid_input and are not charged. Do not confuse this endpoint with eGFR calculators that map creatinine to estimated filtration rate, urea-to-creatinine SI converters, fractional excretion tools, or full nephrology decision engines—those are different search intents and different contracts. This product only divides two serum values and applies a transparent educational band.
API usage, pricing, product workflows, and practical limits
Send a JSON body with required bun and creatinine values in milligrams per decilitre. Use the prepaid API when a health SaaS, electronic worksheet, simulation lab, tutoring platform, or school LMS needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with your own laboratory units and clinical workflow—confirm that your panel reports BUN rather than urea, and convert SI results before calling—then store ratio, ratio_rounded, and band alongside the raw BUN and creatinine for dashboards and export columns.
Integration use cases
Nursing and medical-school homework
Students submit BUN and creatinine panels and pin expected ratio and band JSON in automated checkers with deterministic outputs.
Simulation labs and SaaS backends
Server pipelines that already store BMP fields call a prepaid endpoint for BUN/Cr ratio instead of duplicating formulas in every language.
Technical questions
How is the BUN to creatinine ratio calculated?
Ratio = BUN (mg/dL) ÷ creatinine (mg/dL). Send those two required fields; the response includes ratio, ratio_rounded, band, and a readable formula string.