What this answers
Skewness answers "does this data lean toward one side, with a longer tail in one direction?" A positive skewness means a longer tail toward higher values; negative means a longer tail toward lower values; near zero suggests rough symmetry. Excess kurtosis answers a different question: "are this distribution's tails heavier or lighter than a normal distribution's?" Positive excess kurtosis means heavier tails and a sharper peak than normal; negative means lighter tails and a flatter peak.
How it is calculated
Both statistics use the bias-corrected sample formulas (the same conventions R's default methods and most statistical software use), based on standardized deviations from the mean raised to the third power for skewness and the fourth power for kurtosis. Excess kurtosis subtracts 3 from raw kurtosis so that a normal distribution's excess kurtosis is exactly 0, making departures from normal directly readable from the sign and size of the number.
Worked example
For the values 1 through 5, a perfectly symmetric set: skewness comes out to exactly 0, confirming no lean toward either tail. Compare that against a set like 1, 2, 2, 3, and 20, where the single extreme value 20 pulls skewness clearly positive, quantifying what a histogram of the same data would show visually as a long right tail.
Assumption audit
What this result does not mean
Neither skewness near 0 nor excess kurtosis near 0 proves your data is normally distributed; they only fail to detect two particular kinds of departure from normal. Conversely, a nonzero value describes your specific sample and does not by itself prove the underlying population is non-normal, especially with a small sample.
Limitations
Both statistics can be unstable and sensitive to individual extreme values in a small sample. Use them alongside a visual check, not as a standalone verdict on your data's shape.