> For the complete documentation index, see [llms.txt](https://usefelix.gitbook.io/perps/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://usefelix.gitbook.io/perps/getting-started/perp-specifications/usa500.md).

# USA500

### Times

Two windows make up for weekday coverage:

* Regular-hours: 6:00 p.m. – 5:00 p.m. ET
* Off-hours: 5:00 p.m. – 6:00 p.m. ET

Weekend coverage starts on Friday 5:00 p.m. ET. and runs continuously until Sunday 6:00 p.m. ET.

### Oracle Price Methodology

Oracle pricing is used to calculate funding rates which anchor perpetual contract price to underlying commodity price. For the 24/7 markets we divide the oracle price into three segments (weekday on-hours, weekday off-hours, weekend off-hours). Pricing infrastructure is handled by Redstone.

Each oracle update (every 2.5s) can change oraclePx by at most 1%.

**EMA Definition (used below)**

Let $$x\_t$$be the input series sampled every $$\Delta t = 1\mathrm{s}$$, and let $$S\_t$$ be the EMA with time constant $$\tau\ (\text{e.g., }1\mathrm{h},8\mathrm{h},150\mathrm{s}).$$ We use:

$$
% EMA recursion + smoothing factor
S\_t = \beta S\_{t-1} + (1-\beta),x\_t,
\qquad
\beta = \exp!\left(-\frac{\Delta t}{\tau}\right)
$$

**Part 1: Weekday on-hours**

During on-hours, we use spot SPX as the primary feed, which is <2bps deviation from reasonable implied spot price (derived from CME contract). In a later implementation, the primary feed may switch to the implied spot price (derived from CME contract). Fallbacks are implemented to mitigate any single corrupted feed. The result is the on-hours `oraclePx`.

**Part 2: Weekday off-hours**&#x20;

Oracle = EMA\_30m(impact\_price)

**Part 3: Weekend off-hours**&#x20;

Oracle = EMA\_2h(impact\_price)

### Mark Pricing

This section details our methodology for calculating the mark price, which serves as the reference for margin, liquidations, take-profit and stop-loss triggers, and unrealized profit and loss computations. Pricing infrastructure is handled by Redstone.

Each oracle update (every 2.5s) can change markPx by at most 1%.

Mark Price is calculated as the median of the following 3 values:

* MarkPx0: Oracle Price
* MarkPx1: Oracle Price
* MarkPx2: The median of best bid, best ask, last trade on Hyperliquid (added as default by HL)

### ExternalPerpPx Pricing

This limits a perp market's mark price movement to the given band of +/- min(1/max\_leverage, 20%) from the externalPerpPx value.

**Part 1: Weekday on-hours**

Oracle Price

**Part 2: Weekday off-hours**

Last Close from Weekday On Hour period

**Part 3: Weekend off-hours**

Last Close on Weekday On Hour

### Holidays

* Holidays are treated as weekends. Shorter regular sessions due to holidays will transition to weekend status afterwards. Holidays are defined here:<https://www.cmegroup.com/trading-hours.html>
