# Position Fees

A position fee is a periodic charge on an open position during a scheduled mark-price gap. It applies to both sides of the market and is paid into the exchange rather than transferred between longs and shorts. Eligible isolated markets define a charge cadence for each gap, and positions open at a scheduled charge time are charged based on their absolute size.

The [mPerp and Position-Fee API](/developer-guides/trading-api/rwa-and-position-fees) publishes the charge schedule, projected rate, and applied charge.

## User Charge

The exchange publishes a rate and a USD charge per unit for each applied charge. The amount for one position is:

```text
position fee = absolute position quantity * charge per unit in USD
```

The fee applies to both longs and shorts. It does not depend on the position side.

The product and position track cumulative position-fee values. An outstanding fee reduces equity and available margin until it is applied to the quote-token balance.

## Projected Fees

Use `GET /v1/position-fee/projected-rate` to get the next projected charge for one or more products.

A projection contains:

| Field             | Meaning                                    |
| ----------------- | ------------------------------------------ |
| `productId`       | Product UUID.                              |
| `scheduledAt`     | Expected charge time in Unix milliseconds. |
| `cadenceMinutes`  | Minutes between charges in the active gap. |
| `positionFeeRate` | Projected decimal rate.                    |

## Applied Fees

Use `GET /v1/position-fee` with `productId`, `startTime`, and `endTime` to list applied product charges.

Each item contains:

| Field              | Meaning                                       |
| ------------------ | --------------------------------------------- |
| `chargedAt`        | Charge time in Unix milliseconds.             |
| `cadenceMinutes`   | Charge cadence for the gap.                   |
| `positionFeeRate`  | Applied decimal rate.                         |
| `chargePerUnitUsd` | USD charge for one unit of position quantity. |

The product response also contains `cumulativePositionFeeUsd` and `positionFeeUpdatedAt`.

For account history, use the Archive API endpoint `GET /v1/subaccount/position-fee`. It returns the position quantity, reference price, rate, charge per unit, and total position charge for each record.

Use `GET /v1/product/mark-price-gap` for the applicable gap schedule. See [Mutualized Perps](/trading/perpetual-futures/rwa-perpetuals).
