Normal Distribution and Z-Score Calculator

Areas under the bell curve, z-scores and percentiles in both directions, with the steps, a shaded curve and the accuracy stated.

Inputs

These are example values. Change any of them to calculate your own.

Try:

μ. Leave blank for 0 (the standard normal).

σ, not the variance. Leave blank for 1.

For example 1,000.

For example 1,020.

Results

Probability between 1,000 and 1,020

0.774538

P(1,000 < X < 1,020) = 77.45% for a normal distribution with mean 1,012 and SD 8

z-scores
-1.5 and 1of 1,000 and 1,020
Probability outside
0.22546222.55%: 0.0668072 below 1,000 + 0.158655 above 1,020
Percentile ranks
6.68th and 84.13th1,000 and 1,020
Shaded area: 0.774538 (77.45%)
Shaded area: 0.774538 (77.45%)Bell curve of a normal distribution with mean 1,012 and SD 8 with the area between 1,000 (z = -1.5) and 1,020 (z = 1) shaded: 0.774538 (77.45%).980-4988-3996-21,004-11,01201,02011,02821,03631,04441,0001,020
Chart data: Shaded area: 0.774538 (77.45%)
Shaded area: 0.774538 (77.45%)
PointValuez-scoreArea below
Lower value1,000-1.50.0668072
Mean1,01200.5
Upper value1,02010.841345

How this was calculated

  1. za = (x − μ) ÷ σ = (1,000 − 1,012) ÷ 8 = -1.5
  2. zb = (x − μ) ÷ σ = (1,020 − 1,012) ÷ 8 = 1
  3. Between: Φ(1) − Φ(-1.5) = 0.841345 − 0.0668072 = 0.774538
  4. Outside: P(X < 1,000) + P(X > 1,020) = 0.0668072 + 0.158655 = 0.225462
  5. As a percentage: 77.45% between
  6. In Excel or Google Sheets: =NORM.DIST(1020, 1012, 8, TRUE) - NORM.DIST(1000, 1012, 8, TRUE)
  7. On a TI-84: normalcdf(1000, 1020, 1012, 8)

Note: How accurate is this?

Areas use W. J. Cody's rational approximations to the normal distribution, the method R's pnorm is based on, with each tail computed on its own so a small tail keeps its digits. Values from a probability use M. J. Wichura's algorithm AS 241, the basis of R's qnorm. In this page's tests they match 50-digit reference values to at least 12 significant digits from z = −40 to 40.

Probabilities show 6 significant digits of the smaller tail. Areas below 1E-300 are too small for the numbers a browser calculates with, so they are worked out as powers of ten and shown to 4 significant digits instead of 0.

Intervals around the mean
IntervalzFromToInsideEach tail
Mean ± 1 SD±11,0041,02068.27%15.87%
Middle 80%±1.28161,001.74761,022.252480%10%
Middle 90%±1.6449998.84121,025.158890%5%
Middle 95%±1.96996.32031,027.679795%2.5%
Mean ± 2 SD±29961,02895.45%2.28%
Middle 98%±2.3263993.38921,030.610898%1%
Middle 99%±2.5758991.39341,032.606699%0.5%
Mean ± 3 SD±39881,03699.73%0.135%

Two-tailed 90%, 95% and 99% use z = ±1.6449, ±1.96 and ±2.5758. One-tailed, the same levels use 1.2816, 1.6449 and 2.3263, which leave 10%, 5% and 1% in one tail. The 68–95–99.7 rule rounds the ±1, 2 and 3 SD rows.

Assumptions

  • A counts standard deviations from the mean, so one standard normal curve answers the question for any mean and SD.
  • The values follow a normal distribution with this mean and SD exactly. Real measurements are only roughly normal, and they usually differ most in the tails.
  • Φ(z) is the area under the standard normal curve to the left of z.
  • For a continuous distribution a single value has probability 0, so P(X < x) = P(X ≤ x) and P(X > x) = P(X ≥ x).
  • A rank is the share below a value, so the top 10% starts at the 90th percentile.
  • Rounded for display only; the calculation keeps full double precision.

Calculated in your browser. This site doesn't send or store the numbers you enter.

Updated Report a problem with this calculator

