---
title: "Ulcer Performance Index"
method: POST
path: "/portfolios/analysis/drawdowns/ulcer-performance-index"
tags: ["Portfolio Analysis / Drawdowns"]
---

# Ulcer Performance Index

`POST /portfolios/analysis/drawdowns/ulcer-performance-index`

Compute the Ulcer Performance Index of a portfolio.

References
* Carl R. Bacon, Practical Portfolio Performance Measurement and Attribution
* [Peter G. Martin, Ulcer Index, An Alternative Approach to the Measurement of Investment Risk & Risk-Adjusted Performance](http://www.tangotools.com/ui/ui.htm)

## Request body

- object
  - `riskFreeReturn` number — The constant risk-free arithmetic return over the considered time period, in percentage; exclusive with benchmarkReturns
  - `benchmarkReturns` number[] — benchmarkReturns[t] is the arithmetic return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with riskFreeReturn
  - `portfolios` object[], required
    - `portfolioReturns` number[] — portfolioReturns[t] is the arithmetic return of the portfolio at the time t; exclusive with portfolioValues
    - `portfolioValues` number[] — portfolioValues[t] is the value of the portfolio at the time t; exclusive with portfolioReturns

## Response `200`

OK

- object
  - `portfolios` object[], required
    - `portfolioUlcerPerformanceIndex` number, required — The Ulcer Performance Index of the portfolio

---

[API](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer.md) · [All operations](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/portfoliooptimizer/portfolio-optimizer/revisions/d047148d28bd/schema)
