---
title: "Retrieve Position Returns (MWRR / TWRR)"
method: GET
path: "/positions/{position_id}/returns"
tags: ["performance"]
---

# Retrieve Position Returns (MWRR / TWRR)

`GET /positions/{position_id}/returns`

Retrieve the position's MWRR and TWRR for the requested period.

## Path parameters

- `position_id` string, required

## Query parameters

- `period` '1d' | '1w' | '1m' | 'this-month' | '3m' | '6m' | 'ytd' | '1y' | 'all', required

## Response `200`

OK

- PositionReturns
  - `flags` ReturnsFlag[], required — Signals explaining clamps, missing data, or uncomputable rates.
  - `mwrr` string, nullable, required — Cumulative money-weighted rate of return as a decimal; `null` when uncomputable.
  - `period` '1d' | '1w' | '1m' | 'this-month' | '3m' | '6m' | 'ytd' | '1y' | 'all', required
  - `period_end` string, date-time, required — Resolved end of the period (the `asof` time of the computation).
  - `period_start` string, date-time, required — Resolved start of the period, inclusive. Clamped to the scope's inception when the requested period starts earlier.
  - `position` string, required — ID of the position the returns were computed for.
  - `twrr` string, nullable, required — Cumulative time-weighted rate of return as a decimal; `null` when uncomputable.

## Other responses

- `400` — Bad Request

## Changes

- **2026-07-13** `03da9bc8e86b` — 2 info
  - api tag `performance` added
  - api tag `Performance` removed

[Change history](https://skmtc.dev/joinsophic/apis/sophic-engine-api/changes/positions/:position_id/returns/get.md)

---

[API](https://skmtc.dev/joinsophic/apis/sophic-engine-api.md) · [All operations](https://skmtc.dev/joinsophic/apis/sophic-engine-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/joinsophic/sophic-engine-api/revisions/5b4c43e2941b/schema)
