Probability Distribution Calculator

Interactive calculator for seven probability distributions: adjust sliders and watch the curve, shaded area, probability and quantiles update instantly.

Runs in your browser

7 distributions · drag the sliders to reshape the curve · every setting is kept in the URL

Pick a distribution, drag the parameter sliders and watch the curve, the shaded area and the probability move together. Every setting lives in the address bar, so the link you copy reopens exactly this screen.

Standard normal (z)
Real-world presets:
Normal curve with mean 0 and standard deviation 1. The shaded region is to the left of 0 and its probability is 0.500000.-3-2-101230.500000

P(X ≤ 0) = 0.500000

Parameters

What to calculate

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

Result

P(X ≤ 0)
0.500000 P(X ≤ 0) = Φ((0 − 0) / 1) = Φ(0) = 0.5

Related probabilities

P(X ≤ x)
0.500000
P(X ≥ x)
0.500000
P(−|z| ≤ Z ≤ |z|)
0
Two-tail probability
1
z-score
0
Percentile
50.00th percentile

Distribution summary

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

Which distribution should I use?

DistributionUse it whenParametersMeanVariance
A continuous measurement clusters around an average.μ, σμσ²
A fixed number of independent yes/no trials.n, pnpnp(1−p)
Counting events in a fixed interval of time or space.λλλ
Small samples where the population σ is unknown.ν0ν/(ν−2)
Goodness-of-fit and independence tests.kk2k
Waiting time between events that happen at a constant rate.λ1/λ1/λ²
Every value in a range is equally likely.a, b(a+b)/2(b−a)²/12

Same calculation in code

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

Type in the value box to get a probability, or type in the probability box to get the value — you never have to switch to an "inverse" mode.

Choosing a distribution: three questions

First: is the outcome a count or a measurement? Counts are whole numbers and use a discrete distribution; measurements can fall anywhere on a scale and use a continuous one. "How many of the 1,000 units were defective" is a count; "how long the battery lasted" is a measurement, and picking the wrong side of that line is the most common modelling mistake.

Second, for a count: is the number of trials fixed? Twenty coin flips, 1,000 inspected units — fixed n, constant success probability, independent trials → binomial. No fixed n, just events arriving over an interval of time or space (calls per hour, typos per page, arrivals per minute) → Poisson, whose single parameter λ is both the mean and the variance.

Third, for a measurement: symmetric around an average → normal (μ, σ). Waiting time until the next event, memoryless → exponential (λ, mean 1/λ). Every value in a range equally likely → uniform (a, b). And two distributions exist for inference rather than for data: Student’s t (a sample mean when σ is unknown) and chi-square (goodness-of-fit, independence, variance).

  • Quick check on the summary line: for the binomial the mean is np and the variance np(1−p); for the Poisson both are λ; for the exponential the mean is 1/λ and the median ln 2/λ (λ = 0.5 → mean 2, median 1.3863); for the uniform the mean is (a+b)/2. If the mean the page reports is nowhere near what you expected, the parameters are wrong, not the answer.

Density, cumulative probability, tail and quantile

The density f(x) of a continuous distribution is not a probability — it is a height, and it can exceed 1. A standard normal peaks at 0.398942, and an exponential with λ = 2 has density 2 at x = 0. Probability is area: only an interval has one, which is why P(X = x) is exactly 0 for every continuous distribution.

The CDF F(x) = P(X ≤ x) is the shaded area to the left, and the survival function 1 − F(x) is the right tail. The interval and outside modes combine them: P(a < X ≤ b) = F(b) − F(a), and the two-sided outside probability is F(a) + (1 − F(b)). Switching the view from density to CDF redraws the same numbers as a rising S-curve, where a probability is a height rather than an area.

The quantile is the inverse: give it 0.95 and it returns the value with 95% of the mass below it. That is where critical values come from — the 95th percentile of the standard normal is 1.6448536 and the 97.5th is 1.9599640, the two numbers behind every one- and two-tailed 5% test.

