Poisson PMF calculator
Exactly 3 events when 2.5 are expected on average has a probability of 0.21376301724973648. Type the rate and the count you care about to isolate that single bar of the Poisson histogram, for emails per hour, cable defects or goals in a match. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Lambda
- 2.5
- K
- 3
- Probability
- 0.2137630172
- Pmf
- 0.2137630172
The Poisson probability mass function answers a single precise question: if events arrive at average rate lambda per interval, what is the probability of observing exactly k events in one interval? Call centres use it for ticket volumes, biologists for colony counts, reliability engineers for rare failures, and students for exam drills that demand the closed-form e to the minus lambda times lambda to the k over k factorial. This Poisson PMF calculator accepts a non-negative rate and a non-negative integer count, evaluates the mass in log-space for numerical stability, and returns the probability together with the textbook formula string.
What the Poisson PMF computes and when it applies
A Poisson random variable counts discrete events in a fixed interval of time or space when arrivals are independent, the average rate is constant, and two events cannot occupy the exact same instant in the modelling idealisation. The probability mass function is the single-term formula P of X equals k equals e to the power of negative lambda, times lambda to the power k, divided by k factorial. Here lambda is the expected number of events per interval, and k is the exact count whose probability you want.
Unlike a cumulative distribution, the PMF does not sum neighbouring terms: it isolates one bar of the discrete histogram. That focus is what people type into search when they need a poisson pmf calculator rather than a full distribution dashboard. Classic examples include the number of emails arriving in an hour, defects on a length of cable, goals in a match under a constant scoring rate, or radioactive decays in a minute.
The model is wrong when events cluster, when the rate drifts mid-interval, or when k is continuous; for those problems use other families.
Who needs the chance of an exact count
Homework platforms and statistics courses need a deterministic oracle for the exact-count term so graders can mark P of X equals k without floating-point chaos from naive power-then-divide implementations. Operations dashboards plot a single mass when stakeholders ask the probability of exactly n tickets in the next hour rather than at most n. Simulation harnesses sample reference probabilities against this closed form before comparing Monte Carlo frequencies.
Pin expected probabilities in continuous integration, keep lambda and k within the documented limits, and you get reproducible masses for LMS plugins, edge workers, and research notebooks without standing up a full statistics stack.
What you can do with it
Classroom PMF drills
Students submit lambda and k and check P(X=k) against hand calculations of e^{-λ} λ^k / k! without spreadsheet formula errors.
Operations exact-count risk
Estimate the probability of exactly k arrivals, defects, or failures in an interval when only the mean rate is known.
Test oracles for simulators
Compare Monte Carlo frequencies for a single count against a deterministic Poisson PMF reference in CI.
FAQ
How do I compute the Poisson PMF P(X = k)?
Send non-negative lambda (rate) and non-negative integer k. as probability and pmf.
What happens if k is negative?
Event counts must be non-negative integers; negative k is outside the Poisson support.
Is this the same as a Poisson CDF?
No. This calculator returns only the exact-count mass P(X=k). A CDF would sum P(X≤k); use a cumulative tool when you need the left tail.
When is the Poisson model the wrong choice?
When events cluster together, when the rate drifts during the interval, or when the quantity is continuous rather than a whole count. In those cases another family of distributions fits better.
What does a count of 0 give?
It gives e to the power of minus the rate, the chance that no event happens at all in the interval. If the rate itself is zero, all of the probability sits at a count of 0.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/stat/poisson-pmf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lambda":2.5,"k":3}'const res = await fetch("https://api.kit.forhosting.com/stat/poisson-pmf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lambda": 2.5,
"k": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/poisson-pmf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lambda": 2.5,
"k": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/poisson-pmf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lambda":2.5,"k":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lambda":2.5,"k":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/poisson-pmf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"lambda": 2.5,
"k": 3
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.poisson_pmf",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Negative lambda or negative k fails with invalid_input instead of inventing a mass outside the Poisson domain.
What the Poisson PMF computes and when it applies
Within its assumptions the formula is exact, not an approximation, and this endpoint evaluates that exact expression with stable logarithms so large k does not overflow intermediate powers of lambda before the factorial cancels them.
Input contract, response fields, and validation errors
Numeric strings that parse as ordinary decimals or integers are accepted so form widgets can submit text fields without client-side casting. Lambda may be zero, which places all mass at k equals zero. K may be zero, which returns e to the minus lambda. On success the body echoes lambda and k, returns probability and the synonym field pmf (identical values for clients that prefer either name), and includes formula as the string P(X=k) equals e to the minus lambda times lambda to the k over k factorial. Failed validation is not billed. POST a JSON body with two required fields: lambda, a finite non-negative number for the rate (aliases rate and mean are accepted when lambda is omitted), and k, a non-negative integer event count. If k is negative, non-integer, missing, or not finite, the same error code is raised with a field-specific message. Values are IEEE doubles; for routine classroom and operations ranges the mass is accurate enough to pin in automated tests. Extremely large lambda beyond the published ceiling is rejected so Worker isolates stay bounded. Successful calls use the published $0.002 base price on the API path; the browser tool remains free for interactive checks.
Where an exact-count Poisson PMF API earns its keep
Pair this endpoint with a separate cumulative tool when you need the left-tail sum; this landing stays focused on the single-term mass so search intent and API contract stay aligned.
Technical questions
What happens if lambda is negative?
The task fails with invalid_input. A Poisson rate cannot be negative, so the request is rejected and not billed.
What does the Poisson PMF calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.