This Critical Value calculator finds the critical value(s) for Z-tests, t-tests, Chi-Square tests, F-tests, and Pearson correlation (r). It is the inverse of a p-value: choose a distribution, tail, and significance level to find the cutoff that defines the rejection region — no test statistic required. If you prefer using our interactive statistical tables, they're available for your reference.
Your results will be displayed here after calculation.
A critical value is the cutoff point on a test statistic's distribution that separates the region where you fail to reject the null hypothesis from the rejection region. It is determined entirely by the chosen distribution, the significance level (α), and the tail of the test — not by your data.
Traditional critical-value tables are indexed by the significance level (and, where relevant, the degrees of freedom). To use one, find the column for your α and tail, then read across the row for your degrees of freedom:
Critical values and p-values are two sides of the same decision. They always agree:
For example, a two-tailed z-test at α = 0.05 has a critical value of . A test statistic of exceeds 1.96, so you reject — equivalently, its p-value (0.0357) is below 0.05. To go the other direction and compute a p-value from a statistic, use the P-Value Calculator.
In R, use the quantile functions qnorm() for Z, qt() for t, qchisq() for Chi-Square, and qf() for F. The leading 'q' stands for quantile (the inverse CDF). Here are some examples:
alpha <- 0.05
# Z critical value (two-tailed): +/- this value
qnorm(1 - alpha/2) # 1.959964
# t critical value (right-tailed), df = 10
qt(1 - alpha, df = 10) # 1.812461
# Chi-square critical value (right-tailed), df = 5
qchisq(1 - alpha, df = 5) # 11.0705
# F critical value (right-tailed), df1 = 3, df2 = 20
qf(1 - alpha, df1 = 3, df2 = 20) # 3.098391
# Critical Pearson r (two-tailed), n = 20 -> df = 18
df <- 20 - 2
t_crit <- qt(1 - alpha/2, df)
t_crit / sqrt(df + t_crit^2) # 0.4438In Python, use the percent-point function .ppf() from scipy.stats: stats.norm for Z, stats.t for t, stats.chi2 for Chi-Square, and stats.f for F. Here are some examples:
from scipy import stats
import numpy as np
alpha = 0.05
# Z critical value (two-tailed): +/- this value
stats.norm.ppf(1 - alpha/2) # 1.959964
# t critical value (right-tailed), df = 10
stats.t.ppf(1 - alpha, df=10) # 1.812461
# Chi-square critical value (right-tailed), df = 5
stats.chi2.ppf(1 - alpha, df=5) # 11.0705
# F critical value (right-tailed), df1 = 3, df2 = 20
stats.f.ppf(1 - alpha, dfn=3, dfd=20) # 3.098391
# Critical Pearson r (two-tailed), n = 20 -> df = 18
df = 20 - 2
t_crit = stats.t.ppf(1 - alpha/2, df)
t_crit / np.sqrt(df + t_crit**2) # 0.4438Do I need a test statistic to find a critical value?
No. A critical value depends only on the distribution, the tail of the test, and the significance level. You compare your test statistic against it afterward.
Why does a two-tailed test give two values?
The significance level is split between both tails. For symmetric distributions (z, t, r) the cutoffs are ; for chi-square and F they are a distinct lower and upper bound.
How is the critical value of r computed?
It is derived from the t-distribution with , then converted with .