{
  "tool_id": "returns-distribution-analyzer",
  "slug": "returns-distribution-analyzer",
  "path": "/returns-distribution-analyzer/",
  "mode": "client_side",
  "usage": "Client-side analyzer. Open https://aifinhub.io/returns-distribution-analyzer/ and paste a returns CSV. Histogram, normal QQ plot, Jarque-Bera, and 3-sigma tail-mass diagnostics render in-browser.",
  "methodology": "https://aifinhub.io/methodology/returns-distribution-analyzer/",
  "sample_input": {
    "tool": "returns-distribution-analyzer",
    "bins": 30,
    "returns": [
      0.01,
      0.02,
      -0.005,
      0.015,
      -0.01
    ]
  },
  "input_schema": {
    "type": "object",
    "properties": {
      "tool": {
        "type": "string"
      },
      "bins": {
        "type": "number"
      },
      "returns": {
        "type": "array",
        "items": {
          "type": "number"
        }
      }
    },
    "required": [
      "tool",
      "bins",
      "returns"
    ]
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "mean": {
        "type": "number"
      },
      "stdev": {
        "type": "number"
      },
      "median": {
        "type": "number"
      },
      "skewness": {
        "type": "number"
      },
      "excess_kurtosis": {
        "type": "number"
      },
      "jarque_bera_stat": {
        "type": "number"
      },
      "jarque_bera_p_value": {
        "type": "number"
      },
      "negative_tail_mass": {
        "type": "number"
      },
      "positive_tail_mass": {
        "type": "number"
      },
      "tail_excess_ratio": {
        "type": "number"
      }
    }
  }
}