What this calculator answers

It finds areas under a normal curve: the share of values below a value, above it, between two values or outside them. It also gives the z-score and percentile of a value, and works backward from a probability to the value at a percentile, the cut-off for a top share or the middle range that holds a given share. Each answer comes with the steps, the matching Excel, Google Sheets and TI-84 commands, and a shaded curve that shows the values and their z-scores on one axis.

How to use it

  • Find: pick the question in words. “Value from a probability” is the inverse normal, the same job as invNorm or NORM.INV.
  • Mean and Standard deviation: the center and spread of the distribution, in the units of your values. Leave both blank for the standard normal (mean 0, SD 1); the values you type are then z-scores. Enter the standard deviation, not the variance.
  • Value (x), or Lower value (a) and Upper value (b). If the two values are in the wrong order, they are swapped and a note says so.
  • Where the area is and Probability (inverse only): below x for a percentile, above x for a cut-off such as the top 5%, or the middle share around the mean. Type 0.9 or 90%. A % sign, or any number of 1 or more, is read as a percentage, and the line under the box shows how it was read.

The Try chips load the cases worked on this page. Under the steps, a table lists the ranges that hold 68% to 99.7% of values for your mean and SD.

Find the probability below, above or between two values

Turn each value into a z-score, then read the area to its left from the standard normal cumulative distribution function Φ:

  • below x: P(X<x)=Φ(z)P(X < x) = \Phi(z)
  • above x: P(X>x)=1−Φ(z)P(X > x) = 1 - \Phi(z)
  • between a and b: P(a<X<b)=Φ(zb)−Φ(za)P(a < X < b) = \Phi(z_b) - \Phi(z_a)

The probability outside a and b is 1 minus the probability between them. Φ has no formula you can evaluate by hand, which is why z-tables, calculators and this page compute it numerically.

Z-score formula: how many standard deviations from the mean

A z-score counts how many standard deviations a value lies from the mean:

z=x−μσz = \frac{x - \mu}{\sigma}

where xx is the value, μ\mu the mean and σ\sigma the standard deviation. Values above the mean have positive z-scores and values below it negative ones. A 1,030 g bag from the filling line in the worked example below has z=(1,030−1,012)÷8=2.25z = (1{,}030 - 1{,}012) \div 8 = 2.25, which puts it at the 98.78th percentile.

Worked example: flour bags between 1,000 g and 1,020 g

A filling line puts a mean of 1,012 g of flour in each bag, with a standard deviation of 8 g. What share of bags weigh between 1,000 g and 1,020 g?

  1. Standardize both weights: za=(1,000−1,012)÷8=−1.5z_a = (1{,}000 - 1{,}012) \div 8 = {-1.5} and zb=(1,020−1,012)÷8=1z_b = (1{,}020 - 1{,}012) \div 8 = 1.
  2. Read the areas below them: Φ(−1.5)=0.0668072\Phi({-1.5}) = 0.0668072 and Φ(1)=0.841345\Phi(1) = 0.841345.
  3. Subtract: 0.841345−0.0668072=0.7745380.841345 - 0.0668072 = 0.774538. About 77.45% of bags weigh between 1,000 g and 1,020 g.
  4. The rest lie outside: 0.0668072 below 1,000 g plus 0.158655 above 1,020 g is 0.225462, or 22.55%.

In Excel or Google Sheets the same area is =NORM.DIST(1020, 1012, 8, TRUE) - NORM.DIST(1000, 1012, 8, TRUE), and on a TI-84 it is normalcdf(1000, 1020, 1012, 8). The “Below 1,000 g” chip gives 0.0668072: 6.68% of bags are under 1,000 g, and the other 0.9331928 are heavier.

Convert a z-score to a percentile, and a percentile to a z-score

A z-score’s percentile is the area below it times 100. For z = 1.96, Φ(1.96) = 0.9750021, so the value is at the 97.5th percentile (the “Percentile of z = 1.96” chip). Going the other way, the z-score at a percentile is the inverse, z=Φ−1(p)z = \Phi^{-1}(p): the 90th percentile is at z = 1.2816.

z-scorePercentile
−22.28th
−115.87th
050th
184.13th
1.281690th
1.644995th
1.9697.5th
297.72th

