Skip to content

Spreadometer methodology

A key aspect of gas futures trading is spreads—the price difference between two related contracts, traded together to capture value differences. Location spreads reflect price differences between hubs, while time spreads capture price differences between delivery periods.

Natural gas spreads can be traded over-the-counter (OTC) via a broker or through an exchange, with the primary difference being the trading mechanism rather than the contract structure. A spread is usually traded as a single product and split into two outright trades upon execution, each representing each leg. Alternatively, the spread can be traded directly as two outright contracts executed close to simultaneously. Consequently, all spreads are eventually decomposed into outright trades. The exception is when the spread is unavailable or lacks liquidity, in which case multiple related contracts can be combined to form a synthetic spread.

This documentation intends to bridge the gap between developers and traders by clearly communicating the methodology behind computing the spreads. It begins with the theoretical foundations before outlining how it is applied within the Spreadometer.

Common Gas Trading Terminology

Natural gas trading involves complex financial instruments and concepts that can be challenging to grasp without a solid foundation. The table below provides the definitions of key terms used in this documentation. However, if you are a new developer, it is recommended to familiarize yourself with the basics of gas trading before proceeding.

term definition
liquidity High liquidity is characterized by high trading volume and tight ask-bid spreads, while low liquidity is characterized by low trading volume and wide ask-bid spreads. High liquidity enables quick trades at stable prices, while low liquidity leads to fewer trades and larger price fluctuations.
derivative A financial instrument based on one or more underlying assets, indices, or rates. common types include futures, options, swaps, and forwards, which again can be combined into more complex derivatives.
forward contract A private, non-exchange-traded agreement to buy or sell an asset at a set future date for a fixed price.
future contract A standardized version of a forward contract, traded on exchanges or over-the-counter. unlike forwards, futures are regulated, involve margin requirements, and settle daily. Natural gas futures may also include an obligation to deliver physical gas.
tenor The duration or time period which the natural gas is to be delivered. E.g., January 2025.
outright A single gas futures contract traded independently. All traded spreads end end up as two outright trades.
spread A derivative representing the price difference between two related natural gas futures contracts traded simultaneously.
leg A single future contract representing either side of the spread.
native spread A spread traded directly in the market that can be observed from the price difference between two contracts traded simultaneously.
synthetic spread A spread constructed by combining derivatives to replicate the price relationship between two instruments when native spreads are unavailable, illiquid, or restricted.

Theoretical Foundation

Since spreads ultimately break down into outright trades, they can be computed (or estimated) using Trayport trade data. However, inconsistent broker reporting may in some cases make it difficult to match outright trades sold as spreads.

To sidestep the issue of spreads not exactly matching, an estimate is produced based on the available trade data for the outright contracts. In this alternative approach, trades are aggregated over a short time window, and the volume-weighted average price is computed for each contract per time period. The spread between two contracts is then estimated by calculating the difference between their respective volume-weighted prices. This method is straightforward, computationally efficient, and serves as a reliable starting point for spread estimation.

Illiquid spreads might not have enough direct price observations to provide reliable estimates. in such cases, synthetic spreads can be constructed by combining related products with sufficient liquidity. This enhances the reliability of spread estimates. Consequently, a spread is distinguished by being directly traded (native) or constructed from related contracts (synthetic).

This section outlines the foundation for how the spreads are sampled and later aggregated. While traders may choose to skip it, those involved in development should understand the core concepts presented here.

Setting the sample window

The outright contracts that form the legs of a spread are typically traded simultaneously. However, errors can occur if brokers record incorrect timestamps or if legging occurs due to an implied spread. A sampling window that is too narrow may fail to capture valid spreads, while one that is too wide can result in over- or underestimation.

The illustration demonstrates this effect: in the first graph, the spread is sampled at nearly the same moment, providing a reliable estimate. In the second graph, a time gap between samples allows price movement to occur, causing the estimated spread to differ from the true spread.

match vs no match

Native spread: sampling from two illiquid contracts

In illiquid markets, trades occur infrequently, making it unlikely for two contracts to be traded at the exact same moment. This results in few reliable native spread samples.

illiquid vs illiquid

Native spread: sampling from one illiquid and one liquid contract

When one contract is highly liquid, trades occur frequently, increasing the likelihood of a close match when the illiquid contract trades. This ensures that each trade of the illiquid contract got a liquid counterpart, allowing for a more reliable estimation of the native spread despite the illiquid contract’s infrequent activity.

illiquid vs liquid

Synthetic spread: estimate the spread between two illiquid contracts

While outright prices fluctuate throughout the day, the spread between related contracts tends to remain stable. This allows the spread between two illiquid contracts to be estimated using a common liquid contract as a proxy. By first calculating each illiquid contract’s spread against the common liquid contract — and then averaging over a broader window — the synthetic illiquid-to-illiquid spread can be derived by combining the proxy spreads in a way that cancels the liquid component.

