Source: https://databento.com/docs/datasets/ifll-impact


# ICE Europe Financials

**Dataset ID**: [IFLL.IMPACT]($PLATFORM_HOSTNAME/catalog/ifll/IFLL.IMPACT)

ICE disseminates FOD (full order depth), MBP (market by price), TOB (top-of-book) and market statistics data for futures and options on futures via their iMpact feed, which Databento receives over UDP multicast in our Aurora DC3 data center.

For futures, ICE publishes both FOD and MBP-5. Databento only normalizes the FOD messages.
For options, ICE publishes MBP-10, MBP-5 and top-of-book. Databento only normalizes the MBP-10 messages.

This means that for options, only the top 10 levels of the book are available even in the MBO schema. For futures the full market is shown.

### Timestamps

ICE iMpact messages received by Databento will generally include two timestamps with microsecond precision.
As with all of our datasets, we also collect a `ts_recv` timestamp when the packet was received by our capture server.

| Databento Field | ICE Field | Description |
| `ts_recv` | N/A | The capture-server-received timestamp. |
| `ts_event` | TransactDateTime and SequenceWithinMillis | The matching-engine-processed timestamp with sub-microsecond sequence number. |
| `ts_in_delta` | SentDateTime | The matching-engine-sending timestamp. |

ICE provides microsecond granularity timestamps along with sub-microsecond sequence
numbers for ordering that are normalized as nanosecond timestamps for consistency in
ordering with other datasets.

