> For the complete documentation index, see [llms.txt](https://support.backpack.exchange/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.backpack.exchange/technical-docs/trading/equity-futures-specs.md).

# Equity Futures Specs

*Note: This page covers only the mechanics that are new or different for equity perpetuals. Everything not described here — margin & collateral, liquidations, index price construction, price bands (limit, price impact, mean mark price, and mean premium bands), and the funding rate formula — works identically to standard perpetual futures. See*[ *Futures Specs*](https://support.backpack.exchange/technical-docs/trading/futures-specs) *for the complete reference.*

#### Overview

* Equity perpetuals are perpetual futures on real-world assets (equities) whose underlying cash market trades on a schedule rather than 24/7.
* The perp itself trades continuously, so the pricing stack operates in two regimes throughout: in-session, when the underlying external market is open, and off-session, when it is closed.
* Three prices govern the market:
  * The oracle price — the fair value of the underlying.
  * The mark price — the price used for PnL, margin, liquidation, and funding.
  * The discovery bound — the band that keeps the traded price tethered to fair value, especially while the cash market is closed.

#### Oracle Price

The oracle price (also called the index price) is the system's estimate of the fair spot value of the underlying asset. It is the reference against which the mark price, funding, and margin are computed.

**Sessions**

| Session                   | Hours (ET)        | Days      |
| ------------------------- | ----------------- | --------- |
| US Equities Regular Hours | 9:30 AM – 4:00 PM | Mon – Fri |
| US Equities Post-Market   | 4:00 PM – 8:00 PM | Mon – Fri |
| US Equities Overnight     | 8:00 PM – 4:00 AM | Mon – Fri |
| US Equities Pre-Market    | 4:00 AM – 9:30 AM | Mon – Fri |

**In-session (external market open)**

When the underlying market is open, the oracle price is derived from an external price source, Pyth.

**Off-session (external market closed)**

Equity markets are not open 24/7, but the perp trades continuously. When available, the oracle price defaults to the perp index when equity markets are not in session. When no perp index is available, the oracle continues to advance internally using a continuous-time exponentially-weighted moving average (EWMA) of the order book mid price:

$$
S\_t = \beta \cdot S\_{t-1} + (1 - \beta) \cdot \text{mid}
$$

where:

$$
\beta = e^{-\Delta t^{*} / \tau}, \qquad \text{mid} = \frac{\text{best\_bid} + \text{best\_offer}}{2}, \qquad \tau = 1\ \text{hour}, \qquad \Delta t^{*} = \min(\Delta t,\ \tau / 10)
$$

* Δt is the time since the last oracle update.
* Capping the effective elapsed time at τ/10 (6 minutes) bounds any single update to at most 1 − e^(−0.1) ≈ 9.5% of the gap between the previous oracle and the current mid.
* The EWMA is seeded with the last in-session oracle price.

Separately, the last externally-derived price observed before the market closed is retained as the external close price, which anchors the discovery bound (see below).

#### Mark Price

The mark price is used for unrealized PnL, margin, liquidations, and funding. It is built to track the oracle while staying responsive to genuine order-book movement, and to resist manipulation from any single input.

For equity markets the mark is the median of three components:

1. Oracle price — the index from the section above.
2. Book median — the median of the best bid, best offer, and last traded price.
3. Oracle + basis — the oracle plus a 150-second moving average of the basis (mid − oracle), where the average is linearly weighted toward more recent samples.

That is:

$$
\text{mark} = \text{median}\Big(\ \text{oracle},\ \ \text{median}(\text{best\_bid},\ \text{best\_offer},\ \text{last}),\ \ \text{oracle} + \text{WMA}\_{150\text{s}}(\text{mid} - \text{oracle})\ \Big)
$$

Taking the median of three independent estimates means no single component — a wicky last trade, a one-sided quote, or a stale oracle — can by itself set the mark.

* The resulting value is clamped to the discovery bound (see below) and rounded to the mark price step size.
* Each published update is additionally rate-limited against the previous mark by a configurable per-update multiplier.

***

#### Discovery Bound

The discovery bound keeps the equity perp's price tethered to the underlying's fair value, especially while the cash market is closed and the price could otherwise drift on thin order-book activity alone.

The bound is a band around the external price — the latest externally-derived fair value, which tracks the live external price while the market is open and is frozen at the external close price once the market closes:

$$
\text{min\_price} = \text{external\_price} \times \text{min\_multiplier} \qquad (0 < \text{min\_multiplier} < 1)
$$

$$
\text{max\_price} = \text{external\_price} \times \text{max\_multiplier} \qquad (\text{max\_multiplier} > 1)
$$

The band is recomputed on every oracle tick from the current external price, and is enforced in two places:

1. Mark clamp (oracle service). The published mark price is clamped to the range \[min\_price, max\_price].
2. Order admission (matching engine). A bid priced above max\_price, or an ask priced below min\_price, is rejected — the order expires with a discovery-bound reason. This prevents resting or marketable orders from printing prices outside the band.

While the market is open, the band moves continuously with the live external price. While it is closed, external\_price is fixed at the close, so the band is a static corridor of close × \[min\_multiplier, max\_multiplier] for the entire closed session.

The discovery bound operates in addition to the standard price bands — including the impact price band, a separate band which prevents a particular order from causing more than a configured amount of market impact. See[ Price Bands](https://support.backpack.exchange/technical-docs/trading/futures-specs#price-bands) in Futures Specs.

***

#### Funding Rate

Funding keeps the perpetual's mark price tethered to the index by periodically transferring payments between longs and shorts. Equity perpetuals use the same funding rate payment strategy as crypto perps (see the[ Funding Rate](https://support.backpack.exchange/technical-docs/trading/futures-specs#funding-rate) section of Futures Specs), with one difference: the interest rate component is halved to 1.5bps.

***

#### Stock Splits & Rebasing

Equity perpetuals do not currently support rebasing — the adjustment of open positions and resting orders to reflect a stock split in the underlying equity.

When an underlying equity splits, the market is wound down around the event rather than adjusted through it: the book is closed, resting orders are cancelled, open positions are closed, the split is applied, and the market reopens on the new basis.

We expect to add position and order adjustment in the future.

<br>


---

# 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://support.backpack.exchange/technical-docs/trading/equity-futures-specs.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.