The illustration below demonstrates how removing one proxy spread from another results in the synthetic spread between the two illiquid contracts. sample from the proxy

If the proxy samples are either stationary or uniformly distributed within the broader window, averaging and subtracting one proxy spread from the other provides a reliable estimate of the illiquid-to-illiquid spread over that period. Violating either assumption can lead to inaccurate spread estimates. For example, if the spread trends in one direction and one proxy is sampled early in the window while the other is sampled later, the average will be skewed. averaging the proxy samples

How is it applied in the Spreadometer

The Spreadometer computes the spreads based on the principles outlined in the section above. The legs, which form the basis for the spreads, are derived from the 1-second Volume-Weighted Average Price (VWAP) for each outright contract. This approach accounts for multiple trades within the same sampling window, balancing efficiency and accuracy to provide a single representative price per second. Using the resulting 1-second time series of outright prices as the legs, spreads can be constructed simply by subtracting one leg from another whenever both contracts have a price at the same second.

Sampling the native spread

The Dutch Title Transfer Facility (TTF) is a virtual trading hub for natural gas in the Netherlands and the most liquid gas market in Europe. Its high liquidity makes it the primary reference for pricing other European hubs, playing a central role in both location spreads and time spreads. Not only is TTF the most traded time spread, but it is also the most liquid location spread against the other hubs. Accordingly, all native spreads are computed against the TTF, while the remaining spreads are computed as synthetics.

\[ \text{leg}_{c,s} = \frac{\sum_{t \in T_{c,s}} p_t \cdot v_t}{\sum_{t \in T_{c,s}} v_t}, \quad \forall\; c \in C, s \in S \]

where:

  • \(T\) is the set of all trades.
  • \(M\) is the set of all markets.
  • \(D\) is the set of all delivery periods / tenors.
  • \(S\) is the set of all seconds.
  • \(C = \{(m,d) : m \in M, d \in D\}\) is the set of unique contracts by market and delivery/tenor.
  • \(T_{c,s} \subseteq T\) is the subset of trades associated with contract \(c\) that occur during second \(s\).
  • \(p_t\) is the price of trade \(t\).
  • \(v_t\) is the volume of trade \(t\).
  • \(\text{leg}_{c,s}\) is the volume-weighted average price (VWAP) of contract \(c\) during second \(s\).

Native location spreads

The native location spreads are calculated by simply subtracting the timeseries of the related TTF contract from the timeseries of all the non-TTF contracts. The result is a dataset of native location spreads on a per-second basis.

\[ \text{spread}_{c^*,s / c = (\text{TTF}, d), s} = \text{leg}_{c^*,s} - \text{leg}_{c = (\text{TTF}, d), s}, \quad \forall\; c^* = (m_1, d) \in C,\; s \in S\; where:\; m_1 \ne TTF \]

Native time spreads

All time spreads are synthetic, except for the TTF time spreads. The native TTF time spread is determined by subtracting the current TTF contract from all subsequent TTF contracts with a later tenor. The reason the current contract is not matched with earlier contracts is that the spread is not traded in that direction anyway. The resulting dataset is a timeseries of native TTF time spreads.

\[ \text{spread}_{(\text{TTF},\;d_2,\;s) / (\text{TTF},\;d_1,\;s)} = \text{leg}_{(\text{TTF},\;d_2,\;s)} - \text{leg}_{(\text{TTF},\;d_1,\;s)}, \quad \forall\; d_1,\;d_2 \in D,\; s \in S,\; where:\; d_1 < d_2 \]

Aggregating the legs and the native spreads

Finally, hourly and daily time series are aggregated for both legs and native spreads. Leg prices are weighted by their own volumes, while spreads are weighted by the volume of the illiquid contract.

\[ \text{leg}_{c, w} = \frac{\sum_{s \in w} \text{leg}_{c, s} \cdot V_{c, s}}{\sum_{s \in w} V_{c, s}}, \quad \forall\; c \in C,\; w \in \mathcal{W} \]
\[ \text{spread}_{c_1, w / c_2, w} = \frac{\sum_{s \in w} \text{spread}_{c_1, s / c_2, s} \cdot V_{c_1, s}}{\sum_{s \in w} V_{c_1, s}}, \quad \forall\; c_1,c_2 \in C,\; w \in \mathcal{W} \]

Where:

\(V_{c,s} = \sum_{t \in T_{c,s}} v_t\), sum volume per second

\(W\) represents the hourly or daily window.

The end of day TTF assessment price

