Poisson Distribution Probabilities From lambda
Calculate exact and cumulative Poisson probabilities given an average event rate λ. Explore the distribution with interactive charts and key statistics.
Calculate exact and cumulative Poisson probabilities given an average event rate λ. Explore the distribution with interactive charts and key statistics.
Poisson is what binomial collapses to when n grows large and p shrinks small with n·p held at a constant λ. The mass function loses the C(n,k) and the (1−p)ⁿ⁻ᵏ factor and becomes P(X = k) = e⁻λ · λᵏ / k!, which is easier to compute and doesn't need an explicit n. Use it when you have a rate (events per unit time, defects per unit area, calls per hour) rather than a fixed trial count.
This page handles three queries: the exact P(X = k), the left cumulative P(X ≤ k), and the right cumulative P(X ≥ k). The last is computed as 1 − P(X ≤ k−1), which is numerically more stable than summing the upper tail directly. Mean and variance both equal λ; if your sample variance is meaningfully larger than the sample mean you have overdispersion, Poisson is the wrong model, and negative binomial is what you want. One trap that catches people: λ must match the interval of the question. Data quoted as "60 events per hour" with a 1-minute target window means λ = 1, not 60.
Poisson distribution calculations depend on a single parameter: λ (lambda), the average rate of events per interval. Misspecify λ and every probability output is wrong. Before computing, confirm your rate matches your observation window.
Lambda is the expected event count in a fixed time or space window. A call center averaging 12 calls per hour has λ = 12 for an hourly interval. A factory producing 3 defects per 1000 units has λ = 3 for that batch size. Lambda can be any positive number—integer or decimal. If your data reports events per different intervals, rescale: 24 events per day equals λ = 1 for one hour.
The probability you compute applies only to the interval λ represents. Asking "what is the probability of 5 events in the next hour" requires an hourly λ. If your source gives daily rates, divide by 24 before entering. Mismatched intervals invalidate results.
Poisson assumes the event rate stays constant throughout the interval. Rush-hour traffic violates this—arrival rates vary by time of day. Seasonal product defects vary by batch. If your rate fluctuates, split the analysis into constant-rate segments or use non-homogeneous Poisson models.
Events must occur independently. One event cannot trigger or prevent another. Customer arrivals at a store generally qualify. Earthquake aftershocks do not—the initial quake increases subsequent probabilities. Dependent events require different models.
Common error: Entering a rate from a different interval. If your source says "60 events per hour" but you want probability per minute, use λ = 1 (60 ÷ 60), not λ = 60.
Poisson queries come in three forms: exact probabilities for a specific count, cumulative probabilities summing ranges, and complementary probabilities for tail regions. Selecting the wrong mode returns the wrong answer.
The probability of observing exactly k events. The formula is P(X = k) = (e⁻λ × λᵏ) / k!, where e⁻λ is the probability of zero events, λᵏ scales for k events, and k! normalizes. Use this mode for "exactly" questions: What is the probability of exactly 5 calls in the next hour?
The probability of k or fewer events—summing P(X = 0) through P(X = k). Use this mode for "at most" questions: What is the probability of at most 3 defects in a batch? The cumulative probability always exceeds the exact probability at the same k.
The probability of k or more events. Computed as 1 − P(X ≤ k−1). Use this mode for "at least" questions: What is the probability of at least 10 customers per hour? This equals summing P(X = k) through infinity, but the complement formula is computationally cleaner.
Quick check: For any k, P(X ≤ k) + P(X ≥ k+1) = 1. Use this identity to verify complementary calculations.
The Poisson distribution has a unique property: mean equals variance. Both equal λ. This "equidispersion" distinguishes Poisson from other count distributions and provides a quick validity check for real data.
The expected event count equals the rate parameter directly. With λ = 8, expect about 8 events per interval on average. The mean shifts proportionally with λ—double the rate, double the expected count.
Variance also equals λ. Higher λ means both more events and more spread. This coupling—mean and variance locked together—is the defining Poisson signature. Real count data often show variance different from the mean; when variance exceeds the mean, the data exhibit overdispersion and may require negative binomial models.
Standard deviation puts spread in the same units as event counts. About 68% of outcomes fall within μ ± σ, and roughly 95% within μ ± 2σ. For λ = 25: μ = 25, σ = 5, so most outcomes land between 15 and 35.
| Statistic | Formula | λ = 4 | λ = 25 |
|---|---|---|---|
| Mean | λ | 4.0 | 25.0 |
| Variance | λ | 4.0 | 25.0 |
| Std Dev | √λ | 2.0 | 5.0 |
Poisson excels at modeling rare events—situations where λ is small (below 5) and probability mass concentrates near zero. These distributions are highly right-skewed with long tails.
When λ is small, P(X = 0) = e⁻λ dominates. For λ = 0.5, P(X = 0) ≈ 60.7%. For λ = 0.1, P(X = 0) ≈ 90.5%. The zero-event outcome becomes overwhelmingly likely, making non-zero counts genuinely rare.
Small λ produces a steep drop-off after k = 0. Probabilities fall rapidly as k increases. The distribution tail extends right, but probability mass is negligible beyond a few standard deviations. Visualizing this skew helps interpret why exact probabilities for k > λ are tiny.
The mode (most likely k) sits at floor(λ) for non-integer λ, or at both λ and λ−1 when λ is an integer. For λ = 2.3, the mode is 2. For λ = 3, both k = 2 and k = 3 share the modal probability.
Rare-event modeling (accidents, equipment failures, lottery wins) naturally fits Poisson with small λ. The "Law of Rare Events" shows Poisson emerges as a limit of binomial when n is large and p is small with np = λ staying moderate.
Edge case: For extremely small λ (below 0.01), nearly all probability sits at k = 0. P(X ≥ 1) becomes the complementary "any event at all" probability, which may be the quantity of interest.
The probability mass function (PMF) chart displays bars for each k from 0 upward, with heights proportional to P(X = k). Use the chart to visualize distribution shape and locate high-probability regions.
Each bar represents the exact probability of that specific k. The tallest bar marks the mode. Adjacent bars show how probability tapers as k moves away from the mode. Compare bar heights to gauge relative likelihoods—useful for quick intuition about which outcomes are plausible.
Small λ (below 5) produces right-skewed distributions with mass concentrated near 0. Moderate λ (5–20) shows less skew, spreading mass more evenly. Large λ (above 20) approaches symmetric bell-shaped distributions resembling normal curves.
The distribution table accompanies the chart, showing both P(X = k) and P(X ≤ k) for each k. Watch the cumulative column climb toward 1.0 as k increases. The jump between consecutive cumulative values equals the corresponding exact probability.
Screenshot the PMF chart for reports, slides, or homework. The visual clarifies where probability mass concentrates—helpful when explaining arrival patterns to stakeholders who find tables harder to parse than graphs.
The Poisson derivation from first principles—events occurring independently at constant rate—produces a distribution where both moments equal λ. This equidispersion is a mathematical consequence, not an assumption. Real data violating this equality signal that Poisson may not fit.
For λ above 20, Poisson becomes approximately symmetric and well-approximated by a normal distribution with mean λ and standard deviation √λ. Normal approximation is faster and avoids large-factorial computation. For small λ, stick with exact Poisson.
Poisson is the limiting case of binomial when n is large, p is small, and np = λ stays moderate. If you have a binomial problem with n ≥ 100 and p ≤ 0.01, Poisson with λ = np provides a good approximation without computing large binomial coefficients.
Overdispersion (variance > mean) indicates Poisson doesn't fit your data. Consider negative binomial, quasi-Poisson, or zero-inflated models. Common causes include clustering, unobserved heterogeneity, or extra zeros beyond what Poisson predicts.
Standard Poisson assumes constant rate. For time-varying rates, use non-homogeneous Poisson processes where λ(t) changes over time. Alternatively, segment your analysis into periods with approximately constant rates and compute separate probabilities.
The calculator uses logarithmic methods to avoid overflow from large factorials, providing accurate results to many decimal places. For extremely large k or λ, Stirling's approximation kicks in. Results match R, Python SciPy, and statistical tables for all practical purposes.
Six problems with full work. Numbers match scipy.stats.poisson.pmf and poisson.cdf to four decimals.
Problem. X ~ Poisson(λ = 8). Find the exact P(X = 12).
PMF: P(X = k) = e^(−λ) · λ^k / k!. With λ = 8, k = 12.
e^(-8) ≈ 3.3546 × 10⁻⁴
8^12 = 68,719,476,736
12! = 479,001,600
P(X = 12) = 3.3546e-4 × 68,719,476,736 / 479,001,600
≈ 0.04813For larger k or λ, the factorial in the denominator overflows float64 quickly. The trick used in scipy.stats.poisson.pmf and most production code is to compute log P first: log P(X = k) = -λ + k · log(λ) − log(k!), then exponentiate at the end. log(k!) is computed via the gamma function: log(Γ(k+1)). Avoids overflow at any reasonable scale.
Answer: P(X = 12) ≈ 0.0481. Eight events were the average rate, so observing 12 happens about 4.8% of the time.
Problem. X ~ Poisson(λ = 2). Find P(X > 5), equivalently 1 − P(X ≤ 5).
Sum the PMF for k = 0 through 5, then subtract from 1.
P(X = 0) ≈ 0.1353 P(X = 1) ≈ 0.2707 P(X = 2) ≈ 0.2707 P(X = 3) ≈ 0.1804 P(X = 4) ≈ 0.0902 P(X = 5) ≈ 0.0361 Sum ≈ 0.9834 P(X > 5) = 1 − 0.9834 = 0.0166
With λ = 2, the right tail decays fast. P(X = 6) is already only ≈ 0.0120, P(X = 7) ≈ 0.0034. The exponential decay in the PMF (driven by 1/k!) means tail probabilities shrink super-exponentially once k passes a few standard deviations above λ.
Answer: P(X > 5) ≈ 0.0166. Below 2%, a tail event when the rate is only 2.
Problem. X ~ Poisson(λ = 20). Find P(X = 12) using a normal approximation.
For large λ, X is approximately N(λ, λ). Mean and variance both equal 20, so σ = √20 ≈ 4.472. Apply continuity correction.
P(X = 12) ≈ Φ((12.5 − 20)/4.472) − Φ((11.5 − 20)/4.472)
= Φ(-1.677) − Φ(-1.901)
≈ 0.04680 − 0.02865
≈ 0.01815
Exact PMF: e^(-20) · 20^12 / 12! ≈ 0.01764The approximation is off by about 3%, which is fine for most purposes. When it breaks: below λ ≈ 10 the Poisson is too skewed for a normal to fit well, and the approximation underestimates the right tail. Stick to the exact PMF in that regime.
Answer: Approximate P(X = 12) ≈ 0.0182, exact 0.0176.
Problem. X ~ Poisson(λ = 6.5). Find P(X ≤ 9).
Sum the PMF from 0 to 9.
P(X = 0) ≈ 0.001503 P(X = 1) ≈ 0.009772 P(X = 2) ≈ 0.031760 P(X = 3) ≈ 0.068814 P(X = 4) ≈ 0.111823 P(X = 5) ≈ 0.145370 P(X = 6) ≈ 0.157484 P(X = 7) ≈ 0.146236 P(X = 8) ≈ 0.118817 P(X = 9) ≈ 0.085813 Sum ≈ 0.8769
Answer: P(X ≤ 9) ≈ 0.8769. Right tail P(X ≥ 10) ≈ 0.1231.
Problem. Phone calls arrive at an average rate of 3 per hour. What is the probability of more than 5 calls in a one-hour window?
Calls per hour follow Poisson(λ = 3) under the standard memoryless-arrivals assumption. Want P(X > 5) = 1 − P(X ≤ 5).
P(X = 0..5) sums to: 0.04979 + 0.14936 + 0.22404 + 0.22404 + 0.16803 + 0.10082 = 0.91608 P(X > 5) = 1 − 0.91608 ≈ 0.0839
If the observation window scales (call counts in 30 minutes vs an hour), λ scales linearly, since Poisson processes have stationary increments. Half an hour means λ = 1.5 instead of 3.
Answer: About 8.4%.
Problem. The number of typos per page in a manuscript is Poisson(λ = 0.4). What is the probability that a 10-page chapter has at least one typo?
Total typos in 10 pages ~ Poisson(λ = 4), since rates add for independent Poisson counts over disjoint windows. Use the complement. P(X ≥ 1) = 1 − P(X = 0) = 1 − e^(−4) ≈ 1 − 0.01832 = 0.98168.
Per-page rate is 0.4, so P(no typo on a given page) = e^(-0.4) ≈ 0.6703. Probability of zero typos across all 10 pages is 0.6703^10 ≈ 0.0183, the same number you get from e^(-4) by the additivity property. Two paths to the same answer is a healthy sign you have the model right.
Answer: About 98.2% chance of at least one typo. As soon as λ > 3 or so, "at least one" is essentially certain.
Constant rate: λ has to stay fixed across the whole interval. Time-varying rates (rush-hour arrivals, seasonal demand) need a non-homogeneous Poisson process, or split the analysis into constant-rate windows.
Independence: events can't trigger or block each other. Earthquake aftershocks, viral spread, and customer referrals all violate this. Use Hawkes processes or a contagion model.
Equidispersion: the Poisson signature is variance = mean = λ. Real count data with overdispersion (sample variance noticeably above the sample mean) needs negative binomial or quasi-Poisson.
Large λ: for λ above ~30 the normal approximation N(λ, λ) tracks the exact PMF closely enough that the closed form is overkill.
Note: For working code, scipy.stats.poisson and R's dpois/ppois are the standard references. NIST/SEMATECH e-Handbook §1.3.6.6.19 covers the Poisson family with the same parameterization used here.
Use the complement: P(X > k) = 1 − P(X ≤ k). For "1 − poisson cdf(5, lambda=2)" with λ = 2, sum the PMF from 0 to 5: P(X ≤ 5) ≈ 0.9834. So P(X > 5) = 1 − 0.9834 = 0.0166. The complement form is more numerically stable than summing the upper tail directly. R's ppois(k, lambda, lower.tail = FALSE) and scipy.stats.poisson.sf(k, mu) compute P(X > k) directly without going through the complement, which matters at extreme λ where 1 − F(k) loses precision.
P(X = k) = e^(−λ) · λ^k / k!. The e^(−λ) factor comes from normalization. For the PMF to sum to 1 over all non-negative integers, you need e^(−λ) · Σ λ^k / k! = e^(−λ) · e^λ = 1, since the series Σ λ^k / k! is the Maclaurin expansion of e^λ. It also drops out as the limit of binomial when n → ∞ with n·p = λ fixed: (1 − λ/n)^n → e^(−λ). NIST/SEMATECH e-Handbook §1.3.6.6.19 covers the derivation in detail.
When you have a rate, not a fixed trial count. Calls per hour, defects per square meter, accidents per month. Poisson assumes events occur independently at a constant average rate, with no upper bound on count. Binomial wants a fixed n. As a numerical bridge: for binomial with n large, p small, n·p moderate (the rare-events regime), Poisson with λ = n·p gives essentially the same probabilities and is much faster to compute. Rule of thumb: n ≥ 20 and p ≤ 0.05 puts you solidly in Poisson territory.
Sum the PMF from 0 to k: P(X ≤ k) = Σᵢ₌₀ᵏ e^(−λ) · λⁱ / i!. For λ = 8, k = 12 you'd need P(X = 0) through P(X = 12), thirteen terms. Doable but tedious. The shortcut: P(X = i+1) = P(X = i) · λ / (i + 1), so each term is a small multiplicative update from the previous one. Start with P(X = 0) = e^(−λ) and iterate. The page uses this recurrence internally to avoid recomputing factorials at every step.
It falls out of the Poisson process. With independent events at constant rate λ over a fixed window, both E[X] and Var(X) work out to λ when you derive the distribution from first principles. Practically this is a sanity check: if your sample variance is meaningfully larger than the sample mean, you have overdispersion and Poisson is the wrong model. Negative binomial or quasi-Poisson handles overdispersion. Underdispersion (variance noticeably below mean) is rarer and points to an inhibition mechanism between events.
Yes, λ is a continuous rate. You can have λ = 2.7 calls per hour or λ = 0.3 defects per panel; that's fine. The constraint is k must be a non-negative integer (you observed 2 events or 3, never 2.7), but the rate itself is real-valued. λ = 0 is the degenerate case where no events ever occur, giving P(X = 0) = 1.
For λ ≥ ~25 the distribution is symmetric enough that N(λ, λ) tracks it closely, with continuity correction for cumulative probabilities: P(X ≤ k) ≈ Φ((k + 0.5 − λ)/√λ). At λ = 100, the normal approximation is accurate to about three decimal places across most of the range. For small λ, especially λ < 5, the distribution is right-skewed and the normal approximation undercovers the upper tail. Stick with the exact PMF there.
That's overdispersion. Common causes: heterogeneity (the population is a mix of subgroups with different true rates), clustering (events trigger more events), or omitted covariates that explain rate variation. Negative binomial regression is the standard fix; it adds a dispersion parameter accommodating the extra variance. Quasi-Poisson is the lighter alternative with the same mean structure but variance scaled by a free parameter. Both are available in R's glm() with family = quasipoisson() or MASS::glm.nb(), and statsmodels.discrete.discrete_model.NegativeBinomial in Python.
Calculate binomial probabilities for n trials
Calculate probabilities under the normal curve
Compute various probability calculations
Convert between z-scores and probabilities
Build confidence intervals for means and proportions
Calculate mean, median, standard deviation, and more
Apply linear transformations to random variables