---
title: "Modified Gerber Covariance Matrix"
method: POST
path: "/assets/covariance/matrix/estimation/gerber/modified"
tags: ["Assets / Covariance Matrix Estimation"]
---

# Modified Gerber Covariance Matrix

`POST /assets/covariance/matrix/estimation/gerber/modified`

## Request

- Base URL: `https://api.portfoliooptimizer.io/v1`
- URL: `https://api.portfoliooptimizer.io/v1/assets/covariance/matrix/estimation/gerber/modified`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/docs/assets/covariance/matrix/estimation/gerber/modified/post.ts> (a function with typed inputs; its response is checked against the schema)

Compute the modified Gerber asset covariance matrix, from either:
* Asset returns
* Asset close-to-close prices, from which asset logarithmic returns are computed

References
* [Gerber, Sander and Ernst, Philip and Markowitz, Harry and Miao, Yinsen and Saini, Mrinal and Smyth, William and Cuttler, Jason and Sargen, Paul, The Modified Gerber Statistic: A Practical Nonparametric Covariance Estimator for Portfolio Construction (July 27, 2026)](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7190778)

## Request body

- union
  - object
    - `assets` object[], required
      - `assetReturns` number[], required: assetReturns[t] is the return of the asset at the time t; all assetReturns arrays must have the same length
      - `gerberWeightsPenaltyParameter` number: The penalty parameter controlling how quickly the Gerber weights decrease when centered percentile scores of asset returns diverge
      - `gerberWeightsCurvatureParameter` number: The curvature parameter in the Gerber weighting function
  - object
    - `assets` object[], required
      - `assetPrices` object[], required: assetPrices[t] contains price information for the asset at the date t
        - `date` string, required: The date corresponding to the date t in format YYYY-MM-DD; all dates must be distinct
        - `close` number, required: The close price of the asset at the date t
      - `gerberWeightsPenaltyParameter` number: The penalty parameter controlling how quickly the Gerber weights decrease when centered percentile scores of asset returns diverge
      - `gerberWeightsCurvatureParameter` number: The curvature parameter in the Gerber weighting function

## Response `200`

OK

- object
  - `assetsCovarianceMatrix` array[], required: assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j
    - number[]

## Changes

- **2026-11-06** `3479cfc03997`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/changes/assets/covariance/matrix/estimation/gerber/modified/post.md)

---

[API](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer.md) - [All operations](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/llms.txt) - [OpenAPI document](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/revisions/3479cfc03997?raw)
