Z-Score Calculator

Convert between z-score, probability and percentile in both directions. Live bell curve with shaded tails, one- and two-tailed critical values, full z table.

Runs in your browser

μ = 0, σ = 1 · type a z-score or a p-value — either one solves the other

The standard normal curve with μ = 0 and σ = 1. Type a z-score to get its p-value and percentile, or type a p-value to get the z-score — the conversion runs both ways.

See other distributions →

Real-world presets:
Normal curve with mean 0 and standard deviation 1. The shaded region is to the right of 1.96 and its probability is 0.024998.-3-2-101230.024998

P(X ≥ 1.96) = 0.024998

μ = 0, σ = 1

What to calculate

Type in either box — the other one is solved for you.

Result

P(X ≥ 1.96)
0.024998 P(X ≥ 1.96) = 1 − Φ(1.96) = 0.0249979

Related probabilities

P(X ≤ x)
0.975002
P(X ≥ x)
0.024998
P(−|z| ≤ Z ≤ |z|)
0.950004
Two-tail probability
0.049996
z-score
1.960000
Percentile
97.50th percentile

Distribution summary

Mean
0
Variance
1
Standard deviation
1
Median
0
Mode
0
Skewness
0
Excess kurtosis
0

Empirical rule (68–95–99.7)

RegionRangeP
Within ±1σ-1 – 10.682689
Within ±2σ-2 – 20.954500
Within ±3σ-3 – 30.997300

Critical values

Click a row to jump the graph to that value.

Significance level αOne-tailedTwo-tailed
0.1
0.05
0.025
0.01
0.005
0.001

Convert a raw score

z = (x − μ) / σ

Standard normal (z) table

Row = first decimal of z, column = second decimal. Values are Φ(z) = P(Z ≤ z). For negative z use Φ(−z) = 1 − Φ(z).

z0.000.010.020.030.040.050.060.070.080.09
0.00.50000.50400.50800.51200.51600.51990.52390.52790.53190.5359
0.10.53980.54380.54780.55170.55570.55960.56360.56750.57140.5753
0.20.57930.58320.58710.59100.59480.59870.60260.60640.61030.6141
0.30.61790.62170.62550.62930.63310.63680.64060.64430.64800.6517
0.40.65540.65910.66280.66640.67000.67360.67720.68080.68440.6879
0.50.69150.69500.69850.70190.70540.70880.71230.71570.71900.7224
0.60.72570.72910.73240.73570.73890.74220.74540.74860.75170.7549
0.70.75800.76110.76420.76730.77040.77340.77640.77940.78230.7852
0.80.78810.79100.79390.79670.79950.80230.80510.80780.81060.8133
0.90.81590.81860.82120.82380.82640.82890.83150.83400.83650.8389
1.00.84130.84380.84610.84850.85080.85310.85540.85770.85990.8621
1.10.86430.86650.86860.87080.87290.87490.87700.87900.88100.8830
1.20.88490.88690.88880.89070.89250.89440.89620.89800.89970.9015
1.30.90320.90490.90660.90820.90990.91150.91310.91470.91620.9177
1.40.91920.92070.92220.92360.92510.92650.92790.92920.93060.9319
1.50.93320.93450.93570.93700.93820.93940.94060.94180.94290.9441
1.60.94520.94630.94740.94840.94950.95050.95150.95250.95350.9545
1.70.95540.95640.95730.95820.95910.95990.96080.96160.96250.9633
1.80.96410.96490.96560.96640.96710.96780.96860.96930.96990.9706
1.90.97130.97190.97260.97320.97380.97440.97500.97560.97610.9767
2.00.97720.97780.97830.97880.97930.97980.98030.98080.98120.9817
2.10.98210.98260.98300.98340.98380.98420.98460.98500.98540.9857
2.20.98610.98640.98680.98710.98750.98780.98810.98840.98870.9890
2.30.98930.98960.98980.99010.99040.99060.99090.99110.99130.9916
2.40.99180.99200.99220.99250.99270.99290.99310.99320.99340.9936
2.50.99380.99400.99410.99430.99450.99460.99480.99490.99510.9952
2.60.99530.99550.99560.99570.99590.99600.99610.99620.99630.9964
2.70.99650.99660.99670.99680.99690.99700.99710.99720.99730.9974
2.80.99740.99750.99760.99770.99770.99780.99790.99790.99800.9981
2.90.99810.99820.99820.99830.99840.99840.99850.99850.99860.9986
3.00.99870.99870.99870.99880.99880.99890.99890.99890.99900.9990
3.10.99900.99910.99910.99910.99920.99920.99920.99920.99930.9993
3.20.99930.99930.99940.99940.99940.99940.99940.99950.99950.9995
3.30.99950.99950.99950.99960.99960.99960.99960.99960.99960.9997
3.40.99970.99970.99970.99970.99970.99970.99970.99970.99970.9998

Same calculation in code

from scipy.stats import norm
norm.cdf(1.96, loc=0, scale=1)  # 0.02499789514822045

The full z table below highlights the cell for the z-score you are looking at, and every critical-value row jumps the graph to that threshold.

How to use

  1. Type a z-score to get its p-value, or type a p-value to get the z-score.
  2. Choose one-tailed or two-tailed with the mode buttons.
  3. Use “Convert a raw score” to turn x, μ and σ into a z-score.
  4. Click a row in the critical value table to jump the graph to that threshold.

FAQ

What does a z-score mean?

It says how many standard deviations a value sits from the mean. z = 2 is two standard deviations above the mean, z = −1.5 is one and a half below it.

How do I get a p-value from a z-score?

The one-tailed p-value is P(Z > |z|); the two-tailed one is twice that. For z = 1.96 they are 0.025 and 0.05. The right-tail and two-tail modes of this calculator give each of them.

How do I convert a z-score to a percentile?

The percentile is Φ(z) × 100. z = 1 is the 84.13th percentile and z = 0 is exactly the 50th.

How do I read a z table?

Find z to one decimal in the row, the second decimal in the column, and the cell where they meet is Φ(z) = P(Z ≤ z). Negative z is not listed, so use Φ(−z) = 1 − Φ(z). The table below highlights the cell for the z-score you are currently looking at.

Related tools

More AI & Data tools: AI & Data

Send feedback

Found a bug or have an idea? Tell us — it helps make the tools better.

Only needed if you would like a reply.

Page: /ai/z-score-calculator/