Inverse normal: find x from a probability

To find the value with a given area below it, look up the z-score for that area and convert it back to your units:

x=μ+zσ,z=Φ−1(p)x = \mu + z\sigma, \qquad z = \Phi^{-1}(p)

For the flour bags, the weight that 90% of bags stay under is 1,012+1.281552×8=1,022.25241{,}012 + 1.281552 \times 8 = 1{,}022.2524 g, or =NORM.INV(0.9, 1012, 8) in a spreadsheet and invNorm(0.9, 1012, 8) on a TI-84. For a top share, use the area above: the top 5% of the standard normal starts at z = 1.6449, which is the 95th percentile (the “z for the top 5%” chip). For a middle share, half of what is left goes in each tail: the middle 95% of bag weights runs from 1,012−1.959964×8=996.32031{,}012 - 1.959964 \times 8 = 996.3203 g to 1,027.6797 g (the “Middle 95%” chip).

Critical z-values for 90%, 95% and 99%

Two-tailed, 90%, 95% and 99% use z = 1.6449, 1.96 and 2.5758; one-tailed, they use 1.2816, 1.6449 and 2.3263. A two-tailed cut-off splits the remaining area between both tails, so 95% leaves 2.5% above +1.96 and 2.5% below −1.96. A one-tailed cut-off puts all of it in one tail, 5% above +1.6449. That is why “the z for 95%” gets two different answers.

ConfidenceOne-tailed zTwo-tailed z
90%1.28161.6449
95%1.64491.96
99%2.32632.5758

The 68–95–99.7 rule

About 68% of values lie within one standard deviation of the mean, 95% within two and 99.7% within three. The exact shares are 68.27%, 95.45% and 99.73%. For the flour bags those ranges are 1,004 g to 1,020 g, 996 g to 1,028 g and 988 g to 1,036 g. The table under the steps lists the same ranges for your mean and SD, with the middle 80%, 90%, 95%, 98% and 99% between them.

How accurate are these results?

To at least 12 significant digits for any z from −40 to 40: that is how closely areas and z-scores match 50-digit reference values in this page’s tests, well beyond the 6 digits shown. Areas use W. J. Cody’s rational approximations to the normal distribution, the method R’s pnorm is based on, and values from a probability use M. J. Wichura’s algorithm AS 241, the basis of R’s qnorm. Each tail is computed on its own, so a small tail keeps its digits instead of coming out as 1 minus a number close to 1.

Results show 6 significant digits of the smaller tail: 0.0668072, but 0.9331928 for its complement. The smallest positive number JavaScript can store is 5E-324, so computed directly, the area above z = 40 would come out as 0. Here, tails below 1E-300 are worked out as powers of ten and shown to 4 significant digits: P(Z > 40) is 3.656E-350, and P(Z < 40) is shown as 1 − 3.656E-350. Values more than 1,000,000 standard deviations from the mean are refused, because they almost always mean the SD was entered in the wrong units.

The limit on typed probabilities is at the other end. A number such as 0.999999999999 is stored with only about 4 correct digits of its distance from 1, so for a far tail, enter the small area on its own side instead: 1e-12 above x rather than 0.999999999999 below it. The page warns when a probability is that close to 1.

Reading the result

  • Headline: the probability you asked for as a decimal, with the percentage under it. The inverse shows the value, or the two ends of the middle range.
  • Tiles: the z-scores, the complement (the other side of the curve) and each value’s percentile rank. The inverse adds the matching value on the other side of the mean.
  • Curve: the shaded area is the answer. The top row of the axis shows values in your units, the bottom row their z-scores. Chart data lists the marked points in a table.
  • Steps: each z-score, the Φ values and the subtraction, then the spreadsheet and TI-84 commands.
  • Intervals around the mean: ranges from ±1 SD to the middle 99% for your mean and SD, with the share inside and in each tail.
  • Other percentiles (inverse only): the value at common percentiles, top shares or middle shares for the same mean and SD.

