Skip to main content

P-value tables

Z, t, chi-square, F and correlation tables — generated at build time from the same functions this site's calculators use, so they agree with the tools to the last decimal place rather than approximately.

Generated from a SciPy-validated engine · Last reviewed 8 August 2026

How to read a statistical table

There are two kinds of table here and it is worth knowing which one you are looking at, because they are read in opposite directions.

A z table goes from a statistic to a probability. You find your Z-score and read off the area — that area is your p-value. This works for the normal distribution because it has no parameters, so one page covers every situation.

A t, chi-square or F table goes the other way: from a significance level to a critical value. You pick your α, find your degrees of freedom, and read off the number your statistic has to beat. These distributions change shape with df, so printing them the first way would take a separate page for every df — which is why they were printed as critical values instead.

The consequence is that a t table cannot give you an exact p-value, only brackets. If t = 2.51 at df = 20 sits between the 0.05 and 0.01 columns, the honest report from the table alone is p < 0.05. Getting the actual figure — 0.0208 — needs the t-score calculator.

Z table

Standard normal: from a Z-score to a probability

Read across from your Z-score. The lower-tail column is the classic "z table" value — the area to the left. For a significance test you want one of the other two.

ZLower tail P(Z ≤ z)Upper tail P(Z > z)Two-tailed p
0.00.50000.50001.0000
0.10.53980.46020.9203
0.20.57930.42070.8415
0.30.61790.38210.7642
0.40.65540.34460.6892
0.50.69150.30850.6171
0.60.72570.27430.5485
0.70.75800.24200.4839
0.80.78810.21190.4237
0.90.81590.18410.3681
1.00.84130.15870.3173
1.10.86430.13570.2713
1.20.88490.11510.2301
1.30.90320.09680.1936
1.40.91920.08080.1615
1.50.93320.06680.1336
1.60.94520.05480.1096
1.70.95540.04460.0891
1.80.96410.03590.0719
1.90.97130.02870.0574
2.00.97720.02280.0455
2.10.98210.01790.0357
2.20.98610.01390.0278
2.30.98930.01070.0214
2.40.99180.00820.0164
2.50.99380.00620.0124
2.60.99530.00470.0093
2.70.99650.00350.0069
2.80.99740.00260.0051
2.90.99810.00190.0037
3.00.99870.00130.0027

t table

Critical values of t, two-tailed

The number your |t| must exceed. Halve the column heading for a one-tailed test: the 0.05 column is also the one-tailed 0.025 boundary.

dfα = 0.10α = 0.05α = 0.02α = 0.01α = 0.001
16.31412.70631.82163.657636.619
22.9204.3036.9659.92531.599
32.3533.1824.5415.84112.924
42.1322.7763.7474.6048.610
52.0152.5713.3654.0326.869
61.9432.4473.1433.7075.959
71.8952.3652.9983.4995.408
81.8602.3062.8963.3555.041
91.8332.2622.8213.2504.781
101.8122.2282.7643.1694.587
121.7822.1792.6813.0554.318
151.7532.1312.6022.9474.073
201.7252.0862.5282.8453.850
251.7082.0602.4852.7873.725
301.6972.0422.4572.7503.646
401.6842.0212.4232.7043.551
601.6712.0002.3902.6603.460
1201.6581.9802.3582.6173.373
∞ (Z)1.6451.9602.3262.5763.291

Chi-square table

Critical values of χ², right-tailed

Chi-square is always right-tailed, so there is only one column set. Your χ² must exceed the value for its df.

dfα = 0.10α = 0.05α = 0.025α = 0.01α = 0.001
12.7063.8415.0246.63510.828
24.6055.9917.3789.21013.816
36.2517.8159.34811.34516.266
47.7799.48811.14313.27718.467
59.23611.07012.83315.08620.515
610.64512.59214.44916.81222.458
712.01714.06716.01318.47524.322
813.36215.50717.53520.09026.124
914.68416.91919.02321.66627.877
1015.98718.30720.48323.20929.588
1218.54921.02623.33726.21732.909
1522.30724.99627.48830.57837.697
2028.41231.41034.17037.56645.315
2534.38237.65240.64644.31452.620
3040.25643.77346.97950.89259.703
4051.80555.75859.34263.69173.402
5063.16767.50571.42076.15486.661

F table

Critical values of F at α = 0.05

Numerator df across the top, denominator df down the side. Reversing them gives a different and wrong answer — F(3, 16) and F(16, 3) are different distributions.

