Lognormal Distribution CDF Calculator
The lognormal distribution CDF calculator returns the probability that a positive lognormally distributed variable is less than or equal to a chosen point.
Run — free
Enter x together with the mean and standard deviation of the variable's natural logarithm, commonly written as mu and sigma. The calculator transforms x to the normal scale and evaluates the corresponding cumulative probability. It is useful for reliability, finance, operations, environmental measurements, and any model in which values remain positive and show a long right tail.
Understand what the result means
A lognormal cumulative distribution function answers a threshold question: if a random variable follows the specified lognormal distribution, what is the probability that its observed value will be no greater than x? The returned cumulative probability lies between zero and one. A result of 0.75, for example, means that 75 percent of the modeled population is at or below the supplied point, while 25 percent is above it. This calculator uses the standard parameterization in which the natural logarithm of the variable follows a normal distribution with mean mu and standard deviation sigma. That detail matters because mu is not the arithmetic mean of the original positive variable, and sigma is not its standard deviation on the original scale. When comparing results from software, papers, or datasets, first confirm that they use this log-scale definition. The input x must be positive because a lognormal variable has support only above zero and because the calculation requires the natural logarithm of x.
Choose x, mu, and sigma correctly
Set x to the positive cutoff you care about, using the same original-scale units as the modeled variable. Set mu to the mean of the natural logarithms and sigma to their positive standard deviation. If you have raw observations and want to estimate the parameters, verify that every observation is positive, take the natural logarithm of each value, and then estimate the mean and standard deviation on that transformed sample. Do not enter a geometric mean directly as mu: its natural logarithm is mu, while the geometric mean itself equals exp(mu). Likewise, do not substitute a coefficient of variation or an original-scale standard deviation for sigma without converting the parameterization. Larger values of mu shift the distribution toward larger observations. Larger values of sigma increase its spread and strengthen the right tail. A useful check is x = exp(mu), the distribution median; at that point the cumulative probability should be approximately 0.5 for every positive sigma. Invalid, infinite, or nonnumeric parameters are rejected instead of being silently coerced.
Use the probability in decisions and automation
The result can be read directly as a probability, multiplied by 100 for a percentage, or compared with a service-level target. In reliability analysis, x may be a time or load threshold and the CDF gives the modeled fraction of units that fall at or below it. In inventory and operations, it can describe the share of positive demand, duration, or cost outcomes below a planning limit. In finance, it can support models for positive quantities whose logarithms are approximately normal, provided the assumed parameters and interpretation fit the application. For automated work, send the same three numeric fields to the API and store the returned cumulative_probability with the parameters used, since a probability without its distribution assumptions is difficult to audit later. The computation is deterministic and requires no network data, so identical valid inputs produce identical output. Extremely distant tail values may round to zero or one in ordinary floating-point arithmetic; treat those endpoints as numerical representations of probabilities extremely close to the boundary, not as evidence that the modeled event is logically impossible or certain.
What you can do with it
Evaluate a reliability threshold
Estimate the modeled share of positive lifetimes or loads at or below a specified engineering limit.
Check an operational percentile
Turn a duration, demand, or cost cutoff into a cumulative probability for planning and monitoring.
Validate statistical code
Compare a known set of lognormal parameters and thresholds with a deterministic API result during testing.
FAQ
What does the returned value represent?
It is P(X <= x): the probability that a variable with the specified lognormal distribution is less than or equal to x.
Are mu and sigma measured on the original scale?
No. Mu and sigma are the mean and standard deviation of ln(X), the natural logarithm of the positive variable.
Why must x be positive?
A lognormal variable is strictly positive, and evaluating its CDF through the normal transformation requires ln(x), which is not defined for zero or negative real values.
Why must sigma be greater than zero?
Sigma is a standard deviation and appears in the denominator of the standardization formula. A non-positive value does not define the supported lognormal distribution.
What should the result be when x equals exp(mu)?
It should be approximately 0.5 because exp(mu) is the median of the lognormal distribution.
How much does an API calculation cost?
Each API request costs $0.002. The browser calculator uses the same deterministic calculation.
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/lognormal-cdf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":2,"mu":0,"sigma":1}'const res = await fetch("https://api.kit.forhosting.com/stat/lognormal-cdf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 2,
"mu": 0,
"sigma": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/lognormal-cdf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 2,
"mu": 0,
"sigma": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/lognormal-cdf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":2,"mu":0,"sigma":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":2,"mu":0,"sigma":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/lognormal-cdf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"x": 2,
"mu": 0,
"sigma": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.lognormal_cdf",
"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. |