Assumptions and limitations

  • The calculator assumes the values follow a normal distribution with exactly this mean and SD. Real measurements are only roughly normal, and they usually differ most in the tails, which is where small probabilities come from.
  • The mean and SD are treated as exact. If they are estimates from a small sample, the uncertainty in them is not included.
  • It is for continuous measurements. For whole-number counts, such as successes in a fixed number of trials, use a binomial distribution calculator.
  • Values up to ±1,000,000,000,000 and probabilities down to 1E-300 are accepted.

Common mistakes

  • Reading a percentile as a top share. The top 10% starts at the 90th percentile, so enter 90% below x, or choose “Above x” and enter 10%. Entering 10% below x gives the bottom 10%.
  • Using the one-tailed z for a two-tailed question, or the reverse: 1.6449 and 1.96 both get called “the 95% value”.
  • Entering the variance as the standard deviation. With a variance of 64 g², the SD is 8 g. Typing 64 as the SD makes the 1,030 g bag’s z-score 0.28 instead of 2.25.
  • Using a table of the area from 0 to z as the area below z. Some printed tables, including NIST’s, give the area between the mean and z; add 0.5 for a positive z to get Φ(z).
  • Typing a percentage as a decimal: 0.5 is read as 50%. For half a percent, type 0.5% or 0.005.

Questions

Is P(X < x) the same as P(X ≤ x)?

Yes, for a normal distribution. It is continuous, so any single value has probability 0 and including or excluding the end point changes nothing. The distinction matters only for whole-number counts such as a binomial, where P(X ≤ 5) includes the 5.

Can a z-score be negative?

Yes. A negative z-score means the value is below the mean. A 1,000 g bag from a line averaging 1,012 g with an SD of 8 g has z = −1.5, one and a half standard deviations below the mean, which is the 6.68th percentile.

How do I know if my data are roughly normal?

Plot them. A histogram of roughly normal data is single-peaked and close to symmetric, and on a normal probability plot the points lie near a straight line. A long tail on one side is a sign that areas from this calculator will be off in that tail.

Sources

  1. 1.3.6.6.1 Normal Distribution NIST/SEMATECH e-Handbook of Statistical Methods The normal density with location μ and scale σ, the standard normal as the case μ = 0 and σ = 1, and that the cumulative distribution function and its inverse have no closed form and are computed numerically.
  2. 1.3.6.7.1 Cumulative Distribution Function of the Standard Normal Distribution NIST/SEMATECH e-Handbook of Statistical Methods Critical values 1.282, 1.645, 1.960, 2.326 and 2.576 for the upper-tail areas 10%, 5%, 2.5%, 1% and 0.5%, and a printed table that gives the area from 0 to z rather than below z.
  3. 6.1 The Standard Normal Distribution OpenStax, Introductory Statistics 2e The z-score z = (x − μ) ÷ σ as the number of standard deviations above or below the mean, and the empirical rule (about 68%, 95% and 99.7% within 1, 2 and 3 standard deviations).
  4. 6.2 Using the Normal Distribution OpenStax, Introductory Statistics 2e P(X < x) as the area to the left of x, P(X > x) = 1 − P(X < x), P(X < x) being the same as P(X ≤ x), percentiles from the inverse, and the TI-83/84 normalcdf and invNorm syntax.
  5. The Normal Distribution (pnorm, qnorm) The R Project, R documentation (stats package) pnorm is based on W. J. Cody’s SPECFUN routines, and qnorm on M. J. Wichura’s algorithm AS 241 (Applied Statistics, 1988), which gives precise results up to about 16 digits.
  6. NORM.DIST function Microsoft Support NORM.DIST(x, mean, standard_dev, cumulative); TRUE returns the cumulative area below x.
  7. NORM.INV function Microsoft Support NORM.INV(probability, mean, standard_dev) returns the value with that area below it.
  8. Google Sheets function list Google Docs Editors Help NORM.DIST(x, mean, standard_deviation, cumulative), NORM.INV(x, mean, standard_deviation) and STANDARDIZE(value, mean, standard_deviation) in Google Sheets.
  9. Number.MIN_VALUE MDN Web Docs The smallest positive number JavaScript can represent is 5E-324.
  10. 1.3.3.21 Normal Probability Plot NIST/SEMATECH e-Handbook of Statistical Methods Checking whether data are approximately normal by plotting them against a normal distribution; points near a straight line suggest normality.