Forward and inverse in the same screen

Most calculators make you pick a direction first. Here you type in whichever box you know: put a value in the x box and the probability appears; put a probability in the p box and the value appears. The mode (left tail, right tail, interval, outside, density) applies to both directions, so "P(X ≤ ?) = 0.99" and "P(X ≤ 130) = ?" are the same screen with different fields filled.

For a discrete distribution the inverse is a step function, and the answer is the smallest k with F(k) ≥ q — not an interpolated decimal. Asking for the 0.95 quantile of a binomial with n = 20, p = 0.5 returns 14, and F(14) = 0.9793, comfortably above 0.95, because 13 would only reach 0.9423. Textbooks and software agree on this convention; a calculator that hands back 13.6 is interpolating something that does not exist.

Every field, the mode and the chosen distribution live in the query string, so the address bar is a permanent record of the calculation. Copy it into an assignment, a code review or a message and the recipient opens the identical screen — no screenshot, no "set μ to 100 and σ to 15 first".

Discrete distributions and the ≤ / < switch

In a continuous distribution P(X ≤ x) and P(X < x) are identical, because the single point contributes no area. In a discrete one they differ by exactly P(X = x), and the difference is often large: for 20 coin flips P(X ≤ 10) = 0.588099 while P(X < 10) = 0.411901 — a 17.6 percentage-point gap, which is P(X = 10) = 0.176197.

The same trap sits in the right tail. With a Poisson λ = 5, "more than 8 calls" reads as P(X ≥ 9) = 0.068094 if the caller meant strictly more, but as P(X ≥ 8) = 0.133372 if they meant 8 or more — the answer nearly doubles depending on how the sentence is read. The boundary toggle exists so you can state which one you meant instead of hoping the reader guesses.

  • Practical habit: write the inequality out before you type it. "At least k" is P(X ≥ k), "more than k" is P(X ≥ k+1), "at most k" is P(X ≤ k) and "fewer than k" is P(X ≤ k−1). The label above the result restates whichever one you selected, so it can be checked at a glance.

How the seven distributions approximate each other

Binomial → Poisson when n is large and p is small. With n = 1,000 and p = 0.01, the exact binomial gives P(X ≤ 15) = 0.952129 and a Poisson with λ = np = 10 gives 0.951260 — a difference of 8.7e-4. The classic rule of thumb is n ≥ 20 with p ≤ 0.05, or n ≥ 100 with np ≤ 10.

Binomial and Poisson → normal when there is enough mass in the middle: np ≥ 5 and n(1−p) ≥ 5 for the binomial, λ ≥ 10 for the Poisson. The page checks those conditions and marks the approximation as unreliable when they fail, instead of quietly printing a number.

t → normal as the degrees of freedom grow. The two-tailed 5% critical value is 2.5706 at df = 5, 2.2281 at df = 10, 2.0423 at df = 30, 1.9840 at df = 100 and 1.9623 at df = 1,000, converging on the normal 1.9599640. That is the whole reason "n ≥ 30" appears in textbooks: past that point the two answers differ in the second decimal.

And two structural relationships worth remembering: a chi-square with k degrees of freedom is the sum of k squared standard normals (so chi-square with df = 1 has the 5% critical value 3.8415 = 1.9599640²), and the exponential is the waiting time between Poisson events — the same process seen from the time axis instead of the count axis.

Presets, and why they differ by country

Thirteen presets load a real scenario in one click: IQ (μ = 100, σ = 15), adult male height, SAT scores (1050 / 200), Korean CSAT standard scores (100 / 20), the standard normal, 20 coin flips, a 1% defect rate over 1,000 units, the continuity-correction demo, a call centre at λ = 5, a wait time at λ = 0.5, a t test at df = 10, a chi-square goodness-of-fit at df = 10 and a fair die.

