> For the complete documentation index, see [llms.txt](https://docs.useicaria.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.useicaria.xyz/protocol/pricing-and-spreads.md).

# Pricing and spreads

The arithmetic behind every vault quote, and where each of its inputs comes from.

There is one construction and every vault quote follows it. Discretion plays no part anywhere in a price: each term is a public contract read, so any quote can be rebuilt from chain state by anyone who cares to.

## The formula

```
ask = mid × (1 + (baseHalfSpread × regimeMultiplier + skewTerm + feeBps) / 10_000)
bid = mid × (1 − (baseHalfSpread × regimeMultiplier − skewTerm + feeBps) / 10_000)
```

| Term               | Source                                               | What it prices                                                                                   |
| ------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `mid`              | `OracleRouter`, carrying the guarded Chainlink price | What the asset is worth right now                                                                |
| `baseHalfSpread`   | Tier parameter                                       | Carrying inventory through regular session, plus whatever oracle latency remains                 |
| `regimeMultiplier` | [Regime](/protocol/trading-regimes.md) state         | The gap risk that comes with extended hours or a closed underlying                               |
| `skewTerm`         | Vault inventory                                      | What it costs to push the vault further from target, signed so the corrective side goes negative |
| `feeBps`           | `ParamController`                                    | The protocol's charge, given its own line on the ticket                                          |

## Initial parameters

Basis points are the unit, [tier](/assets/listing-framework.md) fixes the value, and the timelock is the only way any of it moves.

| Tier | Base half-spread | Regular clip | Examples                           |
| ---- | ---------------- | ------------ | ---------------------------------- |
| A    | 10 bps           | 50,000 USDG  | SPY, QQQ, AAPL, MSFT, NVDA         |
| B    | 20 bps           | 20,000 USDG  | Liquid single names outside Tier A |
| C    | 40 bps           | 5,000 USDG   | The Stock Token long tail          |

| Regime     | Multiplier | Clip factor |
| ---------- | ---------- | ----------- |
| `OPEN`     | 1.0        | 1.0         |
| `EXTENDED` | 1.5        | 0.75        |
| `CLOSED`   | 3.0        | 0.5         |
| `HALTED`   | No quotes  | 0           |

Trade Tier A inside regular hours and roughly 10 bps over mid plus the fee is what you pay. Do it on a Saturday and the figure is nearer 30 bps, with the ticket saying why. Those are opening values; what actually gets realised is published on the [execution quality](/transparency/execution-quality.md) page, and retuning happens against those observations by way of the timelock.

## The skew term

`skewTerm = maxSkewBps × (currentRatio − targetRatio) / inventoryBand`

Drift enters linearly and stops at `maxSkewBps`, which is 15 bps for Tier A to begin with, once the band edge is reached. The sign is where the logic lives: hold too many tokens and the ask softens while the bid hardens, so whoever helps the vault is charged less and whoever worsens it is charged more. Reach the edge and the harmful side goes quiet entirely. That is the entirety of the rebalancing design. No auctions run, no keeper trades, and nobody intervenes; the skew simply pays outsiders to do the work.

## The band

Quite apart from the spread arithmetic, `SwapRouter` imposes a hard band around the mid (75 bps for Tier A at launch, wider through B and C) and nothing clears outside it, vault or RFQ. This is the last line of defence against a bad quote, a forged maker signature or a parameter set wrongly: whatever has gone wrong further up, a fill sitting further from the guarded oracle price than the band allows will revert.

## What appears on the ticket

Term by term, the ticket lays the formula out: the mid together with the oracle round it came from, the spread in both bps and USDG, the protocol fee in both bps and USDG, the regime badge, and the all-in price that the slippage bound attaches to. Whatever is signed is what the chain will insist upon, and if state moves such that the fill would come in worse than the signed bound, the transaction reverts rather than executing.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.useicaria.xyz/protocol/pricing-and-spreads.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
