> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fairground.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Fees and Rebates

> Fee mechanics and rebate allocations

Fairground does not use funding rates. Instead, a fixed fee is charged on every order or position change. The fee is split between minority-side rebates, the Insurance Fund, and protocol fees, based on market conditions.

For **position-level fee and rebate detail** from the API, on-chain parameters, and integration-oriented notes aimed at liquidity providers and integrators, see [Market makers / LPs](/earn/market-makers-lps).

## Trade fee mechanics

Every position change incurs a trading fee on the **notional changed**. The fee rate is a **per-market parameter** in the market's fee configuration. All markets currently charge **4.5 bps (0.045%)**. The fee applies whether you are opening, increasing, reducing, or closing a position.

Examples on this page use the current 4.5 bps rate.

| Action                    | Change in Notional | Fee       |
| ------------------------- | ------------------ | --------- |
| Open `$100` position      | `$100`             | `$0.045`  |
| Increase `$100` -> `$250` | `$150`             | `$0.0675` |
| Reduce `$100` -> `$40`    | `$60`              | `$0.027`  |
| Close `$100` position     | `$100`             | `$0.045`  |

### When fees are charged

* **Open / increase:** Fee is deducted when the order is placed.
* **Reduce / close:** Fee is charged when the order is matched and filled.

<Note>
  If an open/increase order is canceled before fill, the pre-deducted fee is
  reimbursed.
</Note>

### Open/increase sizing impact

For open/increase orders, fee is taken from deposited margin before exposure is finalized, so the resulting notional is slightly below `margin * leverage`.

For deposited margin `M`, fee rate `f` (`0.00045` at 4.5 bps), and target leverage `L`:

```text theme={null}
fee      = (f * L) / (1 + f * L) * M
notional = L * (M - fee)
```

## Where fees go

Each matched side pays the trading fee on its matched notional. For routing purposes, total fees for a match are:

```text theme={null}
matched notional * 4.5 bps * 2
```

Those fees are allocated to:

1. **Minority-side rebates**
2. **[Insurance Fund](/trading/advanced/insurance-fund)**
3. **Protocol fees**

The split is governed by market parameters:

| Parameter                             | Meaning                                                            |
| ------------------------------------- | ------------------------------------------------------------------ |
| **Imbalance entitlement (E)**         | Share of total fees allocated to minority-side rebates             |
| **Max entitlement (E\_max)**          | Maximum rebate share once imbalance reaches its cap                |
| **Max imbalance (I\_max)**            | Imbalance level where the max entitlement is reached               |
| **Insurance fund entitlement (E\_I)** | Share of the post-rebate remainder allocated to the Insurance Fund |

The minority-side share `E` scales linearly with imbalance `I` up to a cap:

```text theme={null}
E = E_max * min(I / I_max, 1)
```

For a match with total trade fees `T`:

* Minority-side rebates: `E * T`
* Insurance Fund: `E_I * (1 - E) * T`
* Protocol fees: `(1 - E_I) * (1 - E) * T`

When executable long and short notional are balanced, imbalance is zero, so `E = 0` and no minority rebate is generated for that matching cycle.

## What minority side means

The protocol groups executable orders into two order sides:

* **Long-side orders:** opening long positions and closing short positions.
* **Short-side orders:** opening short positions and closing long positions.

Executable notional is the notional from orders that can match at the current oracle price and their threshold configuration. The matching cycle compares:

```text theme={null}
long-side executable notional = opening long + closing short
short-side executable notional = opening short + closing long
imbalance = absolute difference between those two sides
```

The side with lower executable notional is the **minority side** for that matching cycle. If the sides are equal, there is no minority-side rebate accrual for that cycle.

<Note>
  When a user action triggers matching, the triggering order is excluded from
  the imbalance calculation. It still contributes to matched notional and fee
  accounting if it is filled.
</Note>

Liquidation reduce flow can change closing-side totals and therefore imbalance and fee routing. See [Liquidation](/trading/advanced/liquidation).

## How rebates are earned

Rebates accrue to open positions on the position side that corresponds to the minority order side, tracked through two cumulative meters, one per position side. After a matching cycle with an imbalance, the meter for the matching position side increases by a per-unit amount:

```text theme={null}
dollars per unit = (E * T) / post-match open interest on that position side
```

When the long order side is the minority, the long-position meter increases. When the short order side is the minority, the short-position meter increases. Open positions on the matching side accrue from any meter increase that occurs after their own snapshot, and realize that accrual on reduce or close.

<Note>
  {" "}

  New positions do **not** inherit past meter values. When your position opens,
  the protocol records the current meter value as your snapshot, and you accrue
  only from later meter increases.{" "}
</Note>

### Position lifecycle behavior

| Event         | Rebate treatment                                                     |
| ------------- | -------------------------------------------------------------------- |
| Open          | Snapshot your side's current meter. No past fee accrual is inherited |
| Increase      | Preserve existing accrual and blend the snapshot for the added size  |
| Partial close | Realize accrued rebate on the closed portion only                    |
| Full close    | Realize accrued rebate on the full position                          |

<Note>
  On reduce and close fills, meter payout uses the meter value **before** the
  current cycle's update. A close does not receive accrual from the same cycle
  that closes it. A new open that fills in the same cycle snapshots the
  pre-update meter, so it does pick up that cycle's increase.
</Note>

### Quick reference

| Matching cycle state                    | Rebate outcome                    |
| --------------------------------------- | --------------------------------- |
| Long-side and short-side notional match | No minority rebate is generated   |
| Long-order side notional lower          | Long-position meter increases     |
| Short-order side notional lower         | Short-position meter increases    |
| Imbalance larger than `I_max`           | Rebate share is capped at `E_max` |

## What rebates are not

* Rebates are not funding payments and do not create periodic holding costs.
* Majority-side traders do not pay an extra "negative rebate" beyond the standard trading fee.
* A placed order is not guaranteed to earn rebates. Rebate accrual depends on filled matches, imbalance, and the position-side meter.
* Historical meter values are not a current rebate opportunity. Current rebate indicators should be based on recent meter changes, not raw cumulative meter levels.
