Skip to main content
AI Fin Hub

Calculator

Returns Distribution Analyzer

Returns CSV → histogram, normal QQ plot, skewness, excess kurtosis, Jarque-Bera test, 3-sigma tail mass. Fat-tail diagnostics.

Runs in your browser. Nothing you enter is uploaded, and no account or API key is needed.

Education, not investment advice. Past performance does not predict future results. How we check our numbers.

1. Upload a returns CSV

Format: date,returns. The first non-date column is analyzed, as decimals (0.012 = 1.2%). Simple or log returns both work: the shape statistics are scale-invariant, only the mean, stdev and median tiles assume decimals. Everything runs in your browser.

What this tool computes

Visualise the shape of your return distribution and quantify its deviation from normality — the precondition most risk metrics (Sharpe, VaR, parametric CVaR) quietly assume. Load the synthetic demo to see a heavy-tailed example, or upload your own returns.

How to use it

  1. Upload a CSV with a date column and one returns column as decimals (0.012 = 1.2%). A heavy-tailed synthetic demo loads by default.
  2. Read the tail-excess ratio: how many more moves beyond 3 standard deviations the series has than a normal distribution predicts.
  3. Check skewness, excess kurtosis and the Jarque-Bera statistic and p-value for normality.
  4. Compare the share of returns beyond ±3σ on each side with the normal 0.135%.
  5. Use the histogram and the normal QQ plot to see where the tails depart from normal: points bending away at the ends mean fat tails.

Questions people ask

What does the analyzer report?

Mean, standard deviation, median, skewness, excess kurtosis, the Jarque-Bera normality test, the share of returns beyond ±3 standard deviations on each side, a 30-bin histogram and a normal QQ plot. It does not fit Student-t or other distributions and does not compute VaR or CVaR.

What's the difference between kurtosis and excess kurtosis?

Kurtosis = E[(X-μ)⁴]/σ⁴. Normal distribution has kurtosis 3. Excess kurtosis = kurtosis − 3, so a Normal has excess kurtosis 0. The analyzer reports excess kurtosis, computed from sample moments as m₄ / m₂² − 3. Daily equity returns usually show clearly positive excess kurtosis: fatter than normal is the rule, not the exception.

Why does the t-distribution usually fit better than Normal?

Returns have fat tails: extreme moves are more common than a normal distribution predicts, and a Student-t with few degrees of freedom has that shape. The analyzer does not fit a t-distribution; it measures how far your series departs from normal (excess kurtosis, the tail-excess ratio, the QQ plot) so you can decide whether a fat-tailed model is needed.

What does VaR mean in plain language?

Value at Risk at 95% is the loss that should be exceeded on only 5% of days: the 5th percentile of the return distribution. CVaR (expected shortfall) is the average loss on the days beyond that threshold. This tool does not compute either; the VaR Backtest tool checks whether a VaR model's exceptions match its confidence level.

Should I trust VaR?

Only as one input. VaR is not subadditive (combining two positions can raise it), it says nothing about losses beyond the threshold, and it depends on the sample and model. Fat tails, which this analyzer measures, are exactly where a normal-based VaR understates risk.

  • Calculators Risk-Adjusted Returns Calculator

    Paste a returns CSV. Sharpe, Sortino, Calmar, Omega, alpha, beta, tracking error, information ratio, max drawdown, and tail moments — plus.

  • Calculators Backtest Overfitting Score

    Upload a backtest trade log and compute Probability of Backtest Overfitting (PBO), Deflated Sharpe Ratio, and the odds your edge survives live trading.

  • Calculators Efficient Frontier Calculator

    Paste a multi-asset returns CSV. See the Markowitz mean-variance frontier, the minimum-variance portfolio, the max-Sharpe (tangency) portfolio.

  • 9 min read How to Read a Backtest Report: 2026 Cheat Sheet

    Five questions a backtest report must answer — edge real, persistent, cheap to trade, bearable, explainable — with the statistics that verify each.

  • 8 min read The Sharpe Ratio Trap

    Sharpe ignores tail risk, assumes Gaussian returns, and is trivially gameable. Four metrics to report alongside it: Sortino, Calmar, tail, deflated Sharpe.

  • 10 min read After-Hours, 24-7, and Pre-Market Asymmetries

    Three boundaries where LLM research built on equity's 9:30–16:00 clock breaks — earnings after close, 24-7 crypto, pre-market Asia/Europe action. Decision rule.

All articles
  • Workflow Size your bets

    Compute Kelly fraction, drawdown bounds, and correlated exposure across a book.

Use it from code

The same calculation as a JavaScript module you can import. It runs where you import it, with no request, key or rate limit.

import { compute } from "https://aifinhub.io/engines/returns-distribution-analyzer.js";

Input and output contract and the guide for agents.