The End of Day (EOD) Assessment price for a given gas future contract, typically published by ICIS, serves as a key benchmark for traders evaluating their open positions. This price is determined as the midpoint between the highest bid and the lowest asking price at exactly 16:30 London time, if available. If the mid-price is not available, a set of fallback rules is applied, as outlined in the ICIS ESGM Methodology. The Spreadometer computes a simplified version that only considers the mid price. The EOD TTF price is later used to cancel out the TTF component when computing the synthetic time spreads.

Synthetic spreads

The synthetic spreads are derived from the native location spreads in a way that cancels the TTF component.

NB! Recall that the synthetic spreads are only valid if the underlying spreads remain stationary or uniformly distributed within the hourly/daily window.

Synthetic Location Spreads

The synthetic location spreads are straightforward to calculate:

If the hourly or daily native location spreads for two illiquid contracts \(M_1\) and \(M_2\) are given by:

\[ \text{spread}_{c_1 = (m_1,d), w / c_{TTF} = (TTF,d), w} \]
\[ \text{spread}_{c_1 = (m_2,d), w / c_{TTF} = (TTF,d), w} \]

Then the synthetic location spread is:

\[ \text{spread}_{(m_1, d),\; w / (m_2, d),\; w} = \text{spread}_{(m_1, d),\; w / (\text{TTF}, d),\; w} - \text{spread}_{(m_2, d),\; w / (\text{TTF}, d),\; w} \]
\[ \forall m_1, m_2 \in M,\; d \in D,\; w \in \mathcal{W} \]

Since the TTF component cancels out:

\[ \begin{aligned} \text{spread}_{(m_1, d), w / (m_2, d), w} &= \left( \text{leg}_{(m_1, d), w} - \text{leg}^{*}_{(\text{TTF}, d), w} \right) - \left( \text{leg}_{(m_2, d), w} - \text{leg}^{*}_{(\text{TTF}, d), w} \right) \\ &= \text{leg}_{(m_1, d), w} - \text{leg}_{(m_2, d), w} \end{aligned} \]

Where \(\text{leg}^{*}_{(\text{TTF}, d), w}\) is the TTF leg aggregated from trades matched with the non-TTF contract over window \(w\).

Synthetic Time-Location Spreads

The synthetic time-location spread is a four-legged strategy that combines two distinct location spreads. It is calculated by subtracting a native location spread from another with an earlier tenor. The TTF component is a part of the four legs and is intentionally not canceled out.

\[ \text{spread}_{(m_1, d_1), w / TTF} / \text{spread}_{(m_2, d_2), w / TTF} = \text{spread}_{(m_1, d_1), w / (\text{TTF}, d_2), w} - \text{spread}_{(m_2, d_2), w / (\text{TTF}, d_1), w} \]
\[ \forall\, m_1, m_2 \in M,\; d_1, d_2 \in D,\; w \in \mathcal{W},\; \text{where:}\; d_1 < d_2 \]

Synthetic Time Spreads

Finally, the synthetic time spreads are calculated by incorporating the hourly TTF leg or the daily TTF EOD assessment price into each location spread the time-location spread comprises. This offsets the TTF component, neutralizing the location element from the time-location spread:

\[ \begin{aligned} \text{spread}_{(m_1, d_1), w / (m_2, d_2), w} = &\left( \text{spread}_{(m_1, d_1), w / (\text{TTF}, d_2), w} + \text{leg}_{(m_1, d_1), w} \right) \\ & - \left( \text{spread}_{(m_2, d_2), w / (\text{TTF}, d_1), w} + \text{leg}_{(m_2, d_2), w} \right) \end{aligned} \]
\[ \forall\, w \in \mathcal{W},\, m_1, m_2 \in M,\, d_1, d_2 \in D \text{ where } d_1 < d_2 \]

Simplified example to illustrate how the TTF component cancels out:

\[ spread_{A/B}=(A/TTF + TTF) - (A/TTF + TTF) \]
\[ = (A - TTF + TTF) - (B - TTF + TTF) \]
\[ = A - B \]

Limitations and Future Work

According to the Alpha team, who contacted Trayport support, two outright trades belonging to a spread may have different trade datetimes if the underlying spread was native.

Trayport/Alpha explained the sequence of events as follows:

  1. The spread is bought (Deal creation datetime).
  2. The spread trade is executed (Execution time of the spread).
  3. The first outright trade is executed (Execution time of the first outright).
  4. The second outright trade is executed (Execution time of the second outright).

While these timestamps are often the same, a mismatch between them is not considered a trade error.

Alpha also noted that the Trayport Raw Trades dataset can be used to link outright prices to their respective contracts. Based on this, spreads can be estimated by:

  1. Pair contracts by using the keys in the Raw Trades dataset to link outright trades to their respective counterpart.
  2. For the remaining trades, applying the 1-second VWAP method.