ForHosting KIT · Developer Utilities

Z-score to percentile calculator

A z-score tells you how many standard deviations an observation lies above or below the mean, but a percentile is often easier to interpret.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

This calculator converts a finite z-score into the cumulative percentage of a standard normal distribution at or below that score. Enter a negative, zero, or positive z-score and receive a deterministic percentile rounded to six decimal places. The same calculation can support one-off checks in the browser or repeatable API workflows without tables, network lookups, or random approximations.

Read a z-score as a cumulative percentile

A standard normal distribution has a mean of zero and a standard deviation of one. A z-score places an observation on that shared scale, while the percentile answers a different question: what percentage of the distribution lies at or below this point? Enter the z-score in the single numeric field, and the calculator evaluates the standard normal cumulative distribution function. A z-score of zero sits at the center and therefore maps to the fiftieth percentile. Positive scores map above the center, and negative scores map below it. The returned percentile is cumulative, so it includes the entire left-hand area under the normal curve through the supplied score. This convention is the one normally used by z-tables and statistical software when reporting a normal cumulative probability. It is not the percentage between the mean and the score, and it is not automatically a one-tailed or two-tailed hypothesis-test p-value. Keeping those quantities separate prevents a plausible-looking number from being assigned the wrong statistical meaning.

Understand the calculation and its precision

The conversion uses the cumulative distribution function of a standard normal random variable. Internally, the score is divided by the square root of two, evaluated with a deterministic error-function approximation, and then scaled from a probability between zero and one to a percentile between zero and one hundred. The implementation performs only local arithmetic: it does not consult an online table, choose a random sample, or depend on the current time. Results are rounded to six decimal places so they remain stable and practical for display and automated comparison. Extremely large positive or negative scores naturally approach the boundaries of one hundred or zero because almost all normal probability lies on the other side. That boundary behavior is mathematically expected, although a rounded result of zero or one hundred should not be read as proof that an event is impossible or certain. The normal distribution has unbounded tails; finite display precision simply cannot show every vanishingly small tail probability. Use the unrounded model assumptions, not extra displayed digits, when judging statistical evidence.

Use the result in the right statistical setting

A percentile conversion is useful only when the z-score genuinely belongs on a standard normal scale. That may be because a raw observation was standardized with an appropriate population mean and standard deviation, or because a model produces a statistic known to follow a normal distribution closely enough for the task. After conversion, the percentile gives a compact rank-like interpretation: higher values indicate more of the reference distribution lies below the score. It does not tell you the percentile rank within an arbitrary sample, confirm that the original measurements are normally distributed, or replace domain-specific thresholds. For hypothesis testing, decide first whether the question concerns an upper tail, a lower tail, or both tails; the cumulative percentile is an ingredient in that calculation rather than the final answer in every case. For reporting, include the original z-score, the resulting percentile, and the reference distribution so readers can reproduce the interpretation. In automated systems, reject missing, textual, infinite, or otherwise non-numeric inputs rather than silently coercing them, because accidental coercion can turn malformed data into authoritative-looking statistics.

Interpret a standardized test score

Convert an already computed z-score into the cumulative percentage of the standard normal reference distribution.

Check a statistical model output

Translate a normally distributed standardized statistic into an intuitive cumulative percentile for a report or dashboard.

Replace a manual z-table lookup

Obtain a repeatable six-decimal result without locating rows and columns in a printed standard normal table.

What percentile does a z-score of zero represent?

It represents the fiftieth percentile because zero is the mean and center of the standard normal distribution.

Does the result show the area between the mean and the z-score?

No. It shows the full cumulative area from the far left tail through the entered z-score.

Is this percentile the same as a p-value?

Not necessarily. A p-value depends on the hypothesis and whether the relevant test uses a lower tail, upper tail, or two tails.

Why can an extreme score return zero or one hundred?

The result is rounded to six decimal places, so an extremely small tail can disappear at the displayed precision even though the theoretical tail remains nonzero.

What input values are accepted?

The z field must contain a finite number. Missing values, numeric text, infinity, and non-numeric values are rejected.

What does an API request cost?

Each API request costs $0.002; the browser calculator is also available for direct interactive use.

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/stat/z-to-percentile

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/stat/z-to-percentile \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"z":1.96}'
{
  "z": 1.96
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "stat.z_to_percentile",
  "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.

Read the full KIT documentation →