Skewness and kurtosis calculator
The sample 1, 2, 3, 4, 5, 12 has a mean of 4.5 and a variance of 15.5, leans to the right and has heavier tails than a normal curve. Paste at least three numbers to get skewness and excess kurtosis together, with shape labels. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Numbers
- 1, 2, 3, 4, 5, 12
- Quantity
- 6
- Mean
- 4.5
- Variance
- 15.5
- Std dev
- 3.937003937
Skewness and kurtosis describe the shape of a numeric sample beyond center and spread. Sample skewness measures whether the mass of the data leans left or right of the mean: positive values indicate a longer right tail, negative values a longer left tail, and values near zero an approximately symmetric profile. Excess kurtosis compares tail weight and peakedness to a normal distribution whose excess kurtosis is zero: positive excess kurtosis means heavier tails and a sharper peak (leptokurtic), negative means lighter tails and a flatter center (platykurtic). This capability takes a list of at least three finite numbers, rejects constant series where the sample standard deviation is zero, and returns mean, sample variance, sample standard deviation, sample skewness, excess kurtosis, and short shape labels in one deterministic call.
What sample skewness and excess kurtosis mean on a list of numbers
Descriptive shape statistics answer questions that mean and standard deviation alone cannot. After computing the arithmetic mean μ of n observations, the sample standard deviation s uses Bessel’s correction: the square root of the sum of squared deviations divided by n minus one. Sample skewness G1 scales the sum of cubed standardized residuals by n over (n minus one) times (n minus two).
That bias-adjusted Fisher-Pearson coefficient matches the definition used by common spreadsheets under the name SKEW, so a classroom answer key and an Excel workbook can agree. Positive G1 means the right tail is longer or heavier than the left; negative G1 means the opposite; values near zero suggest approximate symmetry, though small samples can look mildly skewed by chance.
Excess kurtosis for n at least four uses the bias-adjusted G2 formula, equivalent to Excel KURT: it combines the fourth standardized moment with a correction that subtracts the normal baseline, so a perfect normal sample targets zero rather than three. When n equals three the unbiased G2 denominator vanishes, so this calculator reports the simpler moment excess kurtosis m4 over m2 squared minus three and labels the method explicitly.
Practical tips, limits, and related searches
When teaching, pair a right-skewed example such as one two three four five twelve with a near-symmetric ladder such as one two three four five and with a constant series such as seven seven seven to demonstrate the zero standard deviation error. Prefer skewness over raw mean comparison when you care about tail direction; prefer excess kurtosis when outlier frequency relative to a normal model matters. Shape labels use a simple plus or minus zero point five threshold for quick reading—they are not formal hypothesis tests.
Sibling capabilities in this kit compute mean median mode or quartiles and fences; this page is specifically for people searching for a skewness kurtosis calculator on a plain list of numbers, not a multi-column CSV profile and not center-only summaries.
What you can do with it
Process and sensor screening
Flag batches that suddenly become right-skewed or heavy-tailed before they pollute downstream averages and control charts.
Finance and risk notebooks
Summarize return series shape with sample skewness and excess kurtosis without shipping a full stats stack into every micro-service.
FAQ
Why do I need at least three numbers?
Sample skewness uses the bias-adjusted G1 formula that is defined only for n ≥ 3.
What if every value is the same?
Sample standard deviation is zero, so standardized skewness and kurtosis are undefined.
Is excess kurtosis the same as raw kurtosis?
No. Excess kurtosis subtracts three so a normal distribution targets zero. Positive excess kurtosis means heavier tails than normal; negative means lighter tails.
Is the skewness kurtosis calculator free?
The browser tool is free and runs locally.
What does a positive excess kurtosis mean?
It means heavier tails and a sharper peak than a normal distribution, which is called leptokurtic. A negative value means lighter tails and a flatter centre, called platykurtic, and a value near zero is close to the normal shape.
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/skewness-kurtosis \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers":[1,2,3,4,5,12]}'const res = await fetch("https://api.kit.forhosting.com/stat/skewness-kurtosis", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numbers": [
1,
2,
3,
4,
5,
12
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/skewness-kurtosis",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numbers": [
1,
2,
3,
4,
5,
12
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/skewness-kurtosis", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numbers":[1,2,3,4,5,12]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numbers":[1,2,3,4,5,12]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/skewness-kurtosis", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"numbers": [
1,
2,
3,
4,
5,
12
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.skewness_kurtosis",
"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
What sample skewness and excess kurtosis mean on a list of numbers
Together mean, variance, std_dev, skewness and excess_kurtosis give a compact shape portrait of a short sample without fitting a full density model.
How to call the API and what comes back
Numeric strings inside the array are coerced; a comma or whitespace separated string is also accepted for simple text forms. Use it from homework checkers, quality-control screens for asymmetric process data, finance notebooks hunting heavy tails, A-B dashboards that need a quick shape flag, or any workflow that wants skewness and kurtosis without installing a statistics package on every machine. Send a JSON body with one required field named numbers: an array of at least three finite numbers. Aliases values, data and list are accepted and behave the same. On success the response includes count as n, numbers as an ascending sorted copy for inspection, mean, variance as the sample variance with n minus one in the denominator, std_dev as its square root, skewness as G1, excess_kurtosis as G2 when n is at least four or moment g2 when n is three, kurtosis_method naming which formula was used, skew_shape as one of right_skewed, left_skewed or approximately_symmetric, kurtosis_shape as leptokurtic, platykurtic or mesokurtic, plus min and max. Failed validation—missing numbers, fewer than three points, a zero standard deviation constant series, non-finite entries, or a list longer than one hundred thousand values—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and related searches
Keep lists within the published size cap so interactive Worker and browser paths stay fast; one hundred thousand finite numbers is ample for classroom sets and most operational samples. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap while students type two-point lists by mistake. Prefer sending the raw list once and reading mean, variance, std_dev, skewness and excess_kurtosis from one response instead of calling separate tools: one contract, one charge unit, identical results in browser and API.
Integration use cases
Homework and lab answer keys
Give students a short numeric sample; check their hand-computed sample skewness and excess kurtosis against a deterministic browser or API result.
Technical questions
What does this skewness kurtosis calculator return?
For a valid list it returns count, sorted numbers, mean, sample variance, std_dev, sample skewness, excess_kurtosis, kurtosis_method, shape labels, min and max.