Height is one concept with different national numbers, so the button shows yours: 172.5 / 5.6 cm in Korea (Size Korea), 175.3 / 7.4 cm in the United States (NHANES 2015–2018), 170.8 / 5.8 cm in Japan (国民健康・栄養調査) and 171 / 7 cm as the world average (NCD-RisC 2020) everywhere else. Exams are different institutions that both exist, so both buttons stay and only the order changes — the local exam first.

The country decides which buttons appear, never what a click writes. A preset only sets plain parameter text (μ, σ, x), so a link shared from Seoul reproduces identically in Chicago — the shared URL carries numbers, not a locale.

Taking the same calculation to scipy, R or Excel

Every result comes with the equivalent one-liner. The normal CDF is norm.cdf(x, loc=μ, scale=σ) in scipy, pnorm(x, μ, σ) in R and =NORM.DIST(x, μ, σ, TRUE) in Excel; the inverse is norm.ppf / qnorm / =NORM.INV. The pattern holds across the family: p* / q* in R, .cdf / .ppf in scipy.

Two translation traps are worth naming. Excel’s cumulative flag must be TRUE for a probability and FALSE for a density — the same function name does both, and forgetting it produces a plausible-looking wrong number. And scipy’s exponential takes scale = 1/λ, not λ, so expon.cdf(3, scale=2) is the λ = 0.5 case; passing 0.5 there silently models a four-times-faster process.

Under the hood this page uses the Hart/West rational approximation for the normal CDF, Acklam plus a Halley step for its inverse, and continued-fraction expansions of the incomplete gamma and beta functions for the rest — the same algorithms the libraries use, which is why the snippets and the screen agree to the decimals shown.

How to use

  1. Pick a distribution from the tabs.
  2. Set the parameters with the sliders or type exact values.
  3. Choose what to calculate: a left tail, a right tail, an interval or the density.
  4. Enter a value to get its probability, or enter a probability to get the matching value.
  5. Copy the result or share the URL — it carries every setting.

FAQ

How accurate are these results?

The normal CDF uses the Hart/West rational approximation (absolute error 1.8e-16), the inverse normal uses Acklam plus one Halley step (relative error 1.5e-10), and the incomplete gamma and beta functions land around 1e-12. The display stops at 12 decimals because anything beyond that would not be guaranteed.

Can I share a calculation with my students?

Yes. The distribution, its parameters, the mode and the boundary values all live in the address bar, so copying the URL and sending it reopens exactly the same screen.

How large can the parameters be?

The binomial accepts n up to 10,000,000. Terms are summed one by one up to n = 100,000; above that the regularised incomplete beta function is evaluated instead, and the relative error stays around 4e-9 even at the top of the range. The Poisson λ and the degrees of freedom accept the same ceiling, and a t distribution with more than a million degrees of freedom is evaluated as a normal because the difference has long since fallen below the displayed precision. A non-integer n is rounded with a notice rather than rejected.

Why does the chart show bars for some distributions and a curve for others?

Discrete distributions get one bar per outcome, because the probability really does sit on whole numbers. Once the plotted range exceeds 200 outcomes the bars are grouped so they stay readable, and the page marks the chart as binned — the numbers in the result panel are still exact, only the drawing is summarised. Continuous distributions are drawn as a curve over roughly ±4 standard deviations around the centre.

Why does my probability come out as exactly 0 or 1?

Usually because the boundary is far enough into the tail that the true value falls below what a 64-bit float can represent — beyond about ±8σ on a normal, the tail is smaller than 1e-15 and rounds away. The page flags that case as a truncated tail rather than presenting 0 as an exact answer. A probability that is zero by definition (an empty interval, p = 0 or p = 1 on a binomial, a degenerate distribution with σ = 0) is not flagged, because there 0 is the correct answer.

Do I still need a printed z table or t table?

Not for the arithmetic. Critical values for α = 0.10, 0.05, 0.025, 0.01, 0.005 and 0.001 are computed for whichever distribution is selected, one- and two-tailed, to more decimals than a printed table carries. A full standard normal table is on the z-score page for coursework that requires you to read one, and the binomial page prints a k-by-k probability table.

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/distribution-calculator/