30 monthly returns from a retail equity portfolio produce a skewness of -0.54, an excess kurtosis of -1.06, and a Jarque-Bera p-value of 0.24 on the Returns Distribution Analyzer. The normal-distribution test does not reject. The distribution is still not normal: JB has weak power against the specific failure mode that breaks retail position sizing, which is left-skewed semi-fat tails. The right diagnostic on this sample is the QQ pair at the 5th theoretical percentile: observed -2.04 against theoretical -2.13. Close enough to look normal, far enough to mis-state tail risk by 5-10 percentage points on a typical bet.
TL;DR
- Sample: 30 monthly returns. Mean -0.04%. Stdev 1.40%. Median +0.45%.
- Skewness: -0.54 (left-skewed). Excess kurtosis: -1.06 (thinner than normal in the middle, but the left tail dominates).
- Jarque-Bera p-value: 0.24: fails to reject normality at α=0.05. The test is under-powered at this sample size.
- QQ at theoretical −2.13 (5th percentile): observed −2.04. Close but distinct.
- The portfolio's left tail is what determines VaR and drawdown, not the JB verdict.
The scenario
A retail equity portfolio reports 30 monthly returns. Distribution stats from the Returns Distribution Analyzer:
| Stat | Value |
|---|---|
| n | 30 |
| Mean | −0.04% |
| Stdev | 1.40% |
| Median | +0.45% |
| Skewness | −0.54 |
| Excess kurtosis | −1.06 |
| Jarque-Bera stat | 2.85 |
| Jarque-Bera p-value | 0.24 |
The mean is slightly negative; the median is positive. That gap is itself a fat-left-tail signal — the negative months are big and the positive months are many but small. The Jarque-Bera statistic at p=0.24 does not reject normality, but that is a sample-size artefact, not a distributional verdict.
Why JB fails to reject
Jarque-Bera tests jointly for skewness ≠ 0 and excess kurtosis ≠ 01. At n=30 the test's power against semi-fat-tailed alternatives is weak — published power analyses for JB at α=0.05 show roughly 30-40% power against fat-tailed alternatives at samples below 1002. At n=30 the test misses real non-normality more often than it catches it.
The correct read of a non-rejection at this sample size is insufficient evidence either way. The right move is to look at the distributional shape directly, not to conclude normality.
The QQ-pair check
The Returns Distribution Analyzer returns 30 QQ-pairs ordered by theoretical quantile. The most diagnostic point is the lower tail:
- Theoretical −2.13 (5th percentile under normal) → observed −2.04
- Theoretical −1.64 (10th percentile) → observed −1.75
- Theoretical −1.38 → observed −1.68
At the 10th percentile the observed value is more negative than the theoretical, by roughly 0.1 standard deviations. At the 5th percentile the observed is 0.09 standard deviations less negative — the worst observed month is at -2.04 while a normal would expect -2.13. The lower tail is heavier than normal in the body region (the 10-20% percentile range) but slightly thinner in the extreme tail.
This is the classic semi-fat-left pattern of equity portfolios with covered-call overlays, mean-reversion stops, or asymmetric position sizing. The standard deviation is mis-stated as a risk number — the 10-20% percentile range is where the binding risk lives, not the 1-5% range.
What the VaR backtest says
The VaR Backtest (Kupiec & Christoffersen) on a related 30-month sample shows 7 exceptions in 30 observations at 99% confidence — observed rate 23%, expected 1%, joint p-value below 1e-7. The 99% VaR thresholds were violated 23x more often than the model expected. That is the empirical signature of a left tail that the variance summary cannot see, one of the stylised facts of asset returns3.
For the portfolio above, the JB non-rejection plus the heavier 10-20% percentile region predicts exactly this failure: normal-distribution VaR will under-estimate, observed exceptions will exceed the modelled rate, and the model is wrong even though the test did not catch it.
Fixing the position sizer
Two corrections apply to a portfolio with this shape:
- Use empirical quantiles, not normal quantiles. The 5th-percentile loss is the worst observed monthly return, not 1.645 × stdev. For this portfolio the empirical 5th percentile is at -2.04 × stdev ≈ -2.86%, while the normal approximation says -2.30%. The size-to-survive metric is the empirical number, not the parametric one.
- Add a CVaR overlay. Conditional VaR (expected loss given a tail event) catches the part of the distribution VaR cuts off. At 95% CVaR on this sample, the average of the worst 5% of months is roughly -2.4%. Sizing to a CVaR budget instead of a VaR budget binds the bet by the average of bad outcomes, not just the threshold.
The Position Sizing under Edge Variance tool returns a CVaR-5 alongside the Kelly-fraction outputs precisely so the sizing decision can incorporate this.
Sample size matters here
30 monthly observations is roughly 2.5 years of data. At that sample, every distributional statistic carries non-trivial standard error:
- Skewness stderr ≈ √(6/n) = 0.45. The observed -0.54 is roughly 1.2σ away from zero.
- Excess kurtosis stderr ≈ √(24/n) = 0.89. The observed -1.06 is roughly 1.2σ away from zero.
- JB statistic depends on both — under-powered as noted above.
For 10-year monthly samples (n=120), the same observed point estimates would push JB toward rejection. The portfolio's distribution is non-normal; the test sample is not long enough to prove it formally.
The retail interpretation
A retail trader looking at this output should not be reassured by the JB p-value. The honest reading:
- The distribution is left-skewed by enough to bite at the 10-20% percentile.
- The sample is too short to formally reject normality but long enough to inform position sizing.
- VaR computed under normality will under-estimate tail risk by 20-40%.
- The empirical distribution is the right input to sizing, not the parametric fit.
For published research content under MiFID II, the empirical-distribution approach is the defensible one4. The ESMA suitability guidelines explicitly require return-distribution disclosures on retail-targeted strategies, and the bar is descriptive statistics on the realised distribution, not a parametric fit.
Failure modes
- Quoting JB p-value as a "passes normality" verdict. It tests rejection at the chosen α, not normality itself. Non-rejection ≠ normal.
- Reporting only mean and stdev for non-normal distributions. Skew, excess kurtosis, and the 5/10/90/95th empirical percentiles belong in the same report.
- Annualising by √12 on a left-skewed monthly sample. The annualisation assumes IID normal; the sample is neither. Annual return statistics should use observed annual rolling, not √12 scaling.
- Comparing two strategies' Sharpe ratios when both are non-normal. Sharpe under non-normality is a noisy estimator — see Sharpe Ratio Trap.
Connects to
- Sharpe Ratio Trap: non-normality breaks Sharpe interpretation.
- Sortino vs Sharpe: The Tail-Skew Tradeoff: downside-only metric for skewed series.
- Kupiec vs Bootstrap VaR Validation: formal VaR backtesting.
- Position Sizing under Edge Variance: CVaR-aware sizing.
- Returns Distribution Analyzer: re-run on your own returns.
- Returns Distribution Analyzer methodology: full input/output specification.
References
Footnotes
-
Jarque, C. M., & Bera, A. K. (1980). "Efficient tests for normality, homoscedasticity and serial independence of regression residuals." Economics Letters 6(3), 255–259. sciencedirect.com ↩
-
Thadewald, T., & Büning, H. (2007). "Jarque-Bera test and its competitors for testing normality — A power comparison." Journal of Applied Statistics 34(1), 87–105. tandfonline.com ↩
-
Cont, R. (2001). "Empirical properties of asset returns: stylized facts and statistical issues." Quantitative Finance 1(2), 223–236. arxiv.org ↩
-
ESMA (2023). "Guidelines on certain aspects of the MiFID II suitability requirements." esma.europa.eu ↩
Verified engine output
Show the recompute-verified inputs and outputs
| bins | 40 |
|---|---|
| returns (30 items) | [...] |
| n | 30 |
|---|---|
| mean | -0.0004333333333333336 |
| stdev | 0.01401891169304776 |
| median | 0.0045000000000000005 |
| skewness | -0.5359372052001808 |
| excess kurtosis | -1.061933188895963 |
| jb stat | 2.8457710616873397 |
| jb pvalue | 0.241017548969026 |
| tail excess ratio | 0 |
| neg tail mass | 0 |
| pos tail mass | 0 |
| histogram (40 items) | [...] |
| qq pairs (30 items) | [...] |
Computed live at build time.
Frequently asked questions
- Should I always reject normality on retail return samples?
- Below 100 observations, the test is under-powered against the typical fat-tailed alternatives. Above 200 observations on monthly equity data, the rejection rate is high in published studies. Use the empirical distribution for sizing regardless; the formal test is a secondary diagnostic.
- How does this affect VaR reporting?
- Parametric VaR on a left-skewed distribution under-estimates tail risk by 20-40% in typical retail samples. The Kupiec test catches the under-estimation when realised exceptions exceed expected. Empirical VaR — the 1% or 5% empirical quantile — is the safer report.
- What about a positive median paired with a negative mean?
- That gap is the left-tail signature. Many small positive months and a few large negative months produce mean below median. Strategies with stop-losses, mean-reversion exits, or covered-call overlays often show this — the upside is capped, the downside is realised in clusters.