More details about our timestamps are available in our [timestamping guide](https://databento.com/docs/architecture/timestamping-guide.md).

### Matching Engine Location

ICE Europe Financials has matching engines both in Chicago and Basildon.
Currently, the products offered by Databento all trade in the ICE silo, located in 350 E Cermak, Chicago.
Databento captures the data in our Aurora DC3 location.

### MBO normalization

For options, the ICE iMpact feed only includes market-by-price, which matches Databento's [MBP-10 schema](https://databento.com/docs/schemas/mbp-10.md).
We do not offer these messages in our [MBO schema](https://databento.com/docs/schemas/mbo.md). They are only available on MBP-10 and other downstream schemas.

Each ICE "Trade Message" is normalized into a single MBO record with the **T**rade action, and the message's "TradeID" field is used as the `order_id`.
ICE does not disseminate information about the passive side of the trade. The corresponding **F**ill record will have `side` equal to `N` and the same `order_id` value as the **T**rade record.

When ICE does not specify the aggressing side, **T**rade records will have `side` equal to `N`.

### System priced legs

A system priced leg is the result of a trade in the outright spread. These trades, as published by the exchange, can have prices that are 10% or more off from the best bid and offer. ICE recommends that the price of these trades isn't counted towards market statistics.

Databento normalizes system priced legs as a **T**rade record with `side` equal to `N` and an `UNDEF_PRICE` (`0x7fffffffffffffff`, 9223372036854775808) value for the price.

These trades are counted towards OHLCV volume, but not towards the open, high, low or close values. This means that OHLCV messages can have some (or even all) price values as `UNDEF_PRICE`.

### Off-market trades

Trades marked by the exchange as off-market have their `publisher_id` set to `IFLL.IMPACT.XOFF` to distinguish them from on-exchange trades.

This distinction is also reflected on the OHLCV schemas - if an interval contains both on-market and off-market trades for an instrument, two OHLCV messages will be published for that instrument on that interval, one with `IFLL.IMPACT.IFLL` as the `publisher_id` and one with `IFLL.IMPACT.XOFF`.

### Statistics

**Stat flags**

The `IsOfficial` field in the ICE iMpact Settlement Price Message and `IsSettlePriceOfficial` in
the Market Snapshot Message are normalized to the first (least-significant) bit of `stat_flags` where the bit is set if
`IsOfficial` is `Y`.
This is consistent with the behavior for [CME Globex MDP 3.0](https://databento.com/docs/datasets/glbx-mdp3.md#statistics).

### Symbology

ICE uses separate symbology for outrights and strategies.

**Outrights**

For outrights -- individual futures and options -- raw symbols are sourced from `ContractSymbol` field.
If `ContractSymbolExtra` is present, it's appended to the `ContractSymbol`.

Outright contract symbols are composed of several parts indicating different aspects of the instrument.
For example, the Three Month Euribor June 2025 futures contract's symbol is `I   FMM0025!`.
This can be broken down as follows:

| Component | Name | Description |
| `I ` | Contract code | The right space-padded four-character [parent symbol](https://databento.com/docs/conventions/symbology.md#parent) or product this instrument belongs to. |
| `F` | Contract type | Indicates whether the instrument is a future (`F`), swap, or other type of contract. |
| `M` | Term | The contract term, usually month (`M`). |
| `M` | Month | The expiration month, e.g. `M` for June. |
| `00` | Day | The effective date of the contract. `00` for monthly contracts. |
| `25` | Year | The two-digit expiration year. |
| `!` | Switch character | Indicates additional distinguishing information about the contract. `!` indicates no additional data. |

Options begin with their underlying future's symbol followed by an underscore (`_`) and the option block.
Using the Three Month Euribor June 2025 87.00 call `I   FMM0025_OMCA0009793754061625` as an example, the option block breaks down as:

| Component | Name | Description |
| `O` | Option indicator | Will always be `O` for options. |
| `M` | Option type | The option term, e.g. `M`onthly or `W`eekly. |
| `C` | Put or call | Whether the option is a `C`all or `P`ut. |
| `A` | Option style | The exercise style of the option, e.g. `A` for American. |
| `000979375` | Strike | The zero-padded nine-digit strike price. |
| `4` | Strike decimal | The number of decimal places in the strike price. Applying four decimal places to 979375 gives a strike price of 97.9375. |
| `061625` | Expiration date | The MMDDYY expiration date of the option. |

Refer to ICE's [Instrument Naming Convention document](https://www.ice.com/publicdocs/technology/Instrument_Naming_Convention.pdf) for a full explanation of the format of contract symbols.
Because each dataset has a separate symbology namespace, Databento omits the MIC code from the fully-qualified symbol in ICE's examples.

**Strategies**

For spreads and strategies where ICE does not define a `ContractSymbol`, raw symbols are sourced from `StrategySymbol`.

Strategy symbols are composed of several parts, however, due to the use of numeric identifiers, strategy raw symbols are harder to interpret than those for outrights.
The Three Month Euribor options call spread `I     6  20284553` can be broken down as follows:

| Component | Name | Description |
| `I ` | Contract code | The [parent symbol](https://databento.com/docs/conventions/symbology.md#parent) or product this instrument belongs to. |
| ` 6` | Strategy code | A left space-padded three-digit number identifying the type of strategy, e.g. `6` for call spread. Refer to the table in [this document](https://www.ice.com/publicdocs/technology/ICE_Strategy_Code_Reference_Manual.pdf) for a complete list of strategy codes. |
| ` 20284553` | Market ID | A left space-padded 10-digit unique identifier. The same as `instrument_id`. |

To inspect spread legs, including intercommodity futures spreads, use the leg fields in the [definition schema](https://databento.com/docs/schemas/instrument-definitions.md) instead of parsing the raw strategy symbol. See [Finding ICE intercommodity spreads](https://databento.com/docs/examples/instrument-definitions/ice-crack-spreads.md).

**Databento MBO snapshot**

ICE Europe Financials iMpact daily [trading hours](https://www.ice.com/trading-hours) cross 00:00:00 UTC. To make it easier to work with historical MBO data, Databento includes an [order book snapshot](https://databento.com/docs/conventions/mbo-snapshot.md) at 00:00:00 UTC each weekday (Monday-Friday).

### Definitions

- `MarketTypeId` is normalized to `market_segment_id`
- `MICCode` is normalized to `exchange` when it is provided: only for futures and future strategies

**Expirations**

ICE only provides date-granularity expiration data in `OptionsExpirationDate` and `ScreenLastTrade` fields.
As a result, the `expiration` field in the [definition schema](https://databento.com/docs/schemas/instrument-definitions.md) will always be at UTC midnight, even when the option expires during or after the trading day.

### Flags normalization

The `F_PUBLISHER_SPECIFIC` flag provides no additional meaning in this dataset and can be safely ignored.
