KURTP Function (Calligra Sheets)
Understand Calligra KURTP’s tested normalization discrepancy, with population excess-kurtosis references and a verified explicit numeric alternative.
Verification status: 18 selected formulas were executed through the Calligra Sheets 25.04.2 calculation engine library. Numerical discrepancies and nonfinite results are retained where present. Version 26.08.2 was source-checked only; no GUI-cell or import claim. How formula examples are checked
Normalization discrepancy: The 25.04.2 engine uses sample standard deviation inside KURTP. Its ordinary results differ from the conventional population excess-kurtosis formula shown in the independent column.
Quick answer: =KURTP(1;2;3;4) gives approximately -2.0775 in the tested Calligra calculation engine.
Availability and version history
- Introduced: First release not established; the name is present in Calligra 2.4.0 source.
- Supported in: Calligra Sheets 26.08.2, with no retirement established.
- Scope: Desktop Sheets with the Statistical module. Examples use English semicolon-separated formulas.
- Checked: October 14, 2026. Selected formulas ran through the official 25.04.2 engine library. Source and independent mathematics were checked. This is engine evidence, with no GUI-cell or import verification; 26.08.2 was source-checked only.
What KURTP returns
Population excess kurtosis is μ₄/μ₂²−3, where μ₂ and μ₄ are central moments divided by the population size n. The inspected KURTP implementation instead standardizes by a sample standard deviation and then divides its fourth-power sum by n. The guide retains both quantities rather than presenting them as equivalent. Function help.
Syntax and arguments
=KURTP(value1[;value2;...])
KURTP accepts a list of values and requires at least four counted observations in this implementation, even though a conventional moment ratio can be defined for some smaller nonconstant populations. Array/range registration is source-verified; the executed examples are scalar lists. Brackets indicate optional arguments and are not entered in the formula. Registration and implementation.
Reproducible engine examples
The engine and mathematical columns are separate. Results are rounded to twelve decimal places, or thirteen significant digits in scientific notation for very small or large values. This is a display choice, not an accuracy guarantee. NaN and infinity are nonfinite outputs; an engine error flag is checked separately from those values.
| Formula | Engine result | Independent mathematical reference |
|---|---|---|
=KURTP(1;2;3;4) |
-2.0775 |
-1.36 |
=KURTP(1;2;3;4;5) |
-1.912 |
-1.3 |
=KURTP(1;1;1;2) |
-1.6875 |
-0.666666666667 |
=KURTP(1;2;3;10) |
-1.7454 |
-0.7696 |
=KURTP(2;4;6;8) |
-2.0775 |
-1.36 |
=KURTP(11;12;13;14) |
-2.0775 |
-1.36 |
=KURTP(-1;-2;-3;-10) |
-1.7454 |
-0.7696 |
=KURTP(1;2;2;3;9;10) |
-1.918921262574 |
-1.443246618106 |
Practical worksheet
For the population 1,2,3,4, the mean is 2.5, μ₂=1.25 and μ₄=2.5625. Conventional excess kurtosis is 2.5625/1.25²−3=−1.36. The tested KURTP result is −2.0775, so it should not be substituted for the conventional statistic.
An explicit normalization formula for these four values was separately engine-tested:
=4*((1-2.5)^4+(2-2.5)^4+(3-2.5)^4+(4-2.5)^4)/((1-2.5)^2+(2-2.5)^2+(3-2.5)^2+(4-2.5)^2)^2-3
It returns −1.36. This is a verified alternative for the stated numeric dataset; it is not an assertion that every mixed-range worksheet is validated.
Advanced interpretation and checks
For a purely numeric nonconstant list, the implemented value is ((n−1)/n)²×(conventional excess+3)−3. At n=4 and conventional excess −1.36, this gives (3/4)²×1.64−3=−2.0775. The factor approaches one as n grows, but it is material for small populations.
The output still has translation and scale invariance for the numeric examples. The executed difference below checks a rescaled list; that identity cannot repair or detect the normalization discrepancy by itself.
The executed advanced check was:
=KURTP(1;2;3;4)-KURTP(2;4;6;8)
Its engine result was 0.
Boundaries and troubleshooting
Mixed text and logical arguments introduce a second problem: full-value count and mean are combined with numeric-only spread. The table shows how text “abc” or “5” changes the result. Use clean numeric observations, and choose the normalization explicitly. Constant data gives #DIV/0!; fewer than four counted inputs gives #VALUE!. Current source retains the same formula, but only the named 25.04.2 engine was executed.
| Formula | Engine result |
|---|---|
=KURTP(1;2;3) |
#VALUE! |
=KURTP(2;2;2;2) |
#DIV/0! |
=KURTP(1;2;3;4;"abc") |
-0.552 |
=KURTP(1;2;3;4;"5") |
-0.552 |
=KURTP(1;2;3;4;TRUE()) |
-1.915968 |
=KURTP(1;2;3;4;FALSE()) |
-0.552 |
=KURTP() |
#VALUE! |
=KURTP(1;2;3;4;1/0) |
#DIV/0! |
Official evidence and precision scope
- Function-specific implementation
- Versioned function help
- Shape Defaults helper
- Shape Aggregation helper
- Shape Walk helper
- Stddev helper
The statistical module and value-calculation helpers are byte-identical between the inspected 25.04.2 and 26.08.2 sources. That comparison supports the source discussion but does not establish later-version native output, every locale or arbitrary extreme-parameter accuracy.