{
  "slug": "inverse-volatility",
  "title": "Inverse-volatility weights",
  "topic": "allocation",
  "summary": "Normalize inverse standalone volatility while keeping the missing correlation assumption visible.",
  "version": "1.0.0",
  "published": "2026-10-16",
  "status": "Educational reference",
  "formula": "w_i = (1 / sigma_i) / sum_j(1 / sigma_j)",
  "inputs": [
    [
      "volatilities",
      "2-50 decimal values, 0.000001 to 10",
      "Strictly positive, same-frequency standalone volatility"
    ]
  ],
  "method": [
    "A 10%, 20%, 40% volatility vector creates weights in the ratio 4:2:1. The common normalization sets total capital weight to one. Multiplying every volatility by the same positive scale leaves the weights unchanged.",
    "This reference is useful for checking a proposed weighting implementation, including its asset order and zero-input policy. It does not estimate volatility from prices. Choose and document the estimator, lookback and cutoff elsewhere before passing a vector here."
  ],
  "limits": [
    "Correlations are absent. In general the output is not an equal-risk-contribution solution, and a low historical volatility estimate can concentrate capital. Zero is rejected instead of receiving an infinite weight. All inputs must use one frequency."
  ],
  "checks": [
    "Scale invariance, normalization and equal-volatility equality.",
    "Zero, negative, null and string values rejected."
  ],
  "related": [
    "inverse-volatility-not-risk-parity",
    "covariance-units"
  ],
  "sources": [
    {
      "title": "MOSEK: risk budgeting and contributions",
      "url": "https://docs.mosek.com/portfolio-cookbook/risk_parity.html"
    }
  ],
  "example": {
    "volatilities": [
      0.1,
      0.2,
      0.4
    ]
  },
  "frozen_result": {
    "schema_version": 1,
    "model_id": "inverse-volatility",
    "model_version": "1.0.0",
    "engine_version": "1.0.0",
    "published_at": "2026-10-16",
    "scope": "Synthetic educational reference calculation. Not a fitted investment strategy, forecast, provider model or client return.",
    "inputs": {
      "volatilities": [
        0.1,
        0.2,
        0.4
      ]
    },
    "outputs": {
      "weights": [
        0.5714285714285714,
        0.2857142857142857,
        0.14285714285714285
      ],
      "weight_sum": 1
    },
    "notes": [
      "Positive same-frequency decimal volatilities only. Correlations are not used; this is not a general equal-risk-contribution solver."
    ]
  }
}
