Student t Distribution CDF Calculator
The Student t distribution CDF calculator returns the probability that a random variable following a Student t distribution is less than or equal to a selected t value.
Run — free
Enter any finite t statistic and positive degrees of freedom to obtain a deterministic cumulative probability between zero and one. This is useful for checking test statistics, translating t values into tail areas, validating statistical software, and exploring how the heavier tails of the t distribution change as degrees of freedom increase.
What the cumulative probability means
A cumulative distribution function answers a precise question: if a random variable follows the selected distribution, what probability lies at or below a particular value? Here, the selected distribution is Student's t distribution, the boundary is the supplied t statistic, and the result is a number from zero through one. A negative t value produces a probability below one half, zero produces exactly one half, and a positive t value produces a probability above one half. The distribution is symmetric, so results at opposite t values complement one another. This calculator evaluates a single point rather than conducting a complete hypothesis test. It does not decide whether an effect is important, select a significance threshold, or determine whether a one-sided or two-sided test is appropriate. Those choices belong to the study design. Use the returned cumulative probability as a reliable building block for those later calculations, or as a direct check of a probability reported by statistical software, a textbook, or an analysis pipeline.
Choose t and degrees of freedom correctly
Supply t as a finite numeric statistic, including its sign. Do not enter an absolute value unless your intended calculation specifically discards direction, because the sign determines which side of the distribution the cumulative probability describes. Degrees of freedom control the shape of the Student t distribution and must be positive. In a familiar one-sample t test, degrees of freedom are commonly the sample size minus one, but other models use different formulas. Regression, paired tests, unequal-variance comparisons, and more elaborate designs can each derive degrees of freedom differently, including non-integer values. Take the value from the statistical method you are actually using rather than guessing it from the number of observations. Smaller degrees of freedom produce heavier tails, while larger values make the distribution approach the standard normal distribution. The calculator accepts positive fractional degrees of freedom because valid approximations, such as the Welch procedure, can yield them. It rejects zero, negative, missing, infinite, and nonnumeric degrees of freedom instead of silently returning a misleading result.
Turn the CDF into tail probabilities
The output is the lower-tail probability P(T ≤ t). For a right-tail probability at the same t value, subtract the returned result from one. For a left-tailed test, the CDF itself is normally the relevant tail area. For a two-sided test based on a symmetric t distribution, compute twice the smaller of the lower-tail probability and its complement. This produces the probability associated with outcomes at least as far from zero in either direction, but it should only be called a p-value when the assumptions and test definition justify that interpretation. Floating-point arithmetic can make probabilities in extremely distant tails round to zero or one, so treat those endpoints as values beyond ordinary machine precision rather than proof that an event is logically impossible. The implementation uses the regularized incomplete beta function and a bounded continued fraction, with no network requests, random values, or current-time dependency. Browser and API executions therefore apply the same deterministic calculation. Automated API requests cost $0.002 each, while the browser calculation is available directly on the page.
What you can do with it
Check a reported t statistic
Convert a published t value and its degrees of freedom into a lower-tail cumulative probability for an independent numerical check.
Build a hypothesis-test workflow
Use the CDF as the deterministic first step when deriving left-tail, right-tail, or two-sided probabilities in an analysis pipeline.
Explore distribution shape
Compare the same t value across several degrees of freedom to see how heavy tails gradually approach the normal distribution.
FAQ
What exactly does the result represent?
It is P(T ≤ t), the probability at or below the supplied t value for a Student t random variable with the supplied degrees of freedom.
Can degrees of freedom be fractional?
Yes. Any positive finite value is accepted, including fractional values produced by methods such as the Welch approximation.
How do I obtain a right-tail probability?
Subtract cumulative_probability from one. Keep the original sign of t so that you use the intended side of the distribution.
How do I obtain a two-sided probability?
For a symmetric t test, calculate two times the smaller of cumulative_probability and one minus cumulative_probability, provided that this matches your test definition.
What happens when degrees of freedom are zero or negative?
The request fails with an invalid input error because a Student t distribution requires positive degrees of freedom.
What does an API calculation cost?
Each API request costs $0.002. The same deterministic calculation can also run in the browser.
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/t-cdf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"t":1.5,"degrees_of_freedom":10}'const res = await fetch("https://api.kit.forhosting.com/stat/t-cdf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"t": 1.5,
"degrees_of_freedom": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/t-cdf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"t": 1.5,
"degrees_of_freedom": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/t-cdf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"t":1.5,"degrees_of_freedom":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"t":1.5,"degrees_of_freedom":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/t-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
{
"t": 1.5,
"degrees_of_freedom": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.t_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. |