df₂ ↓ / df₁ →12345681012
1161.45199.50215.71224.58230.16233.99238.88241.88243.91
218.5119.0019.1619.2519.3019.3319.3719.4019.41
310.139.559.289.129.018.948.858.798.74
47.716.946.596.396.266.166.045.965.91
56.615.795.415.195.054.954.824.744.68
65.995.144.764.534.394.284.154.064.00
85.324.464.073.843.693.583.443.353.28
104.964.103.713.483.333.223.072.982.91
124.753.893.493.263.113.002.852.752.69
154.543.683.293.062.902.792.642.542.48
204.353.493.102.872.712.602.452.352.28
304.173.322.922.692.532.422.272.162.09
604.003.152.762.532.372.252.101.991.92
1203.923.072.682.452.292.182.021.911.83

Correlation table

Pearson r needed for significance, two-tailed

The smallest |r| that clears the threshold at each sample size. Note how fast it falls: significance is mostly a statement about n.

nα = 0.10α = 0.05α = 0.01
50.8050.8780.959
60.7290.8110.917
80.6210.7070.834
100.5490.6320.765
120.4970.5760.708
150.4410.5140.641
200.3780.4440.561
250.3370.3960.505
300.3060.3610.463
400.2640.3120.403
500.2350.2790.361
800.1850.2200.286
1000.1650.1970.256
2000.1170.1390.182
5000.0740.0880.115

Cite this page

Online P-Value Calculator (2026). P-value tables: z, t, chi-square and F. Generated from a SciPy-validated engine. Retrieved from https://onlinepvaluecalculator.com/learn/p-value-tables/

Free to reproduce for teaching and reference with attribution. If you are building course material and need a degrees-of-freedom range that is not listed here, say so — extending the grid costs us nothing and the values are generated, not typed.

Why these are generated, not transcribed

Printed statistical tables are copied from other printed statistical tables. Transcription errors get introduced, propagate, and outlive the book they started in — there is a small literature on the specific wrong values that circulate.

Every number above is computed at build time by the same distribution functions that power the calculators, and those functions are checked cell by cell against SciPy 1.17 — every df, every α, every row of every table on this page — by a suite that has to stay green for the site to ship. If one value here were wrong, the suite would be red and the methodology page would be making a false claim. That is a stronger guarantee than any printed table can offer.

It also means the tables and the tools cannot drift apart. A table on this page and the calculator two clicks away are the same code.

A note on rounding

Tables are quantised twice: the rows step at fixed intervals, and every entry is rounded for print. Both cost you precision that a calculator does not.

The z table above steps at 0.1, so a Z of 1.96 has to be read off the 2.0 row or interpolated between rows — and 1.96 is precisely the value that matters most. Textbook tables usually step at 0.01 to work around this, which is 300 rows to avoid a subtraction. The Z-score calculator takes any value and stays exact into the far tail, where tables stop entirely.

That last point is not academic. A z table ends around 3.5 because beyond it the printed area rounds to 0.0000. The real answer at Z = 8 is 6.22 × 10⁻¹⁶, and reporting it as zero is the single most common numerical error in this space.

Frequently asked questions

How do you find a p-value from a z table?

Find your Z-score in the left column and read across. A standard z table gives the area to the left of your score, so for a right-tailed test the p-value is 1 minus that figure, and for a two-tailed test it is twice the smaller tail. The table above prints all three columns so there is nothing to subtract. Tables also stop at two decimal places of Z, which is why a calculator gives a different answer in the third significant figure.

How do you find a p-value from a t table?

You usually cannot get an exact one. A t table lists critical values, not p-values, so you find your df row and see which columns your statistic falls between — that brackets the p-value rather than pinning it down. With t = 2.51 at df = 20 you would report "p < 0.05" because 2.51 exceeds 2.086 but not 2.845. Reporting an exact p is now the expectation, so this bracketing is a workaround for not having a computer.

Why does my table disagree with the calculator?

Almost always rounding. Printed tables carry two or three decimal places and are indexed at coarse intervals, so a value between rows gets interpolated or rounded. The tables on this page are generated from the same functions the calculators use and are validated against SciPy, so they agree with the tools on this site exactly. If a textbook table differs in the third decimal, the table is the approximation.

What is the difference between a z table and a t table?

A z table maps a statistic to a probability; a t table maps a significance level to a critical value. That is a historical accident rather than a principle — the standard normal has no parameters, so one page of numbers covers every case, while the t distribution changes shape with degrees of freedom and would need a separate page per df to be printed the same way.

Do I still need statistical tables?

For exams and coursework that require them, yes. For real analysis, no — they exist because computing a tail area by hand was impractical, and every limitation they have (coarse steps, three decimals, critical values instead of exact p-values) is a consequence of being printed. They are still worth understanding, because reading one makes concrete what a p-value is: an area under a curve.