> 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/natural-gas-henry-hub.md).

# Natural Gas (Henry Hub)

### Times

Two windows make up for weekday coverage:

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

Weekend coverage starts on Friday 4:30 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 (Weekdays from 6 PM ET to 5 PM ET)**

Oracle = We use the current contract and a blended contract during contract rolls - contract roll schedule can be viewed in the section below.

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

Oracle = EMA\_1h(impact\_price)

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

Oracle = EMA\_8h(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

### **Roll Over Methodology**

There will be 5 updates when going from previous contract to the next contract as per the following schedule:

* 16 business days before the expiry of current contract, we will define the oracle price to be: 0.80*current\_contract + 0.20*next\_contract
* 15 business days before expiry, we will define the oracle price to be: 0.60*current\_contract + 0.40*next\_contract
* 14 business days before expiry, we will define the oracle price to be: 0.40*current\_contract + 0.60*next\_contract
* 13 business days before expiry, we will define the oracle price to be: 0.20*current\_contract + 0.80*next\_contract
* 12 business days before expiry the oracle price will fully represent the next\_contract

Each of the above update should be made at 4:30 PM ET of the specified day.

For NatGas we will be rolling over every month. The roll will follow these contracts:

G → H → J → K → M → N → Q → U → V → X → Z → F → G and so on.

During rollover periods, funding rates will stay on during off hours as well (both for weekdays and weekends), as a broader mechanism for allowing funding rate payments to offset rollover gap costs. No changes are made to the funding rate multiplier.

### 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>
