Positive pregnancy test
An hCG of 50 mIU/mL against a 25 mIU/mL strip reads positive, at twice the kit's threshold. Enter your measured level and the sensitivity printed on the box to see which side of the line you are on. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Hcg
- 50
- Sensitivity
- 25
- Result
- positive mIU/mL
- Ratio
- 2
- Delta
- 25
A qualitative pregnancy test turns positive when human chorionic gonadotropin in urine or serum reaches the concentration the kit is labelled to detect. This positive pregnancy test calculator takes the measured hCG level in milli-international units per millilitre and the test sensitivity threshold in the same unit, then returns a clear positive or negative reading. When measured hCG is at least as large as the threshold the result is positive; when it is strictly below, the result is negative.
How hCG and kit sensitivity produce a positive or negative reading
Human chorionic gonadotropin is the glycoprotein hormone that qualitative pregnancy tests detect in urine or serum after implantation. A kit's sensitivity is the lowest hCG concentration at which the manufacturer claims a visible line or an instrument flag, printed on the box as milli-international units per millilitre. Typical over-the-counter urine strips are labelled twenty or twenty-five mIU per millilitre; early-detection urine kits often claim ten; quantitative serum assays can report down to about five or lower.
This calculator does not guess which kit you used: you supply both the measured concentration and that labelled threshold. The decision rule is a single comparison. If the measured hCG is greater than or equal to the sensitivity, the reading is positive.
If the measured value is strictly smaller, the reading is negative. Equality is treated as positive because a kit that detects twenty-five mIU per millilitre is designed to turn at twenty-five, not only above it. Zero is allowed and yields a negative reading against any positive threshold.
The tool classifies a numeric threshold only; it does not diagnose pregnancy, date conception, or interpret doubling time.
When this calculator helps, and what it will not do
Use this landing when the search is for a positive pregnancy test from a numeric hCG and a kit sensitivity, not when the visitor needs a gestational-age calendar, a pregnancy weight-gain table, or an ovulation window. Prenatal education worksheets can freeze a twenty-five mIU per millilitre strip and vary the measured concentration so learners see the exact crossing point. Device-labelling checks can confirm that a claimed early-detection kit at ten mIU per millilitre would read positive at a given laboratory value while a standard twenty-five kit would still read negative.
The tool does not interpret faint lines, evaporation lines, or hook-effect false negatives, and it does not convert IU/L versus mIU/mL because those two labels are numerically equal for hCG. Prefer numbers rather than pre-formatted strings when you control the client; string numbers are accepted only when they match a strict finite numeric pattern.
What you can do with it
Prenatal education worksheets
Freeze a kit sensitivity such as 25 mIU/mL and vary measured hCG so learners see the exact crossing from negative to positive, including equality at the labelled threshold.
Device-labelling and kit comparison
Check whether a laboratory hCG would read positive on a 10 mIU/mL early-detection strip and still negative on a standard 25 mIU/mL urine kit.
FAQ
When is a pregnancy test positive in this calculator?
When measured hCG is greater than or equal to the kit sensitivity threshold, both in mIU/mL. A value strictly below the threshold is negative.
What happens if the hCG level is negative?
A concentration cannot be below zero; a negative hCG is not treated as a negative pregnancy test.
What sensitivity should I enter for a home urine strip?
Use the value printed on the box. Common labels are 25 mIU/mL for standard strips, 10 mIU/mL for early-detection kits, and about 5 mIU/mL for many serum assays.
Is a reading exactly at the threshold positive or negative?
Positive. A kit labelled 25 mIU/mL is designed to turn at 25, so hCG equal to sensitivity counts as a positive reading.
Can this calculator read a faint line on my test?
No. It compares two numbers only: your measured hCG and the kit's labelled sensitivity. It does not judge faint lines, evaporation lines or false negatives caused by the hook effect.
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/positive-pregnancy-test \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hcg":50,"sensitivity":25}'const res = await fetch("https://api.kit.forhosting.com/health/positive-pregnancy-test", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hcg": 50,
"sensitivity": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/positive-pregnancy-test",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hcg": 50,
"sensitivity": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/positive-pregnancy-test", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hcg":50,"sensitivity":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hcg":50,"sensitivity":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/positive-pregnancy-test", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"hcg": 50,
"sensitivity": 25
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.positive_pregnancy_test",
"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
A negative hCG value is not a negative test — concentrations cannot fall below zero — so that input is rejected as invalid_input.
How hCG and kit sensitivity produce a positive or negative reading
A negative concentration is not a negative test: concentrations cannot be below zero, so a negative hCG is invalid_input rather than a green not-pregnant payload.
Input contract, units, and the JSON you get back
Example: hCG fifty against a twenty-five mIU per millilitre strip yields a positive reading with ratio two. Example: hCG ten against the same strip yields a negative reading. Failed validation is not billed. Send a JSON body with two required finite numbers. It may be zero or any larger finite value up to one million; a negative value fails with invalid_input naming hcg. The field sensitivity (aliases threshold, detection_limit, test_sensitivity, sensitivity_miu) is the kit detection limit in the same unit and must be strictly positive and at most one million. Each field may arrive as a JSON number or as a numeric string; empty strings, non-finite values, and missing fields fail with invalid_input naming the field. On success the body echoes rounded hcg and sensitivity, sets unit to mIU/mL, sets result to the string positive or negative, sets the boolean positive to true when the reading is positive, reports ratio as hCG divided by sensitivity, reports delta as hCG minus sensitivity (negative when the reading is below the line), restates the formula, and names the method hcg_vs_sensitivity_threshold. A successful API call costs the published $0.002 base price with unit item. Pair the JSON with your own counselling copy if you need a clinical narrative; this endpoint only classifies the numeric threshold and does not emit photographs, line scores, or gestational-age estimates.
When this calculator helps, and what it will not do
Coding kata and maternity-app tests can pin expected JSON for above-threshold, at-threshold, below-threshold, and the required invalid_input path for a negative concentration. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send a negative hCG.
Integration use cases
Maternity-app and coding-kata fixtures
Pin expected JSON for above-threshold, at-threshold, and below-threshold readings, plus the required invalid_input rejection when hCG is negative.
Technical questions
What does the positive pregnancy test calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.