0% found this document useful (0 votes)
13 views172 pages

LMEsource Client Interface Spec v4.12

The LMEsource Client Interface Specification v4.12 outlines the binary interface for the London Metal Exchange's market data platform, LMEsource, which disseminates both electronic and non-electronic market data. The document details various updates, message formats, and functionalities, including recovery mechanisms and session management. It serves as a comprehensive guide for clients interfacing with the LME's trading platform, LMEselect, and includes a version history highlighting significant changes from previous versions.

Uploaded by

billlin1234
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views172 pages

LMEsource Client Interface Spec v4.12

The LMEsource Client Interface Specification v4.12 outlines the binary interface for the London Metal Exchange's market data platform, LMEsource, which disseminates both electronic and non-electronic market data. The document details various updates, message formats, and functionalities, including recovery mechanisms and session management. It serves as a comprehensive guide for clients interfacing with the LME's trading platform, LMEselect, and includes a version history highlighting significant changes from previous versions.

Uploaded by

billlin1234
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

LMEsource

Client Interface Specification v4.12

THE LONDON METAL EXCHANGE [Link] TH


10 Finsbury Square, London EC2A 1AJ | Tel +44 (0)20 7113 8888 10
Registered in England no 2128666. Registered office as above.
Re
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Document History
Version Date Changes

4.11 29 Feb 2024 Implied decimal format added to price fields


Char (1) replaced by String (1)
2.2.1 Contract Definition (300) included for Electronic. Details added
for Non-Electronic
341 message description, added TradeAtReferencePriceType and
LegTradeAtReferencePriceType and included in examples.
RemainingRecords, RecordCount and StrategyLegCount values for
Electronic venue
301 and 303 ISIN space if not applicable, 301 and 302 PriceCode
space if not applicable, 341 TradeAtReferencePriceType and
LegTradeAtReferencePriceType space if not applicable
311 and 312 StartTime and EndTime not applicable to Technical
Halt
326 OrderID description updated
420, 421, 351 and 352 description
405 and 422 description of total length
Removed Unofficial prices, updated timings for Indicative prices in
401 and 402
Publication Schedule Summary included
8.10 example corrected
Product Hierarchy diagram
10.1.1 prompt label precedence also applicable to 304
10.4 guidance on differential and substituted prices
12.1 removed Refresh channels from Elec Algos, removed Growth
package from Open Interest Band (421), Position Band (421) and
Warrant Band (422)
14.1 updated grade codes
Removed Market Data Trade Inclusion Rules

4.12 19 Jul 2024 3.7.1 TaS/TaR and LIS option publication


4.1.3 Daily price limit application
4.2.2 TOM example added
4.2.3 and [Link] guidance on Market State processing

Page 2

Page 2
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Version Date Changes

4.3 corrected message numbers


4.3.4 correction
4.3.6 implied orders
5.3.3 removed Text
5.4.1 removed reference to Average price type
Appendix D - Channel Matrix and Messages and Channels

For changes to previous versions, see Document Version History

Page 3

Page 3
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Contents

1 INTRODUCTION ............................................................................................................................ 9
1.1 Purpose ................................................................................................................................... 9
1.2 Delivery Phasing for Electronic Market Data .......................................................................... 9
1.3 Products ................................................................................................................................ 10
1.3.1 Electronic Product Summary Table ............................................................................... 10
1.3.2 Non-Electronic Product Summary Table ....................................................................... 11
2 SYSTEM OVERVIEW .................................................................................................................. 13
2.1 Scope .................................................................................................................................... 13
2.1.1 Multicast ......................................................................................................................... 13
2.1.2 Dual Multicast Channels ................................................................................................ 13
2.1.3 Recovery Mechanisms................................................................................................... 13
2.2 Session Management ........................................................................................................... 14
2.2.1 Start of Day .................................................................................................................... 14
2.2.2 Normal Transmission ..................................................................................................... 17
2.2.3 End of Day ..................................................................................................................... 17
2.2.4 Error Recovery ............................................................................................................... 17
2.3 Trading Sessions .................................................................................................................. 17
2.4 Race Conditions .................................................................................................................... 17
3 COMMON MESSAGE FORMATS ............................................................................................... 19
3.1 Data Types ............................................................................................................................ 19
3.1.1 Null Values ..................................................................................................................... 19
3.1.2 Implied Decimal ............................................................................................................. 20
3.1.3 Timestamp Precision ..................................................................................................... 20
3.2 Packet Structure.................................................................................................................... 20
3.2.1 Packet Header ............................................................................................................... 20
3.3 Message Structure ................................................................................................................ 21
3.4 Control Messages ................................................................................................................. 23
3.4.1 Heartbeat ....................................................................................................................... 23
3.4.2 Sequence Reset (100) ................................................................................................... 23
3.4.3 Disaster Recovery Signal (105) ..................................................................................... 23

Page 4

Page 4
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

3.5 Retransmission ..................................................................................................................... 24


3.5.1 Logon (101).................................................................................................................... 25
3.5.2 Logon Response (102) .................................................................................................. 25
3.5.3 Retransmission Request (201) ...................................................................................... 25
3.5.4 Retransmission Response (202) ................................................................................... 26
3.6 Refresh .................................................................................................................................. 27
3.6.1 Refresh Complete (203) ................................................................................................ 27
3.7 Trades ................................................................................................................................... 27
3.7.1 Market Data Trade (341) ............................................................................................... 27
4 ELECTRONIC MESSAGE FORMATS ........................................................................................ 32
4.1 Reference Data ..................................................................................................................... 32
4.1.1 Contract Definition (300) ................................................................................................ 32
4.1.2 Tradable Instruments ..................................................................................................... 33
4.1.3 Price Limits (305) ........................................................................................................... 42
4.2 Status Data ........................................................................................................................... 43
4.2.1 Market State - Contract (311) ........................................................................................ 43
4.2.2 Market State - Instrument (312) ..................................................................................... 44
4.2.3 Market State Processing ................................................................................................ 45
4.3 Order Book Data ................................................................................................................... 46
4.3.1 Top Of Book (321) ......................................................................................................... 46
4.3.2 Aggregate Order Book (322) ......................................................................................... 48
4.3.3 Order Add (323) ............................................................................................................. 50
4.3.4 Order Amend (324) ........................................................................................................ 51
4.3.5 Order Cancel (325) ........................................................................................................ 52
4.3.6 Order Executed (326) .................................................................................................... 53
4.3.7 Order Book Clear (327).................................................................................................. 55
4.3.8 Quote Request (329) ..................................................................................................... 56
4.3.9 Indicative Opening Price (320) ...................................................................................... 57
4.4 Trade Statistics ..................................................................................................................... 58
4.4.1 Trade Statistics - End of Day (351)................................................................................ 58
4.4.2 Trade Statistics - Intraday (352) .................................................................................... 59
5 NON-ELECTRONIC MESSAGE FORMATS ............................................................................... 61
5.1 Reference Data ..................................................................................................................... 61

Page 5

Page 5
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

5.1.1 Instrument Definition (303) ............................................................................................ 62


5.1.2 Tradable Instrument Definition (304) ............................................................................. 63
5.2 Status Data ........................................................................................................................... 68
5.2.1 Market State - Product (310) ......................................................................................... 68
5.3 Inter Office and Ring Data..................................................................................................... 69
5.3.1 Market Data Order (328) ................................................................................................ 69
5.3.2 Indicative Trade Price (340) ........................................................................................... 71
5.3.3 Business Event - Pre-TT Auction (342) ......................................................................... 72
5.3.4 Order Statistics - Intraday (350)..................................................................................... 73
5.4 Reference Price Data ............................................................................................................ 74
5.4.1 Reference Price (401) .................................................................................................... 74
5.4.2 Reference Forward Curve Price (402) ........................................................................... 80
5.4.3 Reference FX Rate (403) ............................................................................................... 82
5.4.4 Reference Volatility Price (404) ..................................................................................... 83
5.4.5 Reference Auction Price (405) ....................................................................................... 85
5.5 Daily Summary Data ............................................................................................................. 86
5.5.1 Open Interest (420) ........................................................................................................ 86
5.5.2 Open Interest Band (421) .............................................................................................. 88
5.5.3 Position Band (422) ....................................................................................................... 89
5.5.4 Warrant Band (423) ....................................................................................................... 91
5.5.5 Trading Volume (424) .................................................................................................... 93
5.5.6 Warehouse Stock Movement (426) ............................................................................... 94
5.6 Publication Schedule Summary ............................................................................................ 97
6 RECOVERY ................................................................................................................................. 99
6.1 Gap Detection ....................................................................................................................... 99
6.2 Line Arbitration .................................................................................................................... 102
6.3 Retransmission Service ...................................................................................................... 103
6.3.1 Logon ........................................................................................................................... 103
6.3.2 Making a Request ........................................................................................................ 104
6.3.3 Multiple Requests and Concurrent Sessions ............................................................... 105
6.3.4 Heartbeats ................................................................................................................... 105
6.3.5 Closing the Session ..................................................................................................... 105
6.3.6 System Limits............................................................................................................... 106

Page 6

Page 6
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

6.3.7 High Availability............................................................................................................ 106


6.3.8 Disaster Recovery........................................................................................................ 106
6.4 Refresh Service (RFS) ........................................................................................................ 106
6.4.1 Snapshot ...................................................................................................................... 107
6.4.2 Refresh Complete ........................................................................................................ 111
6.4.3 Snapshot Processing ................................................................................................... 111
6.4.4 Missed Messages ........................................................................................................ 111
7 LEVEL 2 AGGREGATE ORDER BOOK MANAGEMENT ....................................................... 112
7.1 Book Identification ............................................................................................................... 112
7.2 Partial Price Depth .............................................................................................................. 112
7.3 Book Updates ...................................................................................................................... 112
7.4 Example 1 – Quantity reduction and explicit addition ......................................................... 113
7.5 Example 2 – Implicit level adjustments ............................................................................... 114
7.6 Example 3 – Implicit deletions ............................................................................................ 116
7.7 Example 4 – Explicit additions ............................................................................................ 118
7.8 Example 5 – Additional order at an existing price level ...................................................... 120
7.9 Example 6 – An existing order has its quantity amended ................................................... 121
8 LEVEL 3 FULL ORDER BOOK MANAGEMENT ..................................................................... 124
8.1 Book Identification ............................................................................................................... 124
8.2 Book Updates ...................................................................................................................... 124
8.3 Example 1 – Addition of a new order .................................................................................. 125
8.4 Example 2 – A resting order has its quantity decreased .................................................... 126
8.5 Example 3 – A resting order has its quantity increased...................................................... 128
8.6 Example 4 – Cancellation of an order ................................................................................. 130
8.7 Example 5 – An aggressing order executes against a resting order .................................. 131
8.8 Example 6 – An aggressing order executes against multiple resting orders at different price
levels 132
8.9 Example 7 – A trade results from an Implied order ............................................................ 135
8.10 Example 8 – Two implied orders trade ............................................................................... 138
8.11 Example 9 – A trade resulted from uncrossing ................................................................... 143
9 APPENDIX A – PRODUCT HIERARCHY ................................................................................. 145
10 APPENDIX B – REFERENCE DATA VALUES ........................................................................ 146
10.1 Prompt Date Label .............................................................................................................. 146

Page 7

Page 7
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

10.1.1 Prompt Date Label Precedence................................................................................... 147


10.2 Strategy Type Code ............................................................................................................ 147
10.3 Tick Size ID ......................................................................................................................... 148
10.4 Trade at Reference Price Code .......................................................................................... 149
11 APPENDIX C – EXPIRY DATES ............................................................................................... 150
11.1 Futures ................................................................................................................................ 150
11.1.1 Rolling Prompts............................................................................................................ 150
11.1.2 Single Prompts............................................................................................................. 150
11.1.3 LME Calendar .............................................................................................................. 150
11.2 Options ................................................................................................................................ 151
11.3 Traded Average Price Options (TAPOs)............................................................................. 151
12 APPENDIX D – CHANNEL MATRIX ......................................................................................... 152
12.1 Messages and Channels..................................................................................................... 153
13 APPENDIX E – REFERENCE PRICE EXAMPLES .................................................................. 157
13.1 Indicative Closing Price ....................................................................................................... 157
13.2 Official Price ........................................................................................................................ 157
13.3 Settlement Price .................................................................................................................. 158
13.4 Monthly Moving Average Price (MMAP) ............................................................................. 159
13.5 Monthly Average Settlement Price (MASP) ........................................................................ 159
13.6 Closing Price ....................................................................................................................... 160
13.7 Notional Average Price (NAP) ............................................................................................ 161
14 APPENDIX F - WAREHOUSE STOCK DATA .......................................................................... 162
14.1 Grade .................................................................................................................................. 162
14.2 Location ............................................................................................................................... 164
15 APPENDIX G - MARKET DATA TRADE EXAMPLES ............................................................. 166
15.1 Trade at Reference Price Trade ......................................................................................... 166

Page 8

Page 8
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

1 Introduction

1.1 Purpose
The LME has embarked on a program to fully rebuild its trading platform, LMEselect, and to upgrade
the technology of its market data platform, LMEsource. LMEsource will be the LME’s sole market
data platform, disseminating incremental updates for bid, ask, trade, statistics and provide recovery
and supporting services for client processing of this market data.
This document specifies the binary interface for LMEsource v4, which will disseminate electronic
market data from LMEselect v10 and non-electronic market data from Ring and Inter Office venues.

1.2 Delivery Phasing for Electronic Market Data


This document covers all the functionality available in LMEselect v10 and LMEsource v4 however
some functionality will be delivered in phased releases.
Functionality and/or data that will be included in a later release is specified in the following table and
shown throughout the document in dark grey italics. The initial release of LMEselect v10 and
LMEsource v4 will contain all functionality that is not specified in the table below.

Function Reference

Option Instruments Outright Definition (301)


Strategy Definition (302)

Speedbump Orders Order Add (323)


Order Amend (324)

Cancelled Trades Order Executed (326)


Market Data Trade (341)

Quote Requests Quote Request (329)

Strategy Types Strategy Type Code


All strategy types except Carry

Options Options

TAPOs Traded Average Price Options (TAPOs)

Page 9

Page 9
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

1.3 Products
A range of products are provided catering for the varying needs of LMEsource clients. Each product
may contain multiple distinct multicast channels and will contain data for both futures and options.
The set of products will encompass Level 1 Top-of-Book, Level 2 15 Levels Price Book and Level 3
Full book offerings for electronic market data.

1.3.1 Electronic Product Summary Table

The table below shows the market data products and the specific chapters in this document that are
relevant to each individual product.

Section Message Formats Level 1 Level 2 Level 3


Top of Book 15 Levels Price Full Book
Book

3.1 Data Types ◆ ◆ ◆

3.2 Packet Structure ◆ ◆ ◆

3.2.1 Packet Header ◆ ◆ ◆

3.4 Control Messages ◆ ◆ ◆

3.5 Retransmission ◆ ◆ ◆

3.6 Refresh ◆ ◆ ◆

4.1.1 Contract Definition ◆ ◆ ◆


(300)

[Link] Outright Definition (301) ◆ ◆ ◆

[Link] Strategy Definition ◆ ◆ ◆


(302)

4.1.3 Price Limits (305) ◆ ◆ ◆

4.2.1 Market State - Contract ◆ ◆ ◆


(311)

4.2.2 Market State - ◆ ◆ ◆


Instrument (312)

4.3.1 Top of Book (321) ◆

4.3.2 Aggregate Order Book ◆

Page 10

Page 10
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Section Message Formats Level 1 Level 2 Level 3


Top of Book 15 Levels Price Full Book
Book

(322)

4.3.3 Order Add (323) ◆

4.3.4 Order Amend (324) ◆

4.3.5 Order Cancel (325) ◆

4.3.6 Order Executed (326) ◆

4.3.7 Order Book Clear (327) ◆ ◆ ◆

4.3.8 Quote Request (329) ◆ ◆ ◆

4.3.9 Indicative Opening ◆ ◆ ◆


Price (320)

3.7.1 Market Data Trade ◆ ◆


(341)

4.4.1 Trade Statistics - End of ◆ ◆ ◆


Day (351)

4.4.2 Trade Statistics - ◆ ◆


Intraday (352)

6 Recovery ◆ ◆ ◆

7 Level 2 Aggregate ◆
Order Book
Management

8 Level 3 Full Order Book ◆


Management

1.3.2 Non-Electronic Product Summary Table

Section Message Formats

5.1.1 Instrument Definition (303)

Page 11

Page 11
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Section Message Formats

5.1.2 Tradable Instrument Definition (304)

5.2.1 Market State – Product (310)

5.3.1 Market Data Order (328)

5.3.2 Indicative Trade Price (340)

3.7.1 Market Data Trade (341)

5.3.3 Business Event – Pre-TT Auction (342)

5.3.4 Order Statistics - Intraday (350)

5.4.1 Reference Price (401)

5.4.2 Reference Forward Curve Price (402)

5.4.3 Reference FX Rate (403)

5.4.4 Reference Volatility Price (404)

5.4.5 Reference Auction Price (405)

5.5.1 Open Interest (420)

5.5.2 Open Interest Band (421)

5.5.3 Position Band (422)

5.5.4 Warrant Band (423)

5.5.5 Trading Volume (424)

5.5.6 Warehouse Stock Movement (426)

Page 12

Page 12
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

2 System Overview

2.1 Scope

Real Time Retransmission


Refresh Service
Service Service

Dual Refresh
Request Retrans
multicast Dual multicast
TCP/IP TCP/IP
channels channels

Client

Figure 1: Access to Market Data

LMEsource provides market data represented in an efficient binary message format for all
instruments traded on the LME Market. It has been designed for high throughput and low latency.

2.1.1 Multicast

Messages are published in a one-to-many fashion using the IP multicast and UDP transport
protocols. Multicast is not a connection-oriented protocol. Data is sent strictly in one direction from
server to clients.

2.1.2 Dual Multicast Channels

Due to the inherently unreliable nature of the UDP transport, packets may be lost or delivered out of
sequence. To mitigate the risk of packet loss, the messages are duplicated and sent over two
separate multicast channels (dual channels). Technically, a multicast channel corresponds to a
multicast group.
Each pair of dual multicast channels has a unique identifier, which is referred to as the ChannelID.
More details regarding the configuration parameters (including the IP addresses and port numbers
corresponding to the multicast channels) will be found in the LME Systems Connectivity Guide which
will be provided at a later stage.

2.1.3 Recovery Mechanisms

LMEsource provides two recovery mechanisms:

• A retransmission server which provides an on-request gap-fill retransmission of lost messages.


The retransmission requests and gap-fill replies are a point-to-point (TCP/IP connection), see
section 3.5 and 6.3.

• A refresh server provides snapshots of the market state at regular intervals throughout the
business day, see section 3.6 and 6.4. Snapshots are sent using multicast on separate
channels for the real time messages. The time period between snapshots is 45 seconds, but
this may vary across multicast channels.

Page 13

Page 13
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

2.2 Session Management


Each multicast channel maintains its own session. A session is limited to one business day. During
this day the message sequence number is strictly increasing and therefore unique within the channel.

2.2.1 Start of Day

LMEsource will normally be brought up at around 00:15 – 00:30. This start up time is not rigid and the
LME has the right to adjust this time according to different trading situations.
On each channel the first message at the start of the business day is the Sequence Reset message.
The Sequence Reset message carries sequence number 1. On receipt of this message, the client
must clear all cached data for all instruments.
At start-up, LMEsource will disseminate reference data for outright and strategy tradable instruments.
If a client starts listening after the start of the business day and misses the Sequence Reset message
and reference data, it must use the refresh service to recover and synchronize with the real time
channels.
The following table provides an overview of the Electronic market data messages published by
LMEsource at start of day with indicative times:

Event Time Activity / Messages Published

Maintenance 00:00 LMEsource housekeeping and maintenance operations are


Window onwards performed.
LMEsource may be started up and shutdown intermittently.
Sequence Reset (100) messages may be published on some
multicast channels.

LMEsource starts 00:30 Sequence Reset (100) message published.


Contract Definition (300) published if a contract has been pre-
listed.
Outright Definition (301) and Strategy Definition (302) reference
data messages published.
Price Limits (305) messages published.

Trading session 00:45 1. Market State - Contract (311) and Market State - Instrument
moves to Pre- (312) messages published
Open
2. Indicative Opening Price (320) messages are published

Uncrossing 01:00 Level 1 and Level 2 Participants


1. LMEsource publishes Market Data Trade (341) messages for

Page 14

Page 14
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Event Time Activity / Messages Published

orders that match during uncrossing.


Level 2 Participants
2. Trade Statistics - Intraday (352) messages are published for
the matched trades during uncrossing.

Level 3 Participants
1. Order Executed (326) messages are published.
2. Trade Statistics - Intraday (352) messages are published for
the matched trades during uncrossing.

Trading session 01:00 Level 1 and Level 2 Participants


moves to Open
1. Market State - Contract (311) and Market State - Instrument
(312) messages published.
2. Order Book Clear (327) message published.
3. Top Of Book (321) and Aggregate Order Book (322)
messages are published to reflect the current state of the order
book. This includes any resting implied orders.
4. Market Data Trade (341) messages are published.

Level 3 Participants
1. Market State - Contract (311) and Market State - Instrument
(312) messages published.
2. Order Book Clear (327) message published.
3. Order Add (323) messages are published to reflect the
current state of the order book. No implied orders are
published.
4. Order Executed (326) messages are published.

Continuous 01:00 Level 1 and Level 2 Participants


Trading – Order onwards
1. Top Of Book (321) and Aggregate Order Book (322)
Entry and
messages are published to reflect the current state of the order
Amendment
book, including implied orders.

Level 3 Participants
1. Order Add (323), Order Amend (324) and Order Cancel

Page 15

Page 15
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Event Time Activity / Messages Published

(325) messages are published to reflect the current state of the


order book. No implied orders are published.

Continuous 01:00 Level 1 and Level 2 Participants


Trading – Matched onwards
1. LMEsource publishes Market Data Trade (341) messages as
Trades
orders are matched in real-time.
Level 2 Participants
2. Trade Statistics - Intraday (352) messages are published.
Level 1 and Level 2 Participants
3. Top Of Book (321) and Aggregate Order Book (322)
messages are published to reflect the current state of the order
book, including implied orders.

Level 3 Participants
1. LMEsource publishes Order Executed (326) messages as
they are matched in real-time.
2. Trade Statistics - Intraday (352) messages are published.

The following table provides an overview of the Non-Electronic market data messages published by
LMEsource at start of day:

Event Time Activity / Messages Published

Maintenance Window 00:00 LMEsource housekeeping and maintenance operations are


onwards performed.
LMEsource may be started up and shutdown intermittently.
Sequence Reset (100) messages may be published on some
multicast channels.

LMEsource starts 00:30 Sequence Reset (100) message published.


Instrument Definition (303) and Tradable Instrument
Definition (304) reference data messages published.

See section 5.6 for a summary of the publication schedule.

Page 16

Page 16
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

2.2.2 Normal Transmission

Normal message transmission is expected between when the market opens for trading and when the
market is closed. Heartbeats are sent at regular intervals (currently set at every 2 seconds) on each
channel when there is no activity. The LME may adjust this interval.

2.2.3 End of Day

LMEsource will typically shut down at around 21:00 London time after the clearing procedure has
completed. A later shutdown may occur due to special circumstances. The shutdown time is not rigid
and the LME has the right to adjust this time according to different trading situations.

2.2.4 Error Recovery

[Link] System Component Failure


If a system component fails that results in a small amount of packet loss and requires a failover or
restart, there will be a short interruption in multicast dissemination from either Line A or Line B. The
system is deployed in an active-active configuration with Line A and Line B being generated
independently and so line arbitration will allow the client to continue receiving messages – see
section 6 for more information about recovery.

[Link] Disaster Recovery


In the unlikely event of a disaster recovery situation at the primary site, LMEsource will be brought up
at the disaster recovery (DR) site.
During the interruption, no data will be sent, including heartbeats.
A Sequence Reset message will be sent on each channel when LMEsource is brought up.
A Disaster Recovery (DR) Signal message indicating the DR status will also be sent on its dedicated
channel when LMEsource is brought up – see section 3.4.3 for more information about the DR Signal
message.
IP addresses and ports that have been provided for the DR site’s retransmission service should be
used. See the LME Systems Connectivity Guide for more details.

2.3 Trading Sessions


Trading on LMEselect is conducted in a single continuous trading session every trading day. The
Ring operates multiple trading sessions. There may be circumstances when there is a change to the
trading schedule however LMEsource will continue to provide real time data as long as the trading
system is available.

2.4 Race Conditions


Due to the nature of the dissemination protocol, the real time order/trade data and reference data are
disseminated via separate channels so users need to be aware that there is the potential for a race
condition.

Page 17

Page 17
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

As an example, suppose an Instrument State message is sent showing a change to state ‘Post
Trade’, however for a very short time after this message the regular order and trade information for
this instrument may continue to arrive.

Page 18

Page 18
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

3 Common Message Formats

3.1 Data Types


The following table lists all the data types used by LMEsource.

Format Description

String ASCII characters which are left aligned and padded with spaces, unless
otherwise specified.

Uint8 8 bit unsigned integer.

Uint16 Little-Endian encoded 16 bit unsigned integer.

Uint32 Little-Endian encoded 32 bit unsigned integer.

Uint64 Little-Endian encoded 64 bit unsigned integer.

Int8 Little-Endian encoded 8 bit signed integer.

Int16 Little-Endian encoded 16 bit signed integer.

Int32 Little-Endian encoded 32 bit signed integer.

Int64 Little-Endian encoded 64 bit signed integer.

3.1.1 Null Values

From time to time certain fields cannot be populated and specific values are used to represent null.
The table below shows the values used to represent null for different data types.

Format Null representation (Hex 2’s complement)

Int8 0x80

Int32 0x8000 0000

Int64 0x8000 0000 0000 0000

Uint8 0xFF

Page 19

Page 19
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Format Null representation (Hex 2’s complement)

Uint16 0xFFFF

Uint32 0xFFFF FFFF

Uint64 0xFFFF FFFF FFFF FFFF

3.1.2 Implied Decimal

In order to avoid decimal calculation in LMEsource, the number of implied decimals will be specified
for a field for example Price as shown below. Clients are required to perform the actual scaling for
data value.

Constant Name Type Implied Decimal places Example

PRICE Int64 6 123456789 = 123.456789

3.1.3 Timestamp Precision

Constant Name Type Format

TIME Uint64 UTC timestamp in nanoseconds since epoch.


Precision is provided to the nearest microsecond.

3.2 Packet Structure


Multicast packets are structured into a common packet header followed by zero or more messages.
Messages within a packet are laid out sequentially, one after another without any spaces between
them.

Packet Header Message 1 Message 2 … Message n

The maximum length of a packet is 1500 bytes which includes the multicast headers, packet header
and messages.
A packet will only ever contain complete messages. A single message will never be fragmented
across packets unless otherwise stated.

3.2.1 Packet Header

All packets will begin with a common packet header. The packet header provides information
including the total packet length, the number of messages within the packet, the sequence number of
the first message and a send timestamp.

Page 20

Page 20
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description

0 PktSize Uint16 2 Size of the packet (including this field)

2 MsgCount Uint8 1 Number of messages included in the


packet

3 Filler String 1

4 SeqNum Uint32 4 Sequence number of the first message in


the packet

8 SendTime Uint64 8 The UTC timestamp for the time this


message.

Header length 16

3.3 Message Structure


The format of each message within a packet will vary according to the message type. However,
regardless of the message type, each message will start with a two-byte message size (MsgSize)
followed by a two-byte message type (MsgType). These are described in the following table.

Field Format Len Description

MsgSize Uint16 2 Message length (including this field)

MsgType Uint16 2 Type of message.


The valid values for MsgType are below:
100 Sequence Reset
101 Logon
102 Logon Response
105 Disaster Recovery Signal
201 Retransmission Request
202 Retransmission Response
203 Refresh Complete
300 Contract Definition
301 Outright Definition
302 Strategy Definition
303 Instrument Definition

Page 21

Page 21
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Field Format Len Description

304 Tradable Instrument Definition


305 Price Limits
310 Market State - Product
311 Market State - Contract
312 Market State - Instrument
320 Indicative Opening Price
321 Top Of Book
322 Aggregate Order Book
323 Order Add
324 Order Amend
325 Order Cancel
326 Order Executed
327 Order Book Clear
328 Market Data Order
329 Quote Request
340 Indicative Trade Price
341 Market Data Trade
342 Business Event - Pre-TT Auction
350 Order Statistics - Intraday
351 Trade Statistics - End of Day
352 Trade Statistics - Intraday
401 Reference Price
402 Reference Forward Curve Price
403 Reference FX Rate
404 Reference Volatility Price
405 Reference Auction Price
420 Open Interest
421 Open Interest Band
422 Position Band
423 Warrant Band
424 Trading Volume

Page 22

Page 22
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Field Format Len Description

426 Warehouse Stock Movement

3.4 Control Messages

3.4.1 Heartbeat

Heartbeats consist of a packet header with MsgCount set to 0. They do not carry a sequence number
and therefore do not increment the sequence number of the multicast channel. SeqNum is set to the
sequence number of the previous message sent on the channel.
The Heartbeat message will be identical for all the services.

3.4.2 Sequence Reset (100)

The Sequence Reset message is sent on each multicast channel at start of day. It may also be sent
intraday in case of a disaster recovery.
The client must ignore the sequence number of the Sequence Reset message itself and set the next
expected sequence number to NewSeqNo. The client may receive multiple sequence reset
messages from all channels. Whenever the Sequence Reset message is received, clients must clear
all cached data for all instruments traded in the Market and then subscribe to the refresh channels to
receive the current state of the market.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 100 = Sequence Reset

4 NewSeqNo Uint32 4 New sequence number. Always set to 1

Total length 8

3.4.3 Disaster Recovery Signal (105)

The Disaster Recovery (DR) Signal message is sent on a dedicated multicast channel (DR channel)
whenever a site failover is triggered intraday. In normal situations, the dedicated DR channel only
carries heartbeats until the end of the business day.
When site failover begins, a DR Signal is sent with “DRStatus=1” indicating that the DR process has
been activated. Clients should then clear all cached market data and prepare their own system for
the site failover. When the site failover process finishes, a DR Signal will be sent with “DRStatus=2”,
thereupon clients can start to rebuild the latest market image from the refresh service. The same DR
Signal will be sent periodically until the end of the business day. If the DR instance of LMEsource is
started as the primary on the following day and subsequent days, the DR Signal is not sent

Page 23

Page 23
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 105 = DR Message

4 DRStatus Uint32 4 Status during site failover 1 = DR in progress


2 = DR completed

Total length 8

3.5 Retransmission
Section 6.3 Retransmission service provides details on the retransmission messages.
When the Logon (101) or Retransmission Request (201) messages are sent to the LMEsource
server, the client must also include a packet header as shown below.
The same header is used by the RTS server when sending either a Logon Response (102) or a
Retransmission Response (202) messages to clients. In this case the SeqNum and SendTime fields
are not relevant and can be discarded.
There is no Logoff required for the Retransmission service. The client can simply disconnect from the
session.

Offset Field Format Len Values Notes

0 PktSize Uint16 2 32 16 bytes for this header plus 16 bytes for


either the Logon (101) or Retransmission
Request (201) message.
When sent by the RTS, this will contain
16 bytes for this header, plus either 8
bytes for the Logon Response (102) or
16 bytes for the Retransmission
Response (202)

2 MsgCount Uint8 1 1 One message only

3 Filler String 1 Empty Filler

4 SeqNum Uint32 4 0 This field is not used

8 SendTime Uint64 8 0 This field is not used

Total length 16

Page 24

Page 24
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

After this header, the fields for either Logon (101) or Retransmission Request (201) should follow.

3.5.1 Logon (101)

The Logon message enables client authentication. This is not required for multicast channels and is
only used for retransmission requests.
Normal operation: The client sends a Logon message containing username to LMEsource, which
responds with a Logon Response message with the SessionStatus set to 0 (Session Active).

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 101 = Logon

4 Username String 12 Username to log on, padded


with binary null characters

Total length 16

3.5.2 Logon Response (102)

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 102 = Logon


Response

4 SessionStatus Uint8 1 Status of the session 0 = Session Active


5 = Invalid username
or IP address
100 = User already
connected

5 Filler String 3

Total length 8

3.5.3 Retransmission Request (201)

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

Page 25

Page 25
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

2 MsgType Uint16 2 Type of message 201 =


Retransmission
Request

4 ChannelID Uint16 2 Multicast Channel ID to which


the retransmission relates

6 Filler String 2

8 BeginSeqNum Uint32 4 Beginning of sequence

12 EndSeqNum Uint32 4 Message sequence number of


last message in range to be
resent

Total length 16

3.5.4 Retransmission Response (202)

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 202 =


Retransmission
Response

4 ChannelID Uint16 2 Multicast Channel ID to


which the retransmission
relates

6 RetransStatus Uint8 1 Status of the Retransmission See section 6.3.2


response

7 Filler String 1

8 BeginSeqNum Uint32 4 First sequence number of


the Retransmission. Only
populated when
RetransStatus is 0

12 EndSeqNum Uint32 4 Last sequence number of


the Retransmission. Only
populated when

Page 26

Page 26
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

RetransStatus is 0

Total length 16

3.6 Refresh

3.6.1 Refresh Complete (203)

This message is published to mark the end of a refresh cycle, see section 6.4 for a full description of
refresh.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 203 = Refresh


Complete

4 LastSeqNum Uint32 4 Sequence number in the Numerical


real-time channel with
which the refresh is
synchronised

Total length 8

3.7 Trades

3.7.1 Market Data Trade (341)

The Market Data Trade message is generated each time a trade has been performed in either the
Electronic, Inter Office1 or Ring venues. When an incoming order matches against multiple resting
orders, there will be one Market Data Trade message published for each matched trade.
At market open on LMEselect, a Market Data Trade message will be published for any orders
entered during Pre-Open that matched.
A Market Data Trade message in a TaS/TaR tradable instrument in the Electronic venue will be
published on Electronic channels with the differential price when the trade is transacted on
LMEselect and published on the Non-Electronic channel when the price is substituted in LMEsmart,

1
Note: Publication of Large in Scale (LIS) option trades will be deferred to next business day at
19:00, see [Link]

Page 27

Page 27
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

see section 15.1. Market Data Trades in TaS/TaR tradable instruments in the Ring and Inter Office
venues will be published with only substituted prices.
A Market Data Trade in a strategy tradable instrument in the Electronic venue will contain the
strategy price and not leg prices. Strategy trades entered in LMEsmart will contain leg prices.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the


message

2 MsgType Uint16 2 Type of message 341 = Market


Data Trade

4 TimeOfEvent Uint64 8 The time at which


the transaction
occurred.
For Inter Office and
Ring venues, this
represents the time
the contract was
agreed between
counterparties.

12 TradableInstrumentID Uint64 8 Tradable


Instrument ID of
the trade

20 TradingVenue String 2 Trading venue on IO = Inter Office


which the trade
RK = Ring
was executed
EL = Electronic

22 MatchedTime Uint64 8 Time the trade was


matched in
LMEsmart, null
until such time.

30 RingSession String 2 This identifies the R1 = First


ring trading morning ring
session.
R2 = Second
Otherwise space if morning ring
not applicable.
R3 = First
afternoon ring
K1 = Morning

Page 28

Page 28
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

kerb session
K2 = Afternoon
kerb session
C1 = Basis Ring
1
C2 = Basis Ring
2
C3 = Basis Ring
3
D1 = Basis Kerb
1
D2 = Basis Kerb
2

32 TradeCancelFlag Uint8 1 Trade Cancel Flag 0 = False


1 = True

33 Price Int64 8 The price of the


trade.
For TaS/TaR either
the differential or
substituted price.
Null for a strategy
from a non-
electronic venue.
Implicit 6 decimal
place format.

41 Volume Uint32 4 Trade volume.


Null for a strategy
from a non-
electronic venue.

45 MatchID Uint64 8 Assigned trade


match identifier for
the matched trade.

53 TradeAtReferencePriceType String 1 For a TaR D = Differential


indicates whether
S = Substituted
the price is

Page 29

Page 29
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

Differential or Default = Space


Substituted. (i.e. not
applicable)

54 SubTypeOfTrade Uint8 1 Sub type of trade 1 = The trade


resulted from an
explicit order
2 = The trade
resulted from
uncrossing
7 = The trade
resulted from an
implied order
8 = The trade
resulted from two
implied orders
matching

55 RemainingRecords Uint16 2 Number of


remaining records
to be published.
The value is
updated as
messages are
published. When
the value of
RemainingRecords
= RecordCount it
indicates that this
is the last
message.
0 for the Electronic
venue

57 RecordCount Uint16 2 The number of


records in this
message.
0 for the Electronic
venue

59 StrategyLegCount Uint32 4 Number of legs

Page 30

Page 30
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

present
0 for the Electronic
venue

LegPrice Int64 8 Price allocated to


this leg of the
strategy
Implicit 6 decimal
place format.

LegVolume Uint32 4 Quantity allocated


to this leg of the
strategy

LegMatchID Uint64 8 Trade match


identifier assigned
to the matched
trade leg

LegTradeAtReferencePrice String 1 Indicates whether D = Differential


Type the price is
S = Substituted
Differential or
Substituted for a Default = Space
TaR leg. (i.e. not
applicable)

Total length 63 +
21no

(no = value of RecordCount)

Page 31

Page 31
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

4 Electronic Message Formats

4.1 Reference Data


The diagram in section 9 shows the levels in the product hierarchy which includes Contract and
Tradable Instrument.

4.1.1 Contract Definition (300)

This message is published for a new contract prior to its first trading date to enable participants to
configure risk management parameters before the contract becomes tradable.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 300 =


Contract
Definition

4 TradingVenue String 2 Trading venue EL =


Electronic

6 ContractCode String 12 A unique code to identify the


contract.

18 Name String 64 Name of the contract

82 ContractType String 1 Constant contract type F = Future


O = Option

83 ProductCode String 2 Product code e.g. ‘AA’,


‘AH’,’CA’

85 UnderlyingType String 1 Underlying Type C=


Commodity
F = Future

86 UnderlyingContractCode String 12 Reference to the underlying


contract

98 TradingCurrency String 3 The currency code according e.g. ‘USD’


to ISO 4217

101 SettlementType String 1 Settlement Type C = Cash

Page 32

Page 32
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

P = Physical

102 SettlementPricingMethod String 1 Settlement Pricing Method D = Daily


M = Monthly
Average

103 ExerciseStyle Int8 1 Exercise Style 0 = European


1 = American
2 = Asian
NULL for
Futures

104 LotUnit String 20 Lot Unit e.g. tonne

124 LotSize Uint64 8 The lot size for this tradable e.g. ‘20’, ‘25’,
instrument ‘5000’

132 LotSizeType String 1 Lot Size Type S = Standard


M = Mini

133 PriceType String 1 Price for futures, premium or P = Premium


volatility for options
V = Volatility
Space for
Futures

134 FirstTradingDate Uint32 4 First Trading Date YYYYMMDD

Total length 138

4.1.2 Tradable Instruments

Static reference data for tradable instruments is organised into two messages that provide a full list of
all securities/tradable instruments available on the LMEselect electronic market. The two messages
are shown in the entity relationship diagram below. The bold field(s) form the primary key for each
message type.
This section is only applicable to reference data for instruments traded on the LMEselect electronic
market.

Page 33

Page 33
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

The TradableInstrumentID field is used to link order and trade messages to a tradable instrument in
an Outright or Strategy Definition. This also applies to Market State - Instrument (312) messages that
are only applicable to one tradable instrument.
Tradable instruments are the lowest level in the product hierarchy as shown in section 9.

[Link] Outright Definition (301)


Describes an individual outright tradable instrument available from LMEsource.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

Page 34

Page 34
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

2 MsgType Uint16 2 Type of message 301 = Outright


Definition

4 TradingVenue String 2 Trading venue EL = Electronic

6 TradableInstrumentID Uint64 8 The id of the security


for which trades in this
tradable instrument are
held

14 MergedTradableInstrumentID Uint64 8 The


TradableInstrumentID
of merged tradable
instrument
NULL means no
merged tradable
instrument

22 LinkedTradableInstrumentID Uint64 8 The


TradableInstrumentID
of linked tradable
instrument. This will be
populated on TaS/TaR
instruments with the
TradableInstrumentID
of the parent
instrument
NULL means no linked
tradable instrument

30 ProductCode String 2 Product code. This e.g. ‘AA’,


identifies the metal for ‘AH’,’CA’
the instrument

32 ContractType String 1 Constant contract type F = Future


O = Option

33 TradingCurrency String 3 The currency code e.g. ‘USD’


according to ISO 4217

36 ContractCode String 12 A unique code to e.g. ‘PBDF’,


identify the contract ‘OCDF’,
‘AADO’,

Page 35

Page 35
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

‘NADT’

48 ExpiryDate Uint32 4 The expiry date for this YYYYMMDD


tradable instrument,
see section 11

52 PromptType String 1 Identifies whether the S = Single


prompt is a single or a
R = Rolling
rolling prompt

53 StrikePrice Int64 8 The strike price for this NULL for


tradable instrument futures
Implicit 6 decimal place
format.

61 OptionType String 1 For option tradable C = Call


instruments, whether
P = Put
this tradable
instrument represents Default - Space
a call or a put option (not applicable)

62 ExerciseStyle Int8 1 Exercise Style 0 = European


1 = American
2 = Asian
NULL for
Futures

63 PromptDateLabel String 6 Prompt Date Label See section


10.1

69 PriceCode String 2 A code to represent e.g. ‘TC’, ‘TS’


the ‘Trade at
Default =
Reference’ or ‘Trade at
Space (i.e. not
Settlement’ price.
applicable)
See section 10.4

71 ISIN String 12 ISIN Code Space (i.e. not


applicable)
Not applicable if the
tradable instrument
belongs to an
algorithmic test

Page 36

Page 36
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

contract

83 CFICode String 6 The instrument e.g. ‘FCEPSX’,


classification according ‘FCECSX’,
to ISO 10962. ‘OCAFPS’

89 MarketCode String 4 Market Code LME = the


base metals
market

93 MarketSegmentCode String 12 A string identifier for e.g. ‘Base’,


the individual market ‘Ferrous’,
segment to which the ‘Minor’
outright belongs

105 TickSizeID Uint32 4 Tick Size ID. See section


10.3

109 LotSize Uint64 8 The lot size for this e.g. ‘20’, ‘25’,
tradable instrument ‘5000’

117 LotSizeType String 1 Lot Size Type S = Standard


M = Mini

118 LastTradingDate Uint32 4 Last Trading Date YYYYMMDD

122 SettlementType String 1 Settlement Type C = Cash


P = Physical

123 SettlementPricingMethod String 1 Settlement Pricing D = Daily


Method
M = Monthly
Average

124 UnderlyingType String 1 Underlying Type C = Commodity


F = Future

Total length 125

Page 37

Page 37
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

[Link] Strategy Definition (302)


Describes individual strategy tradable instruments available from LMEsource.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 302 =


Strategy
Definition

4 TradingVenue String 2 Trading venue EL =


Electronic

6 TradableInstrumentID Uint64 8 The id of the security for


which trades in this
tradable instrument are
held

14 MergedTradableInstrumentID Uint64 8 The


TradableInstrumentID of
merged tradable
instrument
NULL means no merged
tradable instrument

22 ProductCode String 2 The product code. This e.g. ‘AA’,


identifies the metal for ‘AH’,’CA’
the instrument

24 ContractType String 1 Constant contract type F = Future


O = Option

25 TradingCurrency String 3 The currency code e.g. ‘USD’


according to ISO 4217

28 StrategyTypeCode Uint32 4 Strategy Type See section


10.2

32 ContractCode String 12 A unique code to identify e.g. ‘PBDF’,


the contract. This is the ‘OCDF’,
contract code for the ‘AADO’,
near leg of the strategy. ‘NADT’

44 ExerciseStyle Int8 1 Exercise Style 0=

Page 38

Page 38
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

European
1=
American
2 = Asian
NULL for
Futures

45 PriceCode String 2 A code to represent the e.g. ‘TC’,


‘Trade at Reference’ or ‘TS’
‘Trade at Settlement’
Default =
price code
Space (i.e.
not
applicable)

47 MarketCode String 4 Market Code LME = the


base metals
market

51 MarketSegmentCode String 12 A string identifier for the e.g. ‘Base’,


individual market ‘Ferrous’,
segment to which the ‘Minor’
outright belongs

63 TickSizeID Uint32 4 Tick Size ID, see section


10.3

67 LotSize Uint64 8 Lot Size

75 LotSizeType String 1 Lot Size Type S=


Standard
M = Mini

76 LastTradingDate Uint32 4 Last Trading Date YYYYMMD


D

80 SettlementType String 1 Settlement Type C = Cash


P = Physical

81 SettlementPricingMethod String 1 Settlement Pricing D = Daily


Method
M = Monthly
Average

Page 39

Page 39
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

82 UnderlyingType String 1 Underlying Type C=


Commodity
F = Future

83 StrategyLegCount Uint32 4 Number of Legs of this 2 to 13


Strategy instrument

LegNumber Uint32 4 An identifier for each leg Starts from


in the strategy 1,
increments
by 1 for
each leg

LegBuySell String 1 Leg direction B = Buy


S = Sell

LegRatio Uint64 8 Leg ratio of the strategy


leg
Implicit 3 decimal place
format.
Where strategy type
code = 9, it represents
the delta value for each
delta hedge leg e.g.
0.413 delta (413).

LegDeltaHedgePrice Int64 8 Underlying price for a


futures leg in a delta-
hedge custom strategy.
NULL value otherwise.
Implicit 6 decimal place
format.

LegTradableInstrumentID Uint64 8 TradableInstrumentID of Reference


the strategy leg to the
outright
definition of
this leg

Total length 87 +
29no

Page 40

Page 40
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

(no = value of StrategyLegCount)

[Link] Merged Instruments


There are occasions when multiple tradable instruments in a contract share the same actual prompt
date. On the trading date on which tradable instruments share the same actual prompt date, the
order books for these tradable instruments will be merged. Similarly, Carry strategies with
corresponding legs sharing the same prompt date will also be merged, see section [Link].2.
All market data updates, orders, trades and statistics, will be published for the merged tradable
instrument using the TradableInstrumentID of the rolling prompt as shown in the following examples.

[Link].1 Merged Outrights


Example 1 – 3M merges with a monthly prompt
Assume the business date 16 May 2023, the 3M rolling prompt instrument coincides with a single
prompt tradable instrument, a monthly 3rd Wednesday. This results in two Outright Definition
messages being published by LMEsource, one for each tradable instrument. In each of these
Outright Definition messages, the field MergedTradableInstrumentID will contain the
TradableInstrumentID for tradable instrument of the rolling prompt.

TI TradableInstrumentID MergedTradableInstrumentID Prompt Date

3M 125 125 20230816

M3 458 125 20230816

[Link].2 Merged Strategies


Carry strategies that include a leg in a merged order book will also merge. This can occur if a leg or
legs share the same actual prompt date as shown in the following examples for the business date 16
May 2023:
Example 1 – Carry with a single rolling prompt merges with a Carry of two single prompts
3M-M4 contains a rolling prompt which shares the same prompt date in the first leg of a second
Carry, M3-M4. Both legs M3-M4 have the same actual prompt dates as the legs in 3M-M4.
In each Strategy Definition, the MergedTradableInstrumentID will contain the TradableInstrumentID
of the Carry with the rolling leg.

TI TradableInstrumentID MergedTradableInstrumentID Prompt Date

3M-M4 124 124 20230816 vs 20230920

M3-M4 457 124 20230816 vs 20230920

Example 2 – Carry with two rolling prompts merges with multiple Carries containing dated
equivalent legs
A Carry with two rolling legs, Cash-3M, has legs that have single prompt equivalents.

Page 41

Page 41
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

In each Strategy Definition, the MergedTradableInstrumentID will contain the TradableInstrumentID


of the tradable instrument with two rolling legs.

TI TradableInstrumentID MergedTradableInstrumentID Prompt Date

Cash-3M 123 123 20230518 vs 20230816

Cash-M3 456 123 20230518 vs 20230816

Single dated 789 123 20230518 vs 20230816


equivalent of
Cash-3M

Single dated 999 123 20230518 vs 20230816


equivalent of
Cash-M3

4.1.3 Price Limits (305)

Describes the upper and lower price limits for an outright tradable instrument. Where Daily Price
Limits are enabled for a contract, they are published for electronic tradable instruments and the same
limits are also applicable to non-electronic tradable instruments.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 305 = Price Limit

4 TradableInstrumentID Uint64 8 Tradable instrument ID

12 UpperPriceLimit Int64 8 Upper price limit for the


outright tradable
instrument for the
current trading day
Implicit 6 decimal place
format.

20 LowerPriceLimit Int64 8 Lower price limit for the


outright tradable
instrument for the
current trading day
Implicit 6 decimal place
format.

28 TransactionTime Uint64 8 The time at which the

Page 42

Page 42
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

price limits were


created.

Total length 36

4.2 Status Data


The following messages are generated whenever there is a change to the trading state or trading
state condition at contract or tradable instrument level.
The following trading state conditions can be imposed:

• Pause – order books remain active, order submission and amendment is not permitted only
cancellation.
• Halt – order books are cleared, order submission and management is not permitted.

Order Book Clear (327) messages can be generated in response to market state changes, see
section 4.3.7.
Note a Technical Halt will occur in the event of a site failover, see section [Link].

4.2.1 Market State - Contract (311)

This message indicates the trading state of instruments at the contract level, e.g. Copper Futures,
Aluminium Options. The ContractCode field is common across the Contract State (311), Outright
Definition (301) and Strategy Definition (302) messages and is used to link the contract state to
individual tradable instruments.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 311 = Market


State Contract

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 Time of event.

14 ContractCode String 12 A string that combines e.g. ‘PBDF,


the contract symbol, OCDF, AADO,
contract type and NADT’
currency

26 TradingState Uint8 1 Trading State 1 = Pre-Open

Page 43

Page 43
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

2 = Open
3 = Post Trade
4 = Close
6 = Technical Halt

27 StartTime Uint64 8 Trading State Start Time


0 (not applicable) for
Technical Halt

35 EndTime Uint64 8 Trading State End Time


0 (not applicable) for
Technical Halt

43 TradingStateCondition String 1 Current trading state P = Pause


condition
H = Halt
Blank = Active (or
when pause/halt
has been lifted)

44 Filler String 2

Total length 46

4.2.2 Market State - Instrument (312)

This message indicates the trading state of an individual tradable instrument and is sent when the
instrument state differs from that at contract level, for example when TOM goes into Post Trade
before the contract.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 312 = Market


State Instrument

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 Time of event.

14 TradableInstrumentID Uint64 8 Tradable Instrument ID

Page 44

Page 44
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

22 TimetableControlType String 1 Timetable Control Type A = Automatic


(default trading
schedule)
M = Manual
(temporary
trading
schedule)

23 TradingState Uint8 1 Trading State 1 = Pre-Open


2 = Open
3 = Post Trade
4 = Close
6 = Technical
Halt

24 StartTime Uint64 8 Trading State Start Time


0 (not applicable) for
Technical Halt

32 EndTime Uint64 8 Trading State End Time


0 (not applicable) for
Technical Halt

40 TradingStateCondition String 1 Current trading state P = Pause


condition
H = Halt
Blank = Active
(or when
pause/halt has
been lifted)

41 Filler String 3

Total length 44

4.2.3 Market State Processing

For a tradable instrument if Market State - Instrument (312) and Market State – Contract (311)
messages with the same TimeOfEvent have been received, the Market State - Instrument (312)
message should be used to determine the current order book state for the tradable instrument. The
Market State – Contract (311) messages should be ignored.

Page 45

Page 45
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

On receipt of a Market State – Instrument (312) message for a tradable instrument any subsequent
Market State – Contract (311) messages in the parent contract should be ignored for the tradable
instrument.

4.3 Order Book Data


With the exception of the Quote Request (329) and Indicative Opening Price (320) messages
described in sections 4.3.8 and 4.3.9 the messages in this section are only published when the
market is in the ‘Open’ state.

4.3.1 Top Of Book (321)

The Top of Book message is generated when the top price level has been modified. There are no
‘New’, ‘Change’ or ‘Delete’ actions for the Top of Book. Whenever the price, quantity or the number
of orders at the Top of Book changes, a new message is sent.
Whenever an order book is emptied as a result of market activity, a Top of Book message with price
fields set to Null and aggregate quantity / number of orders set to zero will be sent.
The TimeOfEvent is assigned the latest incoming event timestamp regardless of the event that
caused the update to the Top of Book. For GTC and GTD orders that were reloaded the
TimeOfEvent will reflect the uncrossing event time at market open.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 321 = Top of


Book

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


updated the order
book, triggering a
Top of Book
message.

14 TradableInstrumentID Uint64 8 Tradable Instrument


ID

22 AggregateBidVolume Uint64 8 Aggregated quantity


available on the bid
side

30 AggregateAskVolume Uint64 8 Aggregated quantity


available on the ask
side

Page 46

Page 46
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

38 BidPrice Int64 8 The bid price


Implicit 6 decimal
place format.

46 AskPrice Int64 8 The ask price.


Implicit 6 decimal
place format.

54 NumberBidExplicitOrders Uint32 4 The total number of


Bid orders in the best
price level for Explicit
Orders

58 BidQtyExplicitOrders Uint64 8 The total quantity of


Bid orders in the best
price level for Explicit
Orders

66 NumberAskExplicitOrders Uint32 4 The total number of


Ask orders in the
best price level for
Explicit Orders

70 AskQtyExplicitOrders Uint64 8 The total quantity of


Ask orders in the
best price level for
Explicit Orders

78 NumberBidImpliedOrders Uint32 4 The total number of


Bid orders in the best
price level for Implied
Orders

82 BidQtyImpliedOrders Uint64 8 The total quantity of


Bid orders in the best
price level for Implied
Orders

90 NumberAskImpliedOrders Uint32 4 The total number of


Ask orders in the
best price level for
Implied Orders

Page 47

Page 47
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

94 AskQtyImpliedOrders Uint64 8 The total quantity of


Ask orders in the
best price level for
Implied Orders

Total length 102

4.3.2 Aggregate Order Book (322)

The aggregate order book is sent whenever there is an order book change within the top 15 price
levels. The TimeOfEvent is assigned the latest incoming event timestamp that resulted in any price
level being updated or removed. For GTC and GTD orders that were reloaded the TimeOfEvent will
reflect the uncrossing event time at market open.
Refer to Section 7 - Aggregate Order Book Management for details on the Aggregate Order Book
message.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the


message

2 MsgType Uint16 2 Type of message 322 = Aggregate


Order Book

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


updated the order
book, triggering an
Aggregate Order
Book message.

14 TradableInstrumentID Uint64 8 Tradable


Instrument ID

22 NoEntries Uint8 1 Number of book


entries within the
message

AggregateVolume Uint64 8 Total quantity of


orders in this price
level and side

Page 48

Page 48
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

Price Int64 8 Price


Implicit 6 decimal
place format.

NumberOfExplicitOrders Uint32 4 Number of Explicit


orders in this price
level and side

TotalQtyOfExplicitOrders Uint64 8 Total quantity of


Explicit orders in
this price level and
side

NumberOfImpliedOrders Uint32 4 Number of Implied


orders in this price
level and side

TotalQtyOfImpliedOrders Uint64 8 Total quantity of


Implied orders in
this price level and
side

BuySell String 1 Side of the order B = Buy


S = Sell

PriceLevel Uint8 1 Indicates the price 1 to 15


level (within top 15)
of the information
carried in the
message

UpdateAction Uint8 1 Type of market data 0 = New


update action
1 = Change
2 = Delete

Total length 23 +
43no

(no = value of NoEntries)

Page 49

Page 49
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

4.3.3 Order Add (323)

The Order Add message is generated when an order is placed in order book. An incoming,
aggressing order that matches against one or more resting orders will not be published as an Order
Add message, unless it has residual volume after matching.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 323 = Order Add

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect added


this order to the order book.
For reloaded GTC/GTD
orders this is the
uncrossing event time.

14 T1 Uint64 8 The time of the order NULL for


request from the LMEselect GTC/GTD
gateway reloaded / Stop
loss /
Speedbump
orders

22 T2 Uint64 8 The time when LMEselect NULL for


captured the order request GTC/GTD
reloaded / Stop
loss /
Speedbump
orders

30 T3 Unit64 8 The time when LMEselect NULL for


published this order request GTC/GTD
to LMEsource reloaded / Stop
loss /
Speedbump
orders

38 TradableInstrumentID Uint64 8 Tradable Instrument ID

46 OrderID Uint64 8 Order ID assigned by


LMEselect

54 BuySell String 1 Side of order B = Buy

Page 50

Page 50
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

S = Sell

55 Volume Uint32 4 Order Quantity

59 Price Int64 8 Price of order


Implicit 6 decimal place
format.

67 OrderBookPosition Uint32 4 Relative order position


within this side of the order
book based upon price and
time priority, see section
8.2.

71 Filler String 1

Total length 72

4.3.4 Order Amend (324)

The Order Amend message is generated when an order amendment updates the volume downward
or position in the order book.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 324 = Order


Amend

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


amended this order in the
order book.

14 T1 Uint64 8 The time of the order NULL for Stop


amend from the LMEselect loss /
gateway Speedbump
orders

22 T2 Uint64 8 The time when LMEselect NULL for Stop


captured the order amend loss /
request Speedbump

Page 51

Page 51
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

orders

30 T3 Unit64 8 The time when LMEselect NULL for Stop


published this order amend loss /
request Speedbump
orders

38 TradableInstrumentID Uint64 8 Tradable Instrument ID

46 OrderID Uint64 8 Order ID of amended order

54 BuySell String 1 Side of order B = Buy


S = Sell

55 Volume Uint32 4 Absolute outstanding


volume

59 Price Int64 8 Price of order


Implicit 6 decimal place
format.

67 OrderBookPosition Uint32 4 Relative order position


within the order book / price
/ side

71 Filler String 1

Total length 72

4.3.5 Order Cancel (325)

The Order Cancel message is generated when an order is cancelled in the order book.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 325 = Order


Cancel

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


cancelled this order from

Page 52

Page 52
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

the order book.

14 T1 Uint64 8 The time of the order NULL for mass


request from the LMEselect cancellations /
gateway trade halt

22 T2 Uint64 8 The time when LMEselect NULL for mass


captured the order request cancellations /
trade halt

30 T3 Unit64 8 The time when LMEselect


cancelled this order

38 TradableInstrumentID Uint64 8 Tradable Instrument ID

46 OrderID Uint64 8 Order ID for the cancelled


order

54 BuySell String 1 Side of order B = Buy


S = Sell

55 Filler String 1

Total length 56

4.3.6 Order Executed (326)

The Order Executed message is generated when an order is executed. An Order Executed message
will not be published for an aggressing order unless it matches with a resting implied order.
Publishing an Order Executed message for a resting implied order will only occur when two implied
orders are matched.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 326 = Order


Executed

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


created the trade that
executed this order.

Page 53

Page 53
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

14 TradableInstrumentID Uint64 8 Tradable Instrument


ID of the trade

22 Price Int64 8 The price of the trade


Implicit 6 decimal
place format.

30 Volume Uint32 4 Trade volume.

34 OrderID Uint64 8 Order ID assigned by


LMEselect.
The OrderID will be
NULL if the order has
not previously been
published.

42 MatchID Uint64 8 An id that can be


used to identify all
orders that matched
against each other

50 TradeCancelFlag Uint8 1 Trade Cancel Flag 0 = False


1 = True

51 SubTypeOfTrade UiInt8 1 Sub type of trade 1 = The trade


resulted from an
explicit order
2 = The trade
resulted from
uncrossing
7 = The trade
resulted from an
implied order
8 = The trade
resulted from two
implied orders
matching

52 TradeBuySell String 1 The side of the trade B = Buy


for this order
S = Sell

Page 54

Page 54
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

53 StrategyLegCount Uint32 4 Number of legs


present

LegTradableInstrumentID Uint64 8 Leg Tradable


Instrument ID

LegBuySell String 1 Leg side as B = Buy


applicable depending
S = Sell
on the trade side

LegPrice Int64 8 Price allocated to this


leg of the strategy
Implicit 6 decimal
place format.

LegVolume Uint32 4 Quantity allocated to


this leg of the
strategy

LegMatchID Uint64 8 Leg Match ID

Total length 57 +
29no

(no = value of StrategyLegCount)

4.3.7 Order Book Clear (327)

The Order Book Clear message is generated when order book is required to be clear, for example
after the transition between certain market states, or when an instrument’s Trading State Condition is
‘Trade Halt’.
The market state transitions that result in an Order Book Clear message are:
1. Pre-Open to Open. Any order events entered during Pre-Open that did not match during
uncrossing are published after the Order Book Clear message.
2. Open to Post-Trade.
Following an 'Order Book Clear' message, if an instrument is subsequently open for trading any
resting orders will be sent as Top of Book / Aggregate Order Book / Order Add messages to allow
clients to rebuild the order book.
An Order Book Clear message will not be published when an instrument enters or leaves ‘Trade
Pause’.

Page 55

Page 55
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 327 = Order


Book Clear

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time the trading state


of the instrument
changed, resulting in the
Order Book Clear
message.

14 TradableInstrumentID Uint64 8 Tradable Instrument ID

Total length 22

4.3.8 Quote Request (329)

The Quote Request message is generated when a request for quote is accepted by the Matching
Engine.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 329 = Quote


Request

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


created this quote
request.

14 TradableInstrumentID Uint64 8 Tradable Instrument ID

22 QuoteRequestType Uint8 1 Type of Quote Request 1 = Manual (a


single quote
request)
2 = Auto (a
streaming quote
request)

Page 56

Page 56
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

23 BuySell String 1 Side of order B = Buy


S = Sell
NULL = Two
sided quote

24 Volume Uint32 4 Amended delta quantity

28 Filler String 2

Total length 30

4.3.9 Indicative Opening Price (320)

The Indicative Opening Price (IOP) is the predicted opening trade price which is calculated using the
uncrossing algorithm during Pre-Open. If there are no crossed prices, no IOP is calculated or
disseminated. If a tradable instrument does not have a crossed order book but does have both a bid
and offer price then a mid-price (IOMP) will be calculated and published instead of the IOP.
An IOP and IOMP are mutually exclusive, i.e. when an IOP is available the IOMP is not applicable,
and will be set to null, and vice versa.
At the market state transition from Pre-Open to Open, an IOP message is published for every
tradable instrument with IndicativeOpeningPrice, and IndicativeOpeningMidPrice set to null and
IndicativeOpeningVolume set to 0 to indicate the IOP and IOMP prices are no longer valid.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 320 = Indicative


Opening Price

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


computed or derived
the IOP/IOMP.

14 TradableInstrumentID Uint64 8 Tradable Instrument


ID

22 IndicativeOpeningPrice Int64 8 Indicative Opening Default = NULL


Price
Implicit 6 decimal

Page 57

Page 57
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

place format.

30 IndicativeOpeningVolume Uint32 4 Indicative Opening Default = 0


Volume

34 IndicativeOpeningMidPrice Int64 8 Indicative Opening Default = NULL


Mid Price
Implicit 6 decimal
place format.

42 Filler String 2

Total length 44

4.4 Trade Statistics

4.4.1 Trade Statistics - End of Day (351)

The Trade Statistics - End of Day message is generated when the market moves to the Post-Trade
session for instruments that have traded. LMEsource will publish the LMEselect Opening and Closing
Prices, LMEselect Trading High, and LMEselect Trading Low for all contracts that have traded during
the day. The LMEselect Opening Price is the price of the first trade of the day.
Note: due to sequence of message publication the Trade Statistic - End of Day message may be
disseminated before the Instrument State (312) message that confirms the instrument as being in the
‘Post-Trade’ or ‘Closed’ state.
If there was an intraday restart of the LMEselect the OHL statistics will have been reset at the restart
and will reflect the open, high and low prices for the market session after restart.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message 351 = Trade


Statistics - End
of Day

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


computed or derived the
designated price.

Page 58

Page 58
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

14 TradableInstrumentID Uint64 8 Tradable Instrument ID

22 OpenPrice Int64 8 Opening trade price for


the current day.
Implicit 6 decimal place
format.

30 TradeHigh Int64 8 Highest trade price for the


current day
Implicit 6 decimal place
format.

38 TradeLow Int64 8 Lowest trade price for the


current day
Implicit 6 decimal place
format.

46 ClosingPrice Int64 8 Closing (final) trade price


for the current day
Implicit 6 decimal place
format.

Total length 54

4.4.2 Trade Statistics - Intraday (352)

The Trade Statistics - Intraday message contains trade information for completed trades. The trade
statistics information is provided on a snapshot basis.
At market open, if there has been any uncrossing activity in the instrument, three messages will be
published, one each for open price, high price and low price. Each of these three messages will
include any previously published OHL price. The opening price is the price of the first trade of the
day.
If there was no uncrossing activity in the instrument, a single Trade Statistics - Intraday message is
published, with the OpenPrice, TradeHigh and TradeLow fields set to null. Upon the first trade of the
day, three messages will be published, one each for open price, high price and low price.
If there is an intraday restart of the LMEselect the OHL statistics will be reset and will reflect the
open, high and low prices after the restart.

Offset Field Format Len Description Values

0 MsgSize Uint16 2 Size of the message

Page 59

Page 59
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Values

2 MsgType Uint16 2 Type of message 352 = Trade


Statistics -
Intraday

4 TradingVenue String 2 Trading venue EL = Electronic

6 TimeOfEvent Uint64 8 The time LMEselect


computed or derived the
designated price.

14 TradableInstrumentID Uint64 8 Tradable Instrument ID

22 OpenPrice Int64 8 Opening trade price for the


current day.
Implicit 6 decimal place
format.

30 TradeHigh Int64 8 Highest trade price for the


current day
Implicit 6 decimal place
format.

38 TradeLow Int64 8 Lowest trade price for the


current day
Implicit 6 decimal place
format.

Total length 46

Page 60

Page 60
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

5 Non-Electronic Message Formats

5.1 Reference Data


Non-electronic static reference data is published in two messages which are shown in the entity
relationship diagram below. The bold field(s) form the primary key for each message type.

The diagram in section 9 shows the levels in the product hierarchy which includes Instrument and
Tradable Instrument.

Page 61

Page 61
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

The InstrumentID links the tradable instrument and instrument. The InstrumentID is also used to link
reference prices, open interest and trading volume to an instrument.
For an electronic tradable instrument, the ContractCode, ExpiryDate and ISIN in the Outright
Definition (301) can be mapped to the ContractCode, ExpiryDate and ISIN in the Instrument
Definition (303) to obtain the InstrumentID and a lookup into the Reference Price (401), Open Interest
(420) or Trading Volume (424).
Note multiple tradable instruments in both the electronic and non-electronic markets can map to a
single InstrumentID, as shown in the following example:

Venue TradableInstrumentID Tradable Instrument InstrumentID

Electronic 86236 3M 11111

Electronic 31963 Dated equivalent of 3M 11111

Electronic 31970 3M TaS/TaR 11111

Ring 96200 3M 11111

Inter Office 97300 3M 11111

5.1.1 Instrument Definition (303)

Describes a futures outright prompt date or option call or put strike.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 303 =


Instrument
Definition

4 InstrumentID Uint64 8 Unique Instrument Identifier

12 Name String 40 Instrument name

52 ContractCode String 12 Contract to which the e.g. ‘PBDF’,


instrument belongs ‘OCDF’,
‘AADO’,
‘NADT’

64 UnderlyingInstrumentID Uint64 8 A reference to the underlying


Instrument.
NULL value otherwise

Page 62

Page 62
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

72 ExpiryDate Uint32 4 Expiry date, see section 11 YYYYMMDD

76 StrikePrice Int64 8 Option Exercise Price. NULL for


futures
Implicit 6 decimal place
format.

84 OptionType String 1 Call or Put. C = Call


Space if Contract Type = P = Put
Future.

85 CFICode String 6 The instrument classification e.g. ‘FCEPSX’,


according to ISO 10962. ‘FCECSX’,
‘OCAFPS’

91 ISIN String 12 ISIN Code Space (i.e. not


applicable)
Not applicable if the
Instrument belongs to an
algorithmic test contract

Total length 103

5.1.2 Tradable Instrument Definition (304)

Describes an individual outright, strategy or Trade at Reference tradable instrument on the Ring or
Inter Office venue.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the


message

2 MsgType Uint16 2 Type of message. 304 = Tradable


Instrument
Definition

4 TradableInstrumentID Uint64 8 Tradable


instrument ID

12 InstrumentID Uint64 8 The linkage


between Tradable
Instrument and
Instrument. See
section 5.1.1.

Page 63

Page 63
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

NULL if
InstrumentType =
Strategy

20 TradingVenue String 2 Trading venue RK = Ring


IO = Inter
Office

22 BusinessDaysToExpiry Uint32 4 Numeric indicator


of the number of
Business Days to
Expiry used as a
measure of how far
the instrument is
down the curve. Set
to one on the expiry
day, set to the
youngest leg if
Instrument Type =
Strategy.

26 LastTradingDate Uint32 4 Last Trading Date YYYYMMDD

30 TickSizeID Uint32 4 Tick Size ID See section


10.3

34 ContractCode String 12 A unique code to e.g. ‘PBDF’,


identify the contract ‘OCDF’,
‘AADO’,
‘NADT’

46 ContractType String 1 Constant contract F = Future


type
O = Option

47 InstrumentType String 1 Instrument Type O = Outright


S = Strategy

48 TradingCurrency String 3 The currency code e.g. ‘USD’


according to ISO
4217

51 MarketCode String 4 Market Code LME = the


base metals

Page 64

Page 64
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

market

55 MarketSegmentCode String 12 A string identifier e.g. ‘Base’,


for the individual ‘Ferrous’,
market segment to ‘Minor’
which the tradable
instrument belongs

67 ProductCode String 2 Product code. This e.g. ‘AA’,


identifies the metal. ‘AH’,’CA’

69 UnderlyingTradableInstrumentID Uint64 8 Underlying NULL when no


Tradable underlying
Instrument ID Tradable
Instrument
exists or the
Tradable
Instrument is a
strategy.

77 SettlementDate Uint32 4 Settlement Date YYYYMMDD


NULL for a
rolling prompt
or strategy

81 ExpiryDate Uint32 4 The expiry date for YYYYMMDD


this tradable
NULL for a
instrument, see
strategy
section 11.

85 OptionType String 1 For option tradable C = Call


instruments,
P = Put
whether this
tradable instrument Default =
represents a call or Space (i.e. not
a put option. applicable)

Not applicable for a


future or strategy.

86 StrikePrice Int64 8 The strike price for NULL for a


this tradable future or
instrument. strategy
Implicit 6 decimal

Page 65

Page 65
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

place format.

94 CFICode String 6 The instrument e.g. ‘FCEPSX’,


classification ‘FCECSX’,
according to ISO ‘OCAFPS’
10962.
Space (i.e. not
Not applicable for a applicable)
strategy

100 ISIN String 12 ISIN Code Space (i.e. not


applicable)
Not applicable for a
strategy

112 TradeAtReference Uint8 1 A flag to indicate 0 = False


that the instrument
1 = True
is a TaS/TaR type.

113 PriceCode String 2 The price code that See section


specifies the type of 10.4
TaS/TaR
Default =
instrument.
Space (i.e. not
Not applicable for applicable)
non-Trade at
Reference tradable
instruments.

115 PromptDateLabel String 6 Prompt Date Label See section


10.1
Not applicable for a
strategy Default =
Space (i.e. not
applicable)

121 PromptType String 1 Identifies whether S = Single


the prompt is a
R = Rolling
single or a rolling
prompt. Default =
Space (i.e. not
Not applicable for a
applicable)
strategy.

122 OptionStrikeRelativePosition Uint32 4 ATM Strike = 0, NULL if


ITM relative Contract Type
positions are = Future or

Page 66

Page 66
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

positive, OTM Instrument


positions are Type =
negative. Strategy
May not be NULL for an
contiguous. intraday
created strike

126 StrategyTypeCode Uint32 4 Strategy Type See section


10.2
NULL for an
outright

130 RemainingRecords Uint16 2 Number of


remaining records
to be published.
The value is
updated as
messages are
published. When
the value of
RemainingRecords
= RecordCount it
indicates that this is
the last message.

132 RecordCount Uint16 2 The number of


records in this
message.

134 StrategyLegCount Uint32 4 Number of strategy


legs

LegNumber Uint32 4 Leg number

LegBuySell String 1 Buy or sell indicator B = Buy


for the strategy leg
S = Sell

LegRatio Uint64 8 Leg ratio of the


strategy leg.
Implicit 3 decimal
place format.
Where strategy

Page 67

Page 67
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

type code = 9, it
represents the delta
value for each delta
hedge leg e.g.
0.413 delta (413).

LegDeltaHedgePrice Int64 8 The requested


price for the delta
hedge leg of the
strategy.
Only non-null for
the delta hedge leg
of a strategy.
Implicit 6 decimal
place format.

LegTradableInstrumentID Uint64 8 Tradable


Instrument Id of the
strategy leg.

Total length 138


+
29no

(no = value of Record Count)

5.2 Status Data

5.2.1 Market State - Product (310)

This message indicates the trading state of the product on the Ring and includes the ring session.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 310 = Market State


Product

4 TradingVenue String 2 Trading venue RK = Ring

6 TimeofEvent Uint64 8 Time of event.

14 ProductCode String 2 Product code e.g. ‘AA’, ‘AH’,’CA’

Page 68

Page 68
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

16 TradingState Uint8 1 Trading State 2 = Open


4 = Close

17 RingSession String 2 This identifies the ring R1 = First morning ring


trading session.
R2 = Second morning
ring
R3 = First afternoon ring
K1 = Morning kerb
session
K2 = Afternoon kerb
session

Total length 19

5.3 Inter Office and Ring Data

5.3.1 Market Data Order (328)

This message is generated each time there is a new order price and when Ring prices are withdrawn
or deleted. Prices can be withdrawn if they are no longer being quoted by traders in the Ring. Prices
can be deleted if incorrectly entered.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 328 = Market Data


Order

4 TimeOfEvent Uint64 8 The time at which the


transaction occurred.

12 TradableInstrumentID Uint64 8 Tradable Instrument ID

20 TradingVenue String 2 Trading venue IO = Inter Office


RK = Ring

22 RingSession String 2 This identifies the Ring R1 = First morning ring


trading session.
R2 = Second morning
Otherwise space if not ring

Page 69

Page 69
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

applicable. R3 = First afternoon


ring
K1 = Morning kerb
session
K2 = Afternoon kerb
session
C1 = Basis Ring 1
C2 = Basis Ring 2
C3 = Basis Ring 3
D1 = Basis Kerb 1
D2 = Basis Kerb 2

24 CancellationReason String 2 Indicates that the WD = Withdrawn


event relates to an
DL = Deleted
order cancellation.
Otherwise space if not
applicable.

26 ProductCode String 2 Product code e.g. ‘AA’, ‘AH’,’CA’

28 BuySell String 1 Buy or Sell B = Buy


S = Sell

29 Price Int64 8 Price of the order


Can be null for a
strategy market data
order originating from
LMEsmart
Implicit 6 decimal
place format.

37 Volume Uint32 4 Order quantity


Can be null for a
strategy market data
order originating from
LMEsmart

41 RemainingRecords Uint16 2 Number of remaining


records to be

Page 70

Page 70
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

published.
The value is updated
as messages are
published. When the
value of
RemainingRecords =
RecordCount it
indicates that this is
the last message.

43 RecordCount Uint16 2 The number of records


in this message.

45 StrategyLegCount Uint32 4 Number of legs


present

LegBuySell String 1 Buy or sell for the B = Buy


strategy leg
S = Sell

LegPrice Int64 8 Price allocated to this


leg of the strategy
Implicit 6 decimal
place format.

LegVolume Uint32 4 Quantity allocated to


this leg of the strategy

Total length 49 +
13no

(no = value of RecordCount)

5.3.2 Indicative Trade Price (340)

This message is generated each time there is a trade price and when a price has been deleted.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 340 = Indicative


Trade Price

4 TimeOfEvent Uint64 8 The time at which the

Page 71

Page 71
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

transaction occurred.

12 TradableInstrumentID Uint64 8 Tradable Instrument ID

20 TradingVenue String 2 Trading venue RK = Ring

22 RingSession String 2 This identifies the ring R1 = First morning


trading session. ring
R2 = Second morning
ring
R3 = First afternoon
ring
K1 = Morning kerb
session
K2 = Afternoon kerb
session

24 IndicativePriceType Uint8 1 Indicative trade price 0 = Indicative trade


type price
1 = Indicative trade
price deleted

25 IndicativeTradePrice Int64 8 The price of the trade.


Implicit 6 decimal
place format.

Total length 33

5.3.3 Business Event - Pre-TT Auction (342)

Under the MiFIR (Markets in Financial Instruments and Amending Regulation) pre-trade
transparency requirements, current bid and offer prices entered in the Inter Office market are
published in a Systematic Fixed Price Auction (SFPA).
This message is generated whenever there is a change in Auction status.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 342 = Business Event


– Pre-TT Auction

Page 72

Page 72
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

4 TimeOfEvent Uint64 8 The time at which the


transaction occurred.

12 Headline String 256 Auction event summary


and details

Total length 268

5.3.4 Order Statistics - Intraday (350)

This message is generated at the end of each Ring trading session for instruments that have traded.
Two messages will be published, one for each high price and low price. If no price has been received
the field will be set to null.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 350 = Order Statistics


- Intraday

4 TimeOfEvent Uint64 8 The time at which the


transaction occurred.

12 TradableInstrumentID Uint64 8 Tradable Instrument


ID.

20 TradingVenue String 2 Trading venue RK = Ring

22 RingSession String 2 This identifies the ring


trading session.

24 OrderHigh Int64 8 Highest 3M bid price


for the current Ring
session
Implicit 6 decimal
place format.

32 OrderLow Int64 8 Lowest 3M ask price


for the current Ring
session
Implicit 6 decimal
place format.

Page 73

Page 73
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

Message length 40

5.4 Reference Price Data

5.4.1 Reference Price (401)

Reference prices are published for instruments with an InstrumentID for the following price types:

• Official
• Settlement
• Closing
• Index.

Instruments are published in the Instrument Definition (303), see section 5.1.1.
Reference prices are provided according to the following schedule:

Time Description

09:00 – 17:00 Indicative 3M Prices


An early indication of the closing price

12:20 - 13:25 Official Prices


The last bid and ask price quoted during the second Ring session
Settlement Prices
The last cash ask price

13:30 - 14:30 Monthly Moving Average Price (MMAP)


This is made up of known LME Official Cash Settlement Prices from the current
month. These prices are totalled and averaged over the number of business days
to date in the current month. On the last business day of the current calendar
month after the Official Cash Settlement Price is known and included in the
averaging calculation, the MMAP becomes the Monthly Average Settlement Price
(MASP).
Monthly Average Settlement Price (MASP)
Based on LME Official Cash Settlement Prices available in the month which are
totalled and averaged over the number of business days in the month. It is stated
in US dollars per metric tonne. The MASP is the settlement price for Monthly
Average Futures contracts.

17:00 - 17:50 Provisional Closing Prices

Page 74

Page 74
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Time Description

Evening Evaluations are determined by the LME Quotations Committee (Market


Operations) with regard to trading on LMEselect as well as trades, bids and
offers transacted throughout the whole day.

17:50 - 18:15 Final Closing Prices

18:00 - 18:15 Notional Average Prices (NAP)


The closing price for forward Monthly Average Future months published at the
end of each day. The NAP is made up of known LME Official Cash Settlement
prices and LME Closing Prices taken from each of the prompt dates for the
pricing period. These prices are totalled and averaged over the number of
business days in the calendar month.
Where there are no LME Closing Prices for a date as when there are only weekly
and monthly LME prices available, linear interpolation is used to derive a daily
price for averaging. NAP is used by LME Clear in margin calculations.

Index Price
The index price is based on the Closing Price and relative weighting of the index
constituent commodities.
The index value is calculated as the sum of the prices for the three qualifying
months multiplied by the corresponding weights, multiplied by a constant. The
constituents of the index are: Aluminium, Copper, Lead, Nickel, Tin and Zinc
(with each having their own weighting). Weightings of the six metals are derived
from global production volume and trade liquidity averaged over the preceding
five-year period.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the


message

2 MsgType Uint16 2 Type of message. 401 = Reference


Price

4 TimeOfEvent Uint64 8 The time at which


the price was
established

12 Category String 1 Category of the I = Instrument


reference price
P = Product

Page 75

Page 75
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

13 PriceType String 32 Reference price Official


type
Settlement
Closing
Index

45 PriceStatus String 12 The status of Indicative


reference price
Provisional
Final
ReFinalised

57 BusinessDate Uint32 4 The business date YYYYMMDD


on which the price
was established.

61 InstrumentID Uint64 8 Unique Instrument


Identifier.
NULL for
PriceType = Index

69 ProductCode String 2 The product code. e.g. ‘AA’, ‘AH’, ‘CA’


This identifies the
metal for the
instrument.

71 CurrencyCode String 3 The currency code e.g. ‘USD', 'GBP',


according to ISO 'EUR', 'JPY'
4217

74 Bid Int64 8 A reference bid


price. Represents
the average bid
price for a
reference price
categorised as
such.
Implicit 6 decimal
place format.

82 Price Int64 8 A reference price.


For an Average
represents the

Page 76

Page 76
LMEsource Client Interface Specification Version Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

mean of bid ask


averages.
Implicit 6 decimal
place format.

90 Ask Int64 8 A reference ask


price. Represents
the average ask
price for a
reference price
categorised as
such.
Implicit 6 decimal
place format.

Total length 98

Page 77

Page 77
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

[Link] Reference Price Identification


For a particular reference price the following table shows the data populated in specific fields in the message. See section 13 for examples.

Reference Price Category PriceType PriceStatus Bid Price Ask Notes

Indicative 3M I (Instrument) Closing Indicative NULL NULL

Official I (Instrument) Official Final NULL


ReFinalised

Settlement I (Instrument) Settlement Final NULL NULL For Cash


ReFinalised

Monthly Moving Average Price I (Instrument) Settlement Provisional NULL NULL For MAF contracts every business day
(MMAP) except for the last business day of the
month

Monthly Average Settlement I (Instrument) Settlement Final NULL NULL For MAF contracts on the last
Price (MASP) business day of the month
ReFinalised

Closing I (Instrument) Closing Provisional NULL NULL


Final
ReFinalised

Notional Average Price (NAP) I (Instrument) Closing Final NULL NULL For MAF contracts only

Page 78

Page 78
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Reference Price Category PriceType PriceStatus Bid Price Ask Notes

ReFinalised

Index P (Product) Index Final NULL NULL

Page 79

Page 79
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

5.4.2 Reference Forward Curve Price (402)

Indicative and closing prices are published for Carries according to the following schedule:

Time Description

09:00 – 17:00 Indicative Prices


An early indication of the closing price

17:00 - 17:50 Provisional Closing Prices

17:50 - 18:15 Final Closing Prices

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 402 = Reference


Forward Curve
Price

4 TimeOfEvent Uint64 8 The time at which the


price was established.

12 BusinessDate Uint32 4 The business date on YYYYMMDD


which the price was
established.

16 ProductCode String 2 The product code. This e.g. ‘AA’, ‘AH’,


identifies the metal for ‘CA’
the instrument.

18 PriceStatus String 12 The status of reference Indicative


price
Provisional
Final
ReFinalised

30 CurrencyCode String 3 The currency code e.g. ‘USD', 'GBP',


according to ISO 4217 'EUR', 'JPY'

33 RemainingRecords Uint16 2 Number of remaining


prices to be published.
The value is updated as

Page 80

Page 80
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

messages are published


for a product. When the
value of
RemainingRecords =
RecordCount it indicates
that this is the last
message for the product.

35 RecordCount Uint16 2 The number of reference


prices in this message.

Price Int64 8 The price for the given


date(s).
Implicit 6 decimal place
format.

PromptDate1 Uint32 4 The date to which the YYYYMMDD


price relates. For a
spread this is the first
leg.

PromptDateLabel1 String 6 The label representing e.g. ‘CASH’, ‘3M’,


date1. ‘15M’
Not applicable for all
dates.

PromptDate2 Uint32 4 The date to which the YYYYMMDD


price relates. For a
spread this is the second
leg.

PromptDateLabel2 String 6 The label representing Default = Space


date2. (i.e. not
applicable)
For a spread the date
label associated with the
second leg (if there is
one).
Not applicable for all
dates.

Total length 37 +
28no

Page 81

Page 81
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

(no = value of NumPrices)

5.4.3 Reference FX Rate (403)

Daily FX rates are available for the Cash prompt and Closing FX rates are available for all prompt
dates for physically deliverable metals. Monthly moving average FX rates are generated daily.
Monthly average FX rates are generated on the last business day of the month.
FX rates are provided according to the following schedule:

Time Description

13:00 Exchange FX Rates (Officials)

Closing FX Rates

Note: MonthlyMovingAverage and MonthlyAverage will only be published for the Exchange category.

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 403 = Reference FX


Rate

4 Category String 1 FX rate category E = Exchange


C = Closing

5 Type String 2 FX rate type DY = Daily


MM = Monthly Moving
Average
MA = Monthly Average

7 BusinessDate Uint32 4 The business date on YYYYMMDD


which the rate was
confirmed.

11 MaturityDate Uint32 4 The business date to YYYYMMDD


which the rate applies.

15 BaseCurrencyCode String 3 The currency code 'GBP', 'EUR', 'USD'


according to ISO 4217

18 TargetCurrencyCode String 3 The currency code 'USD', 'JPY'


according to ISO 4217

21 ConversionRate Int64 8 The conversion rate

Page 82

Page 82
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

between base and


target currencies.
Implicit 6 decimal
place format.

Total length 29

5.4.4 Reference Volatility Price (404)

The Reference Volatility Price message provides ‘raw’ strikes. LME volatilities are quoted in Delta
space. The strikes for which LME provide volatilities correspond to +/-5, +/-10, +/-25, 50 deltas, the
“at-the-money” and tradable strikes for the instrument. The volatilities for all deltas in both the strike
space and the delta space, other than the 50 and the ATM are reported as differentials from the
absolute value for the 50 in the delta space. For each of these strikes put and call premiums are
calculated. For computation of premiums, the LME uses Black76.
The calculated Call Premium and Put Premium are also provided for each volatility / strike price for
both Traded Options and TAPOs.
Prices are provided according to the following schedule:

Time Description

18:15 Reference Volatility Price

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 404 =


Reference
Volatility Price

4 TimeOfEvent Uint64 8 Time at which the volatility


surface was benchmarked.

12 BusinessDate Uint32 4 Business date for which YYYYMMDD


the volatility surface was
benchmarked.

16 ContractCode String 12 Contract code of the e.g. ‘AADO,


Option or TAPO. NADT’

Page 83

Page 83
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

28 ExpiryDate Uint32 4 Option expiry date YYYYMMDD

32 RemainingRecords Uint16 2 Number of volatilities to be


published.
The value is updated as
messages are published.
When the value of
RemainingRecords =
RecordCount it indicates
that this is the last
message for the expiry
date in the contract.

34 RecordCount Uint16 2 Number of reference


volatility points which
describes the reference
volatility curve for the
expiry date in this contract.

SurfaceDomain String 1 Indicates whether the S = Strike


reference volatility was
D = Delta
created in Delta or Strike
space.

Delta Int64 8 Option delta for the


volatility point.
Implicit 6 decimal place
format.

StrikePrice Int64 8 Strike price for the volatility


point.
Implicit 6 decimal place
format.

ATM Uint8 1 Identifies the ATM strike 1 or 0


(1) or delta point (0).

CallVolatility Int64 8 Implicit 6 decimal place


format.

PutVolatility Int64 8 Implicit 6 decimal place


format.

Page 84

Page 84
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

CallPremium Int64 8 Implicit 6 decimal place


format.

PutPremium Int64 8 Implicit 6 decimal place


format.

Total length 36 +
50no

(no = value of NumVolatilityRecords)

5.4.5 Reference Auction Price (405)

This message provides daily and monthly average prices from the Platinum and Palladium auction.
Reference bullion prices are provided according to the following schedule:

Time Description

09:55 First auction prices

14:10 Second auction prices

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 405 = Reference


Auction Price

4 TimeOfEvent Uint64 8 The time at which the


price was confirmed.

12 Category String 1 The category of auction. B = Bullion

13 BusinessDate Uint32 4 The business date on YYYYMMDD


which the price was
established.

17 Commodity String 2 The commodity to which PD = Palladium


the auction price(s)
PT = Platinum
relate.

19 Session String 2 Auction session. AM = Morning

Page 85

Page 85
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

PM = Afternoon

21 BidVolume Uint16 2 Buy side volume interest.

23 AskVolume Uint16 2 Sell side volume interest.

25 NumPriceType Uint16 2 The number of price type


items.

AuctionPriceType String 1 Auction price type. D = Daily


M = Monthly
Average

NumCurrencyPrices Uint16 2 Number of currency price


records.

CurrencyCode String 3 The auction price 'USD','EUR','GBP'


currency.

Price Uint64 8 The confirmed auction


price.
Implicit 6 decimal place
format.

Total length 27 + NumPriceType*3+ ( ∑ NumCurrencyPrices)*11

∑ NumCurrencyPrices means:
NumCurrencyPrices(1)+ NumCurrencyPrices(2)+ …+NumCurrencyPrices(n)
Where n = NumPriceType

5.5 Daily Summary Data

5.5.1 Open Interest (420)

This message reports Exchange and Market Open Interest for open positions in futures and options
contracts. Exchange open interest volumes are provided per currency (contract code) and not
aggregated across currencies whereas market open interest volumes are aggregated across
currencies and reported against USD denominated instruments.
Exchange Open Interest is based on open positions in registered contracts between LME clearing
members only recorded on LMEsmart.
Market Open Interest is the reported gross, based on both open exchange positions and open client
positions for a particular contract.

Page 86

Page 86
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Open interest is provided according to the following schedule:

Time Description

08:45 Market Open Interest from two business days in arrears

09:10 Previous business day Futures Exchange Open Interest detail

09:10 Previous business day Options Exchange Open Interest detail

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 420 = Open


Interest

4 BusinessDate Uint32 4 The business date for YYYYMMDD


which the open interest
is being reported.

8 Type String 1 Type of open interest E = Exchange


M = Market

9 InstrumentID Uint64 8 Instrument to which the


open interest applies.

17 ProductCode String 2 The product code. This e.g. ‘AA’, ‘AH’,


identifies the metal for ‘CA’
the instrument.

19 ContractCode String 12 Contract to which the e.g. ‘PBDF,


instrument belongs OCDF, AADO,
NADT’

31 ContractType String 1 Constant contract type F = Future


O = Option

32 Volume Uint32 4 Number of open


positions expressed in
lots

Total length 36

Page 87

Page 87
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

5.5.2 Open Interest Band (421)

This message reports open interest for all futures trades by product between given dates. Open
interest volumes are provided per currency (contract code) and not aggregated across currencies.
Open interest band is provided according to the following schedule:

Time Description

09:10 Previous business day Futures Exchange Open Interest summary

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 421 = Open


Interest Band

4 BusinessDate Uint32 4 The business date for YYYYMMDD


which the open
interest is being
reported.

8 ProductCode String 2 The product code e.g. ‘AA’, ‘AH’,


‘CA’

10 ContractCode String 12 Contract to which the e.g. ‘PBDF’,


open interest belongs ‘OCDF’

22 ContractType String 1 Constant contract F = Future


type

23 CurrencyCode String 3 The currency code e.g. ‘USD', 'GBP',


according to ISO 'EUR', 'JPY'
4217

26 DateBandCount Uint32 4 Number of open


interest date bands

FromDate Uint32 4 The date from which YYYYMMDD


open interest volume
for the period is
calculated (inclusive)

ToDate Uint32 4 The date to which YYYYMMDD


open interest volume

Page 88

Page 88
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

for the period is


calculated (inclusive)

Volume Uint32 4 Number of open


positions expressed
in lots between the
given dates

Total length 30 +
12no

(no = value of DateBandCount)

5.5.3 Position Band (422)

This message reports the number of market participants holding futures positions as a percentage of
Market Open Interest.
Position band data is provided according to the following schedule:

Time Description

11:00 Position Band figures from two business days in arrears

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the


message

2 MsgType Uint16 2 Type of message. 422 =


Position
Band

4 BusinessDate Uint32 4 The business date YYYYMMDD


for which the
position band
values is being
reported.

8 ProductCode String 2 Product code e.g. ‘AA’,


‘AH’,’CA’

10 LongPositionBandCount Uint32 4 Number of bands


for long position.

Page 89

Page 89
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

14 ShortPositionBandCount Uint32 4 Number of bands


for short position.

LongPositionLowerValue Int64 8 Long position


lower band
percentage value.
Implicit 6 decimal
place format.

LongPositionUpperValue Int64 8 Long position


upper band
percentage value.
Implicit 6 decimal
place format.

LongPositionPromptDateCount Uint32 4 Number of prompt


dates.

PromptDateLabel String 6 Prompt date label,


see section 10.1.

ExpiryDate Uint32 4 Expiry date, see YYYYMMDD


section 11.

ParticipantCount Uint32 4 Number of market


participants
holding long
positions in the
given band and
prompt.

ShortPositionLowerValue Int64 8 Short position


lower band
percentage value.
Implicit 6 decimal
place format.

ShortPositionUpperValue Int64 8 Long position


upper band
percentage value.
Implicit 6 decimal
place format.

Page 90

Page 90
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

ShortPositionPromptDateCount Uint32 4 Number of prompt


dates.

PromptDateLabel String 6 Prompt date label,


see section 10.1

ExpiryDate Uint32 4 Expiry date, see YYYYMMDD


section 11.

ParticipantCount Uint32 4 Number of market


participants
holding short
positions in the
given band and
prompt.

Total length 18 + LongPositionBandCount*20 + ( ∑


LongPositionPromptDateCount )*14 +
ShortPositionBandCount*20 + ( ∑
ShortPositionPromptDateCount ) *14
∑ LongPositionPromptDateCount means:
LongPositionPromptDateCount(1)+ LongPositionPromptDateCount(2)+…+
LongPositionPromptDateCount(m)
Where n = LongPositionBandCount

∑ ShortPositionPromptDateCount means:
ShortPositionPromptDateCount(1)+ ShortPositionPromptDateCount(2)+…
ShortPositionPromptDateCount(n)
Where n = ShortPositionBandCount

5.5.4 Warrant Band (423)

This message reports the number of market participants holding a significant percentage of warrants
and positions along the front of the curve (Tom, Cash and Cash plus one day).
Warrant band data is provided according to the following schedule:

Time Description

11:00 Warrant Band (WB) figures from two business days in arrears

11:00 Warrant Band Cash (WC) figures from two business days in arrears

Page 91

Page 91
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Time Description

11:00 Warrant Band Tom (WT) figures from two business days in arrears

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 423 = Warrant Band

4 BusinessDate Uint32 4 The business date for YYYYMMDD


which the warrant
band values is being
reported.

8 Type String 4 Type of warrant band WB = Warrant Band


WC = Warrant Band
Cash
WT = Warrant Band
Tom

12 ProductCode String 2 The product code e.g. ‘AA’, ‘AH’, ‘CA’

14 UnreportedWarrants Int64 8 Percentage of total live


(on warrant) stock that
remains unreported.
Applicable to Type =
WB otherwise NULL
Implicit 6 decimal
place format.

22 BandCount Uint32 4 Number of warrant


bands

LowerValue Int64 8 Lower band


percentage value
Implicit 6 decimal
place format

UpperValue Int64 8 Upper band


percentage value
NULL for Type = WC
or WT if 100.000000

Page 92

Page 92
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

Implicit 6 decimal
place format

ParticipantCount Uint32 4 Number of market


participants with LME
warrant concentrations
falling within the given
percentage band

Total length 26 +
20no

(no = value of BandCount)

5.5.5 Trading Volume (424)

This message provides the traded volume in lots for matched trades in futures and options
instruments.
Trading volume data is provided according to the following schedule:

Time Description

10:00 Previous business day Trading Volume including Large In Scale (LIS) options from
two business days in arrears, see also [Link]
types/Options/Large-in-scale-options

12:00 Intraday snapshot

15:00 Intraday snapshot

18:00 Intraday snapshot

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 424 = Trading Volume

4 BusinessDate Uint32 4 The business date for YYYYMMDD


which the trading
volume is being
reported.

Page 93

Page 93
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

8 TradeDate Uint32 4 The trade date for YYYYMMDD


which the trading
volume is being
reported

12 CalculationType String 1 Trading volume D = Daily


calculation type. I = Intraday

13 InstrumentID UInt64 8 Unique Instrument


Identifier.

21 ProductCode String 2 The product code e.g. ‘AA’, ‘AH’, ‘CA’

23 ContractCode String 12 Contract to which the e.g. ‘PBDF’, ‘OCDF’,


instrument belongs ‘AADO’, ‘NADT’

35 ContractType String 1 Constant contract type F = Future


O = Option

36 Volume Uint32 4 Trading volumes


expressed in lots.

Total length 40

5.5.6 Warehouse Stock Movement (426)

This message provides stock movement data from LME approved warehouses by product, grade,
stock status and location in tonnes.
Warehouse stock movement data is provided according to the following schedule:

Time Description

09:00 Previous business day stock movement figures

Stock figures for one location (or port) are actually the aggregate of all the stocks in all the
warehouses in that one location.
The following report levels are published in the order specified:

• Summary (by product and status, all locations and all grades)
• Location (by product, location and status, all grades)
• Grade (by product, grade and status, all locations)
• Detailed (by product, grade, location and status)

Page 94

Page 94
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

0 MsgSize Uint16 2 Size of the message

2 MsgType Uint16 2 Type of message. 426 = Warehouse


Stock Movement

4 ReportDate Uint32 4 The business date for YYYYMMDD


which the stock
movement is being
reported.

8 ReportLevel String 12 Indicates the level at Summary


which the stock
Grade
movement quantity is
being reported. Location
Detailed

20 RemainingRecords Uint16 2 Number of remaining


records to be published.
The value is updated as
messages are
published for a product.
When the value of
RemainingRecords =
RecordCount it
indicates that this is the
last message for the
report level.

22 RecordCount Uint16 2 Number of repeating


records in this message

ProductCode String 2 Product code. This e.g. ‘AA’, ‘AH’,’CA’


identifies the
commodity.

Location String 4 Location where the


commodity exists. 4
Character Code, see
section 14.2.
Space if ReportLevel =
Summary
Space if ReportLevel =
Grade

Page 95

Page 95
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Format Len Description Value

GradeCode String 4 Grade of the


commodity, see section
14.1.
Space if ReportLevel =
Summary
Space if ReportLevel =
Location

StockStatus String 3 Stock status CLS = Closing stock


OPN = Opening stock
DIN = Stock delivered
in
DOT = Stock
delivered out
MOV = Stock
movement
COW = Closing stock
on warrant
CCW = Closing stock
on cancelled warrant

StockQuantity Int32 4 Stock quantity

Total length 24 +
17no

(no = value of NoOfRecords)

[Link] Aluminium Stock Data


Stock reporting for Primary (High Grade) Aluminium and the related the regional Aluminium Premium
Future contracts operates as follows:
Primary (High Grade) Aluminium (AH) stock amounts include metal stock which is designated as
Primary (High Grade) Aluminium or as Premium Aluminium:

• High Grade Aluminium


• LME US Aluminium Premium (AN)
• LME Western Europe Aluminium Premium (AW)
• LME Eastern Asia Aluminium Premium (AE)
• LME South-Eastern Asia Aluminium Premium (AS)

This is true at all levels of detail or summary in the message.

Page 96

Page 96
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

For example:
A specific location, ‘ANTW’ contains opening stock of:
900 tonnes of Primary (High Grade) Aluminium
Of which 400 tonnes is LME Western Europe Aluminium Premium
This will be reported as:
Metal = AH, Location = ANTW, Stock = 900
Metal = AW, Location = ANTW, Stock = 400
In the above example, the ‘AH’ holding of 900 is calculated as:
500 Primary (High Grade) Aluminium + 400 LME Western Europe Aluminium Premium
The ‘AW’ holding of 400 is reported in its own right.

5.6 Publication Schedule Summary

Time Data Description

08:45 T+2 Market Open Interest in Open Interest (420)

09:00 T+1 Warehouse Stock Movement (426)

09:00 - Indicative prices in Reference Price (401) and Reference Forward Curve (402)
17:00

09:10 T+1 Exchange Open Interest in Open Interest (420) and Open Interest Band (421)

09:55 Reference Auction Price (405) first Bullion auction

10:00 T+1 Trading Volume (424) for previous business date

11:00 Warrant Band (422) and Position Band (423)

12:00 Trading Volume (424) intraday snapshot

12:20 - Official and Settlement prices in Reference Price (401)


13:25

13:00 Exchange FX Rates (Officials) in Reference FX Rate (403)

13:30 - Monthly Moving Average Price (MMAP) / Monthly Average Settlement Price
14:30 (MASP) in Reference Price (401)

14:10 Reference Auction Price (405) second Bullion auction

Page 97

Page 97
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Time Data Description

15:00 Trading Volume (424) intraday snapshot

17:00 - Provisional Closing Prices in Reference Price (401) and Reference Forward Curve
17:50 (402)

17:50 - Final Closing Prices in Reference Price (401) and Reference Forward Curve (402)
18:15

18:00 Trading Volume (424) intraday snapshot

18:00 - Notional Average Prices (NAP) in Reference Price (401)


18:15

18:15 Reference Volatility Price (404)

No scheduled time for Index price in Reference Price (401) and Closing FX Rates in Reference FX
Rate (403).

Page 98

Page 98
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

6 Recovery
LMEsource provides three different mechanisms for recovering missed data:
1. Line arbitration – using dual multicast channels (Line A and Line B)
2. Retransmission Server – recovery of a limited number of messages
3. Refresh Server – snapshot of current market state
These mechanisms should be used as described in the following table.

Event Action

Packet lost on one either Line A or Try to recover data from the other line with a
Line B configurable timeout (“arbitration mechanism”).

Dropped packet(s) on both Line A and Recover dropped message(s) from the Retransmission
Line B Server.

Late start up or extended intraday Wait for a refresh of the current market state and then
outage continue with real time messages.

6.1 Gap Detection


Each packet provides the sequence number (SN) of the first message it contains. This sequence
number starts at 1 and increases with each subsequent message.
The sequence numbers provided in every packet header is calculated by adding the previous
sequence number and the message count, as shown in the table below:

Packet Sequence Number Message Count

Packet 1 1 4

Packet 2 5 2

Packet 3 7 1

Packet 4 8 3

Packet 5 11 1

If the client drops the first five packets they would request a gap fill for messages 1-11.
All messages conform to the message level sequencing. Each channel has its own sequence
number. This allows recipients to detect gaps or duplicates in each message sequence number and,

Page 99

Page 99
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

if appropriate, reconcile them (line arbitration) with the primary or secondary multicast groups or
request retransmission of the missing / corrupted messages.
Users should use this sequence number to detect gaps in the transmission of messages.

Page 100

Page 100
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

The following diagram illustrates how the message sequence number should be used to detect gaps
in the feed.

Begin

Received new Packet

Is current SN greater than Gap Detected


Yes
the next expected SN ?

Ignore Packet No
(Duplicate)

Is current SN + MsgCount
Yes in current packet less than the
next expected SN ?

No

Extract first message in


Recover lost messages
packet

Extract next message Increase msg processed


in packet count by 1

Is current SN in current packet +


Ignore message
msg processed count equal to No
(Duplicate)
next expected SN ?

Yes

Process messages

Increase next expected


End of Message ? No
SN by 1

Yes

End

Figure 2: Gap Detection using the Sequence Number (SN)

Page 101

Page 101
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

6.2 Line Arbitration


Client applications should check the sequence number (SN) and message count (MC) for every
packet received. SNs are unique and increase monotonically for each service, the MC indicates the
number of messages within each packet.
Line A and Line B are identical in terms of:

• SNs

• Messages that are sent

• Sequence in which messages are sent


However it is not guaranteed that the packet content between Line A and Line B will be the same.
For example the third packet of the day from the Line A could contain SN 10 with MC 3, whereas the
third packet of the day from Line B could contain SN 9 with MC 4. For this reason clients must
arbitrate on SN (at the message level) rather than packet content. Client applications should listen to
both Line A and Line B in real-time. Clients should look at packets coming from both lines and
process the ones that arrive first, regardless of whether they came from Line A or Line B. It is
advisable to apply the “first come – first served” rule.

Figure 3 – Detecting Missing Packets

Additional Notes:
- The above example of a dropped packet is a simplified example assuming 1 message per packet,
in reality each packet is likely to contain multiple messages
- Whilst the order of individual messages between Line A and Line B will be identical, there is no
guarantee that the packets will contain exactly the same messages.
- In the example below, three packets are sent on each line, but message ‘OrderUpdate3’ appears in
one packet from Line A but in the subsequent packet on Line B.

Page 102

Page 102
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Primary Secondary
Messages MC SN SN MC Messages

OrderUpdate1 3 101 101 2 OrderUpdate1


OrderUpdate2 OrderUpdate2
OrderUpdate3
2 104 103 3 OrderUpdate3
Trade1 Trade1
OrderUpdate4 OrderUpdate4
Trade2 2 106 106 2 Trade2
Statistics1 Statistics1

Figure 4 – Normal Message Delivery

6.3 Retransmission Service


The retransmission service is provided via the TCP/IP protocol and is designed to allow clients to
recapture a small number of missed messages already published on the real time channels.
It is not intended that clients use the retransmission service to recover data after long outages or on
late start up (in these situations, clients should use the Refresh service). To that end, it aims to
support the retransmission of the data covering the market activities for the last 15-30 seconds only.
This figure is indicative only and may be shorter than 15 seconds if a spike happens in the market.
The sequence range of messages that a client can request and the number of retransmission
requests permitted per day is also limited.
The following diagram illustrates the message flow during a retransmission session:

Logon

Logon RESPONSE
Retransmission REQUEST
Retrans. Server
Client

Retransmission RESPONSE TCP/IP

Retransmission Results
Requested Messages

Figure 5: Retransmission Request

6.3.1 Logon

The client establishes a TCP/IP connection and initiates a session by sending the Logon message.
Once the client is authenticated the server will respond immediately with the Logon Response
message. If the client does not send a Logon message within the logon timeout interval, the server
will close the connection.

Page 103

Page 103
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Logons may be rejected for the following reasons:

• Invalid username

• User already connected

• Packet is in the wrong format


In all cases the server will close the connection after sending the Logon Response message.

6.3.2 Making a Request

The client can make a retransmission request by sending the Retransmission Request message. The
server will respond with a Retransmission Response message to indicate whether the request has
been accepted or not. The following values for RetransStatus can be returned:

Value Description

0 Request Accepted

1 Unknown/Unauthorized channel ID

2 Messages not available

100 Exceeds maximum sequence range

101 Exceeds maximum requests in a day

In the case of a successful request the server will send the requested messages immediately after
the Retransmission Response message.
The sequence numbers will be the same as when they were first sent on the real time multicast
channel. The framing of the retransmitted messages into a packet may differ from the original
transmission.
In the case where the client has exceeded the maximum number of requests allowed in a day, the
server will close the connection after sending the Retransmission Response message.

Page 104

Page 104
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

The following diagram is a guideline of the flow of logic when making a request:

No Contact Helpdesk
Logon to the Retransmission
Is the logon accepted? and use the Refresh
Server
Service

Yes
No

Send a Retransmission Request


Can the request be
Yes Do the received msgs No • Channel ID Yes
reformulated based on reject
fill the gap? • BeginSeqNum
reason?
• EndSeqNum

Close the TCP/IP connection to the


retransmission server or maintain
TCP/IP connection to the Yes No
Is the retransmission Examine
retransmission server and respond
request accepted? RejectReason
to heartbeats as required

Figure 6: Requesting Dropped Packets

6.3.3 Multiple Requests and Concurrent Sessions

Clients can send multiple requests during a session and can keep the session open during idle
periods by responding to heartbeats sent by the server. Concurrent sessions however will not be
supported. Each user can only have one session open at a time.
If a client makes multiple requests, the server will process them serially. Clients are unable to cancel
outstanding requests.

6.3.4 Heartbeats

To determine the health of the user connection on the TCP/IP channel, the Retransmission Server
will send regular heartbeat packets to the user. The heartbeat frequency is 30 seconds. The client
application must respond with a “Heartbeat Response” packet. The time out for this heartbeat
response packet is set at 5 seconds. If no response is received by the server within this timeframe,
the TCP/IP session will be disconnected.

Heartbeat
Retrans.
Server
User

TCP/IP
Heartbeat Response

Figure 7: Retransmission Server Heartbeat Message

A “heartbeat response” packet consists in an exact copy of the incoming heartbeat packet.

6.3.5 Closing the Session

Sessions should be terminated by gracefully closing the TCP/IP connection.

Page 105

Page 105
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

6.3.6 System Limits

The system limits mentioned above are set as follows:

System Limit Value

Maximum sequence range that can be requested 10,000

Maximum number of requests per day 1,000

Logon timeout (seconds) 5

Logon attempts allowed (60 seconds) 6

Heartbeat interval (seconds) 30

Heartbeat response timeout (seconds) 5

Please note that the maximum number of requests per day limit is across all channels.

6.3.7 High Availability

For each site, two sets of IP addresses and ports are provided for the retransmission service in order
to facilitate high availability. Clients may connect to both retransmission services at the start of the
day and maintain the connection during the day by responding to heartbeats.
The LME will provide a Fully Qualified Domain Name (FQDN) to access the retransmission service.
Under normal operation the FQDN will resolve to the high availability retransmission service at the
Active Production site. Clients may connect to the retransmission service at the start of the day and
maintain the connection during the day by responding to heartbeats.

6.3.8 Disaster Recovery

During normal conditions the retransmission service at the disaster site is not available. If clients
attempt to connect, this will fail.
In the unlikely event of a disaster recovery situation, the retransmission service at the disaster site
will be brought up and clients may connect via the backup IP addresses and ports.

6.4 Refresh Service (RFS)


The refresh service is designed to allow clients to recover from a large-scale data loss. This can
happen after a late start or during a major outage.
Synchronisation is on a per channel basis. For each real time multicast channel there exists a
corresponding refresh multicast channel on which snapshots of the market state are sent at regular
intervals throughout the business day. No ordering should be assumed between the various different
data types unless otherwise stated – this is due to the nature of using multiple different multicast
channels for refresh.

Page 106

Page 106
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

6.4.1 Snapshot

A snapshot of the market state is described in the table below.


Electronic:

Message Category Snapshot Description

Reference Data A full list of all Outright Definition, which includes any modifications or
additions made intraday. The order is sent as:
Outright Definition (301), Strategy Definition (302), Price Limits (305)
Contract Definition (300) for a pre-listed contact prior to its first trading
day

Market Status The most recent Market State - Instrument (312) message of
declared TradableInstrumentID.

The most recent Market State - Contract (311) messages of declared


ContractCode.

Orders For L1 clients: the latest level 1 Price book via Top of Book (321)
messages.
For L2 clients: the latest 15 levels of Price book via Aggregate Order
Book (322) messages. The ordering of the price levels in the
Aggregate Order Book (322) message in the RFS snapshot will be
from worst to best. This is the reverse of the sequence in the real-
time Aggregate Order Book (322) message.
For L3 clients: the snapshot of the full order book via Order Add (323)
messages. The OrderbookPosition field and the T1, T2 and T3
timestamp fields will not be populated in the RFS snapshot.

Trade Statistics The latest Trade Statistics - Intraday (352) message of declared
TradableInstrumentID.

The latest Trade Statistics - End of Day (351) message of declared


TradableInstrumentID.

Trades A replay of all Market Data Trade (341) messages from start of day.

Indicative Opening Price The latest Indicative Opening Price (320) message of declared
TradableInstrumentID. IOP/IOMP messages are only included in RFS
snapshots in Pre-Open. Once the markets transition to Open and the
IOP/IOMP clear messages have been published, there are no
IOP/IOMP messages in the RFS snapshots thereafter.

Quote Request The latest Quote Request (329) message of declared Tradable

Page 107

Page 107
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Message Category Snapshot Description

Instrument ID.

Non-Electronic:

Message Category Snapshot Description

Reference Data A full list of all Instrument Definition (303) messages and any
additions made intraday
A full list of all Tradable Instrument Definition (304) messages which
includes any modifications or additions made intraday

Reference Prices Reference Price (401) of declared PriceType and PriceStatus for the
InstrumentID:

• Official

• Settlement

• Closing

• Index
Messages with PriceType = Settlement and PriceStatus = Provisional
(MMAP) will be published independent of any other price status.
Once a message with PriceStatus = Provisional has been published
for the InstrumentID, there are no further messages with PriceType =
Indicative in the RFS snapshot.
Once a message with PriceStatus = Final has been published for the
InstrumentID, there are no further messages with PriceType =
Provisional in the RFS snapshot.
Once a message with PriceStatus = ReFinalised is published for an
InstrumentID in a particular price type, no further messages will be
published with PriceStatus = Final.

The latest Reference Forward Curve Price (402) of declared


PriceStatus for the ProductCode.
Once a message with PriceStatus = Provisional has been published,
there are no further messages with PriceType = Indicative in the RFS
snapshot.
Once a message with PriceStatus = Final has been published, there
are no further messages with PriceType = Provisional in the RFS
snapshot.
Once a message with PriceStatus = ReFinalised is published, no

Page 108

Page 108
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Message Category Snapshot Description

further messages will be published with PriceStatus = Final.

The latest Reference Volatility Price (404) of declared ContractCode.

The Reference Auction Price (405) of declared Commodity and


Session.

Reference FX Rates The latest Reference FX Rate (403) of declared Exchange Category,
Type, base currency and target currency.
The latest Reference FX Rate (403) of Closing Category, Type,
MaturityDate, base currency and target currency.

Market Status The most recent Market State - Product (310) messages of declared
ProductCode.

Ring Orders All Market Data Order (328) messages

Indicative Trades All Indicative Trade Price (340) messages

Trades All Market Data Trades (341) messages

Order Statistics All Order Statistics - Intraday (350) messages

Warehouse Stock All Warehouse Stock Movement (426) messages


Movement

Business Event All Business Event – Pre-TT Auction (342) messages

Open Interest All Open Interest (420) and Open Interest Band (421) messages

Positions All Position Band (422) and Warrant Band (423) messages

Trading Volume All Trading Volume (424) messages of declared Daily


CalculationType.
The latest Trading Volume (424) of declared Intraday
CalculationType.

Page 109

Page 109
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

The ordering of refresh message types within the multicast channels is detailed below:
Electronic:

Channel Refresh Sequence

Instrument Definition and Outright Definition (301), Strategy Definition (302), Price Limits (305),
End of Day Statistics Contract Definition (300) for a pre-listed contact prior to its first trading
day, Trade Statistics - End of Day (351)

Order (L1 clients) Market State - Instrument (312), Market State - Contract (311),
Indicative Opening Price (320), Quote Request (329), Top of Book
(321)

Order (L2 clients) Market State - Instrument (312), Market State - Contract (311),
Indicative Opening Price (320), Quote Request (329), Aggregate
Order Book (322)

Order (L3 clients) Market State - Instrument (312), Market State - Contract (311),
Indicative Opening Price (320), Quote Request (329), Order Add
(323)

Trade Statistics Trade Statistics - Intraday (352)

Trade Replay Market Data Trade (341)

Non-Electronic:

Channel Refresh Sequence

Reference Data and Instrument Definition (303), Tradable Instrument Definition (304),
Intraday Statistics Order Statistics - Intraday (350)

Reference Prices Reference Price (401), Reference Forward Curve Price (402),
Reference FX Rate (403), Reference Volatility Price (404), Reference
Auction Price (405)

All trades, orders Market State - Product (310), Market Data Order (328), Indicative
Trade Price (340), Market Data Trade (341)

PTT Auction Business Event - Pre-TT Auction (342)

Daily Summaries Open Interest (420), Open Interest Band (421), Position Band (422),
Warrant Band (423), Trading Volume (424)
(Positions)

Page 110

Page 110
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Channel Refresh Sequence

Daily Summaries Warehouse Stock Movement (426)


(WSM)

6.4.2 Refresh Complete

A Refresh Complete message is sent at the end of a snapshot indicating the sequence number with
which the snapshot is synchronized.

6.4.3 Snapshot Processing

Below is an overview of the steps to carry out in order to process a channel snapshot:

• Subscribe to the real time multicast channel and cache received messages.

• Subscribe to the corresponding refresh multicast channel and discard messages until the
Refresh Complete message is received.

• Process received messages until the next Refresh Complete message is received.

• Store the LastSeqNum sequence number provided in the Refresh Complete.

• Unsubscribe to the refresh multicast channel.

• Discard the cached real time messages with sequence number less than or equal to
LastSeqNum.

• Process the remaining cached real-time messages and resume normal processing.

[Link] Market State Snapshot Processing


If a Market State - Instrument (312) message exists in the RFS snapshot for a tradable instrument,
use the Market State - Instrument (312) message to determine the current order book state for the
tradable instrument and ignore any Market State – Contract (311) messages received for the parent
contract of the tradable instrument.
If no Market State - Instrument (312) message for a tradable instrument exists in the RFS snapshot
use the Market State – Contract (311) message to determine the current order book state for all
tradable instruments within the contract.

6.4.4 Missed Messages

The retransmission server does not support refresh channels. If a client misses messages, it must
wait for the next snapshot. Similarly if a client starts listening during the middle of a snapshot, it must
wait for the next snapshot.

Page 111

Page 111
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

7 Level 2 Aggregate Order Book Management

7.1 Book Identification


A book is uniquely identified by TradableInstrumentID. TradableInstrumentID is an unsigned integer
representation of 8 bytes, from Outright Definition (301) messages and Strategy Definition (302)
messages.

7.2 Partial Price Depth


The price level within the Aggregate Order Book message determines the number of price levels the
order price is away from the best price for a given order book. An order with price level 1 means the
order’s price is the best price, a price level of 2 will be used for orders at the next best price, etc.
LMEsource provides a view of 15 price depths of aggregate order book for the LME Markets. This
view can be visualized as a number of rows in a table for each of the buy and sell sides. On each
side there are a number of rows showing the aggregate quantity available at a number of price levels.
For brevity, the below examples use 5 levels of price depths to demonstrate the aggregate order
book update mechanism. The same principles apply to 15 levels of price depths.
The table below shows the starting position of the order book.

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 1 2 700 9730 9760 500 1 2 1

2 0 1 350 9720 9770 300 2 0 2

3 0 1 150 9710 9780 100 1 0 3

4 0 1 250 9700 9790 150 1 0 4

5 - - - - - - - - 5

7.3 Book Updates


Book update messages are generated by LMEsource as delta messages defined in section 4.3.2
Aggregate Order Book (322). Each message may contain any combination of new, changed, or
deleted entries for a book. The nature of an entry is defined by its UpdateAction.

Page 112

Page 112
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

UpdateAction Meaning Value

New Create/insert a new price level 0

Change Update aggregate quantity at a price level 1

Delete Remove a price level 2

7.4 Example 1 – Quantity reduction and explicit addition


For example suppose one of the explicit ask orders at price level 9770 is reduced in quantity such
that the total quantity is now 200, and at the same time a new explicit ask order is added with a price
of 9850 and quantity of 300, then the following message is sent:

Offset Field Name Value

0 MsgSize 109

2 MsgType 322

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 NoEntries 2

23 AggregateVolume 200

31 Price 9770

39 NumberOfExplicitOrders 2

43 TotalQtyOfExplicitOrders 200

51 NumberOfImpliedOrders 0

55 TotalQtyOfImpliedOrders 0

63 BuySell S

64 PriceLevel 2

Page 113

Page 113
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

65 UpdateAction 1

66 AggregateVolume 300

74 Price 9850

82 NumberOfExplicitOrders 1

86 TotalQtyOfExplicitOrders 300

94 NumberOfImpliedOrders 0

98 TotalQtyOfImpliedOrders 0

106 BuySell S

107 PriceLevel 5

108 UpdateAction 0

The resulting order book should now be as follows:

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 1 3 700 9730 9760 500 3 2 1

2 0 1 350 9720 9770 200 2 0 2

3 0 1 150 9710 9780 100 1 0 3

4 0 1 250 9700 9790 150 1 0 4

5 - - - - 9850 300 1 0 5

7.5 Example 2 – Implicit level adjustments


The client must adjust the price level of entries below deleted or inserted entries. Potential level
adjustments must be carried out after each single entry in the Aggregate Order Book message.

Page 114

Page 114
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

For example, if a bid order with price 9740 and quantity 50 is added to the order book above, it will
cause the following message to be sent:

Offset Field Name Value

0 MsgSize 66

2 MsgType 322

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 NoEntries 1

23 AggregateVolume 50

31 Price 9740

39 NumberOfExplicitOrders 1

43 TotalQtyOfExplicitOrders 50

51 NumberOfImpliedOrders 0

55 TotalQtyOfImpliedOrders 0

63 BuySell B

64 PriceLevel 1

65 UpdateAction 0

After processing this message, the client’s book should look as follows:

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 0 1 50 9740 9760 500 3 2 1

Page 115

Page 115
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

2 1 3 700 9730 9770 200 2 0 2

3 0 1 350 9720 9780 100 1 0 3

4 0 1 150 9710 9790 150 1 0 4

5 0 1 250 9700 9850 300 1 0 5

The price levels for the existing Bid orders must all be incremented even though there will not be
Aggregate Order Book messages sent for these increments. The implied bid order at a price of 9730
at (new) price level 2 remains in the order book, even though it is no longer at the best price.

7.6 Example 3 – Implicit deletions


If a new book entry causes the bottom entry of a book to be shifted out of the book (i.e. more than 5
price levels away from the best price), the client must delete the excess entry. If the book shrinks
again, LMEsource resends the entries that have temporarily fallen out.
For example, if a bid order at price 9750 and quantity 250 is added to the book above, and the bid
quantity at price 9710 is reduced from 150 to 110, it will cause the following message to be sent:

Offset Field Name Value

0 MsgSize 109

2 MsgType 322

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 NoEntries 2

23 AggregateVolume 250

31 Price 9750

Page 116

Page 116
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

39 NumberOfExplicitOrders 1

43 TotalQtyOfExplicitOrders 250

51 NumberOfImpliedOrders 0

55 TotalQtyOfImpliedOrders 0

63 BuySell B

64 PriceLevel 1

65 UpdateAction 0

66 AggregateVolume 110

74 Price 9710

82 NumberOfExplicitOrders 1

86 TotalQtyOfExplicitOrders 110

94 NumberOfImpliedOrders 0

98 TotalQtyOfImpliedOrders 0

106 BuySell B

107 PriceLevel 5

108 UpdateAction 1

After processing this message, the client’s book should look as follows:

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 0 1 250 9750 9760 500 3 2 1

Page 117

Page 117
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

2 0 1 50 9740 9770 200 2 0 2

3 1 3 700 9730 9780 100 1 0 3

4 0 1 350 9720 9790 150 1 0 4

5 0 1 110 9710 9850 300 1 0 5

Price 9750 and quantity 250 is added according to the message. Price 9700 and quantity 250 must
be deleted by the client.
Price 9710 quantity must be reduced to 110. The AOB messages uses the price level 5 to reflect the
new price level of the price 9710 after the addition of the new price level at price of 9750.

7.7 Example 4 – Explicit additions


If orders are removed so that there are now less than 5 levels visible then the server will also
automatically send the additional level(s) that are now revealed.
For example, if the bid order at price 9750 and quantity 250 is now removed from the book above
each price level will shift up one position, and this reveals a 5th level which needs to be
disseminated. This will cause the following message to be sent:

Offset Field Name Value

0 MsgSize 109

2 MsgType 322

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 NoEntries 2

23 AggregateVolume 250

Page 118

Page 118
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

31 Price 9750

39 NumberOfExplicitOrders 1

43 TotalQtyOfExplicitOrders 250

51 NumberOfImpliedOrders 0

55 TotalQtyOfImpliedOrders 0

63 BuySell B

64 PriceLevel 1

65 UpdateAction 2

66 AggregateVolume 250

74 Price 9700

82 NumberOfExplicitOrders 1

86 TotalQtyOfExplicitOrders 250

94 NumberOfImpliedOrders 0

98 TotalQtyOfImpliedOrders 0

106 BuySell B

107 PriceLevel 5

108 UpdateAction 0

Page 119

Page 119
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

The resulting order book should now be:

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 0 1 50 9740 9760 500 3 2 1

2 1 3 700 9730 9770 200 2 0 2

3 0 1 350 9720 9780 100 1 0 3

4 0 1 110 9710 9790 150 1 0 4

5 0 1 250 9700 9850 300 1 0 5

7.8 Example 5 – Additional order at an existing price level


If a new order is entered into the book at an existing price level, the number of orders and the
quantity at that level is incremented.
For example, if an ask order at price 9780 and quantity 200 is added to the book above the following
message will be sent:

Offset Field Name Value

0 MsgSize 66

2 MsgType 322

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 NoEntries 1

23 AggregateVolume 300

31 Price 9780

Page 120

Page 120
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

39 NumberOfExplicitOrders 2

43 TotalQtyOfExplicitOrders 300

51 NumberOfImpliedOrders 0

55 TotalQtyOfImpliedOrders 0

63 BuySell S

64 PriceLevel 3

65 UpdateAction 1

The resulting order book should now be as follows:

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 0 1 50 9740 9760 500 3 2 1

2 1 3 700 9730 9770 200 2 0 2

3 0 1 350 9720 9780 300 2 0 3

4 0 1 110 9710 9790 150 1 0 4

5 0 1 250 9700 9850 300 1 0 5

7.9 Example 6 – An existing order has its quantity amended


An amendment to an order’s quantity is published as a price level update, irrespective of whether the
quantity is increased or decreased, or how many orders there are at the price level.
For example, if one of the ask orders at price 9770 is revised such that the aggregate quantity at that
price level is 150, the following message will be sent:

Page 121

Page 121
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

0 MsgSize 109

2 MsgType 322

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 NoEntries 2

23 AggregateVolume 150

31 Price 9770

39 NumberOfExplicitOrders 2

43 TotalQtyOfExplicitOrders 0

51 NumberOfImpliedOrders 0

55 TotalQtyOfImpliedOrders 0

63 BuySell S

64 PriceLevel 2

65 UpdateAction 1

The resulting order book should now be:

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

1 0 1 50 9740 9760 500 3 2 1

2 1 3 700 9730 9770 150 2 0 2

Page 122

Page 122
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Bid Side Ask Side

Price No. Of No. of Agg. Price Price Agg. No. of No. of Price
Level Implied Explicit Volume Volume Explicit Implied Level
Orders Orders Orders Orders

3 0 1 350 9720 9780 300 2 0 3

4 0 1 110 9710 9790 150 1 0 4

5 0 1 250 9700 9850 300 1 0 5

Page 123

Page 123
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

8 Level 3 Full Order Book Management

8.1 Book Identification


A book is uniquely identified by TradableInstrumentID. TradableInstrumentID is an unsigned integer
representation of 8 bytes from Outright Definition (301) messages and Strategy Definition (302)
messages.

8.2 Book Updates


The information needed to build an order book view from the message flow is contained within the
following messages:

• Order Add (323)

• Order Amend (324)

• Order Cancel (325)

• Order Executed (326)


Orders are ranked by order book position based upon price and time priority, with 1 denoting the
highest ranked order. When an order is cancelled or fully filled, all existing orders below it should shift
their position up one step to fill the “void”.
The Order Add (323) message signals that a new order is placed in the order book. If there are
already orders in that position, recipients should check the price of existing orders (with the same
order book position). If the price of the existing order(s) is worse than the price of new order, all
existing orders below the new order should shift down one position. If the price of the existing
order(s) is better than the price of new order, it signifies an error (something has gone wrong with the
order book).
The Order Amend (324) message signals that the order has been modified. The current rank may or
may not be lost in the process. The OrderBookPosition field will show the new rank within the book.
The order must be removed from its previous position and inserted at the new OrderBookPosition if
the new position is not the same as previous one. Removal of an order causes existing orders below
it to shift their position up one level. An order inserted at an existing position should be handled as
per an Order Add (323).
The Order Cancel (325) message tells the recipient to remove the order referenced. If the order
cancelled or fully filled is the last order at that position, the deleted order causes all existing orders
below it to shift their position up one step to fill the “void”.
The Order Executed (326) messages tells the recipient to deduct the traded order from the order
book. If the order is fully filled, the associated order (OrderID) should be removed from the order lists.
If it was the only remaining order at that order position, all existing orders below it should shift their
position up one step to fill the “void”. If the order is partially executed, the executed quantity should
be deducted from the associated order in the order lists.
In certain failure scenarios LMEsource may send an 'Order Book Clear' message at which point
clients should clear all orders in the book for the specified instrument.

Page 124

Page 124
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Following an 'Order Book Clear' message any existing orders for the instrument will be resent as
Order Add (323) messages to rebuild the current image.
The table below shows the starting position of the order book for the following examples:

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0003 500 9730 9760 500 1004 1

2 0004 200 9730 9770 100 1001 2

3 0002 350 9720 9770 200 1002 3

4 0001 150 9710 9780 100 1003 4

5 0005 250 9700 9790 150 1005 5

8.3 Example 1 – Addition of a new order


A new Bid order with price 9720 is received. The following message is published by LMEsource:

Offset Field Name Value

0 MsgSize 72

2 MsgType 323

4 TradingVenue EL

6 TimeOfEvent 123456789

14 T1 123456789

22 T2 123456789

30 T3 123456789

38 TradableInstrumentID 1234

46 OrderID 0006

Page 125

Page 125
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

54 BuySell B

55 Volume 75

59 Price 9720

67 OrderBookPosition 4

71 Filler -

The new Bid order 0006 is inserted into the order book at position 4. The existing order 0002 at the
same price of 9720 remains in its higher position of 3 due to its time priority. Orders 0001 and 0005
must have their order book positions adjusted down one step by the client.

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0003 500 9730 9760 500 1004 1

2 0004 200 9730 9770 100 1001 2

3 0002 350 9720 9770 200 1002 3

4 0006 75 9720 9780 100 1003 4

5 0001 150 9710 9790 150 1005 5

6 0005 250 9700 - - - -

8.4 Example 2 – A resting order has its quantity decreased


The Bid order with OrderID 0002 and price of 9720 has its quantity reduced from 350 to 300. The
following message is published by LMEsource:

Offset Field Name Value

0 MsgSize 72

2 MsgType 324

Page 126

Page 126
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

4 TradingVenue EL

6 TimeOfEvent 123456789

14 T1 123456789

22 T2 123456789

30 T3 123456789

38 TradableInstrumentID 1234

46 OrderID 0002

54 BuySell B

55 Volume 300

59 Price 9720

67 OrderBookPosition 3

71 Filler -

The quantity of Bid order 0002 is reduced from 350 to 300. It remains at order book position 3.

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0003 500 9730 9760 500 1004 1

2 0004 200 9730 9770 100 1001 2

3 0002 300 9720 9770 200 1002 3

4 0006 75 9720 9780 100 1003 4

5 0001 150 9710 9790 150 1005 5

Page 127

Page 127
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

6 0005 250 9700 - - - -

8.5 Example 3 – A resting order has its quantity increased


A Bid order with OrderID 0001 and a price of 9710 has its quantity increased from 150 to 165. The
following messages are published by LMEsource:

Offset Field Name Value

0 MsgSize 72

2 MsgType 325

4 TradingVenue EL

6 TimeOfEvent 123456789

14 T1 123456789

22 T2 123456789

30 T3 123456789

38 TradableInstrumentID 1234

46 OrderID 0001

54 BuySell B

55 Filler -

Offset Field Name Value

0 MsgSize 72

2 MsgType 323

Page 128

Page 128
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

4 TradingVenue EL

6 TimeOfEvent 123456789

14 T1 123456789

22 T2 123456789

30 T3 123456789

38 TradableInstrumentID 1234

46 OrderID 0001

54 BuySell B

55 Volume 165

59 Price 9710

67 OrderBookPosition 5

71 Filler -

No Order Amend message is published and the order remains at order book position 5.

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0003 500 9730 9760 500 1004 1

2 0004 200 9730 9770 100 1001 2

3 0002 300 9720 9770 200 1002 3

4 0006 75 9720 9780 100 1003 4

5 0001 165 9710 9790 150 1005 5

Page 129

Page 129
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

6 0005 250 9700 - - - -

8.6 Example 4 – Cancellation of an order


The Ask order with OrderID 1001 and price of 9770 is pulled by the originating trader. The following
message is published by LMEsource:

Offset Field Name Value

0 MsgSize 72

2 MsgType 325

4 TradingVenue EL

6 TimeOfEvent 123456789

14 T1 123456789

22 T2 123456789

30 T3 123456789

38 TradableInstrumentID 1234

46 OrderID 1001

54 BuySell S

55 Filler -

The client must remove OrderID 1001 from their order book and adjust the order book position for the
remaining Ask Orders up by one step.

Page 130

Page 130
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0003 500 9730 9760 500 1004 1

2 0004 200 9730 9770 200 1002 2

3 0002 300 9720 9780 100 1003 3

4 0006 75 9720 9790 150 1005 4

5 0001 150 9710 - - - -

6 0005 250 9700 - - - -

8.7 Example 5 – An aggressing order executes against a resting order


An aggressing Bid Order with an OrderID of 0007, a price of 9760 and quantity 100 is entered by a
trader. This order fully executes against the resting ask order with the OrderID of 1004.
The aggressing order is not published. An Order Executed message for the resting Ask Order with
OrderID 1004 is published. No Order Amend for OrderID 1004 is published.

Offset Field Name Value

0 MsgSize 53

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 Price 9760

30 Volume 100

34 OrderID 1004

Page 131

Page 131
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

42 MatchID 9988

50 TradeCancelFlag 0

51 SubTypeOfTrade 1 (Explicit)

52 TradeBuySell S

53 StrategyLegCount 0

The client must update the quantity for OrderID 1004 in their order book. The order book should now
look like:

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0003 500 9730 9760 400 1004 1

2 0004 200 9730 9770 200 1002 2

3 0002 300 9720 9780 100 1003 3

4 0006 75 9720 9790 150 1005 4

5 0001 150 9710 - - - -

6 0005 250 9700 - - - -

8.8 Example 6 – An aggressing order executes against multiple resting


orders at different price levels
An aggressing Ask Order with an OrderID of 1006, a price of 9720 and quantity 800 is entered by a
trader. This order fully executes against the resting bid orders with OrderIDs of 0003, 0004 and 0002.
Orders 0003 and 0004 are fully filled, and Order 0002 partially filled.
The aggressing order is not published. Three Order Executed messages for the resting Bid Orders
are published. No Order Amend for OrderID 0002 is published.
The following messages are published:

Page 132

Page 132
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

0 MsgSize 53

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 Price 9730

30 Volume 500

34 OrderID 0003

42 MatchID 7766

50 TradeCancelFlag 0

51 SubTypeOfTrade 1 (Explicit)

52 TradeBuySell B

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 53

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 Price 9730

Page 133

Page 133
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

30 Volume 200

34 OrderID 0004

42 MatchID 7767

50 TradeCancelFlag 0

51 SubTypeOfTrade 1 (Explicit)

52 TradeBuySell B

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 53

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 1234

22 Price 9720

30 Volume 100

34 OrderID 0002

42 MatchID 7768

50 TradeCancelFlag 0

51 SubTypeOfTrade 1 (Explicit)

52 TradeBuySell B

Page 134

Page 134
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

53 StrategyLegCount 0

The client must remove Orders 0003 and 0004, and update the quantity for OrderID 0002 in their
order book. The remaining Bid orders have their order book position updated. The order book should
now look like:

Bid Side Ask Side

Orderbook OrderID Volume Price Price Volume OrderID Orderbook


Position Position

1 0002 200 9720 9760 400 1004 1

2 0006 75 9720 9770 200 1002 2

3 0001 150 9710 9780 100 1003 3

4 0005 250 9700 9790 150 1005 4

- - - - - - - -

8.9 Example 7 – A trade results from an Implied order


The following orders are submitted:

• Order 1: An explicit outright Bid Order in Month 1 with a price of 9400 and quantity of 10
• Order 2: An Ask Carry Order in Month1/Month2 with a price of 20 and a quantity of 12.

Order 3: Implied Bid is generated in Month 2 from Order 1 and Order 2 with a quantity of 10.
A subsequent order is submitted:

• Order 4: An explicit outright Ask order in Month 2 at a price of 9380 and a quantity of 9.

Order 4 trades with the Implied Bid in Month 2 (Order 3) at a price of 9380 for 9 lots.
The following Order Executed messages are published:

Offset Field Name Value

0 MsgSize 54

2 MsgType 326

Page 135

Page 135
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 5053

22 Price 9380

30 Volume 9

34 OrderID NULL

42 MatchID 7799

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (Implied)

52 TradeBuySell S

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 54

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 5085

22 Price 9400

30 Volume 9

34 OrderID 0006

Page 136

Page 136
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

42 MatchID 7850

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (Implied)

52 TradeBuySell B

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 112

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 23358

22 Price 20

30 Volume 9

34 OrderID 0007

42 MatchID 7862

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (Implied)

52 TradeBuySell S

53 StrategyLegCount 2

LegNumber 5085

Page 137

Page 137
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

LegBuySell S

LegPrice 9400

LegVolume 9

LegMatchID 7850

LegNumber 5053

LegBuySell B

LegPrice 9380

LegVolume 9

LegMatchID 7799

8.10 Example 8 – Two implied orders trade


The following orders are submitted:

• Order 1: An explicit outright Bid Order in Month 1 with a price of 9400 and quantity 10.
• Order 2: An Ask Carry Order in Month1/Month2 with a price of 10 and a quantity of 10

Order 3: Implied Bid is generated in Month 2 from Order 1 and Order 2 with a quantity of 10
Subsequent orders are submitted:

• Order 4: An Ask Carry Order in Month2/Month3 with a price of 10 and a quantity of 10


• Order 5: An explicit outright Ask Order in Month 3 with a price 9380 and a quantity of 7

Order 6: Implied Ask is generated in Month 2 from Order 4 and Order 5 with a quantity of 7
The implied orders trade at a price of 9390 for 7 lots.
The following Order Executed messages are published:

Offset Field Name Value

0 MsgSize 54

2 MsgType 326

4 TradingVenue EL

Page 138

Page 138
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

6 TimeOfEvent 123456789

14 TradableInstrumentID 5085

22 Price 9390

30 Volume 7

34 OrderID NULL

42 MatchID 8065

50 TradeCancelFlag 0

51 SubTypeOfTrade 8 (Two Implieds)

52 TradeBuySell B

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 112

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 23358

22 Price 10

30 Volume 7

34 OrderID 0008

42 MatchID 8066

Page 139

Page 139
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (Implied)

52 TradeBuySell S

53 StrategyLegCount 2

LegNumber 5085

LegBuySell S

LegPrice 9390

LegVolume 7

LegMatchID 1

LegNumber 5053

LegBuySell B

LegPrice 9380

LegVolume 7

LegMatchID 2

Offset Field Name Value

0 MsgSize 54

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 5053

Page 140

Page 140
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

22 Price 9380

30 Volume 7

34 OrderID 0009

42 MatchID 8067

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (implied)

52 TradeBuySell S

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 54

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 5144

22 Price 9400

30 Volume 7

34 OrderID 0010

42 MatchID 8068

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (Implied)

Page 141

Page 141
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

52 TradeBuySell B

53 StrategyLegCount 0

Offset Field Name Value

0 MsgSize 112

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 23357

22 Price 10

30 Volume 7

34 OrderID 0011

42 MatchID 8069

50 TradeCancelFlag 0

51 SubTypeOfTrade 7 (Implied)

52 TradeBuySell S

53 StrategyLegCount 2

LegNumber 5144

LegBuySell S

LegPrice 9400

LegVolume 7

Page 142

Page 142
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

LegMatchID 4

LegNumber 5085

LegBuySell B

LegPrice 9390

LegVolume 7

LegMatchID 8

8.11 Example 9 – A trade resulted from uncrossing


The following orders are submitted in Pre-Open:

• Order 1: An explicit outright Bid Order in Month 1 with a price of 9400 and quantity 15
• Order 2: An explicit outright Ask Order in Month 1 with a price of 9405 and quantity 15
• Order 3: An explicit outright Ask Order in Month 1 with a price of 9400 and quantity 16

Order 1 trades with Order 3 when the market moves into Open.
The following Order Executed message is published:

Offset Field Name Value

0 MsgSize 54

2 MsgType 326

4 TradingVenue EL

6 TimeOfEvent 123456789

14 TradableInstrumentID 5085

22 Price 9400

30 Volume 15

34 OrderID 0012

42 MatchID 8099

Page 143

Page 143
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Name Value

50 TradeCancelFlag 0

51 SubTypeOfTrade 2 (Uncrossing)

52 TradeBuySell B

53 StrategyLegCount 0

Page 144

Page 144
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

9 Appendix A – Product Hierarchy


The following diagram shows the levels in the product hierarchy for a Copper Futures contract:

Page 145

Page 145
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

10 Appendix B – Reference Data Values

10.1 Prompt Date Label


The prompt date label can be one of the following, depending upon the contract and type of prompt.
Note: precedence rules are used to determine which prompt date label is published.

Prompt Type Possible Values

Daily Sequential contiguous labels: D1, D2, D3...D90

Weekly Sequential contiguous labels: W1, W2, W3...W26

Monthly Sequential contiguous labels: M1, M2, M3…M124.

Quarterly prompts Sequential contiguous labels: Q1, Q2, Q3…Q36. Q is always


March, June, September and December, with Q1 being the
nearest of these after the Cash prompt.

Semi-annual prompts Sequential contiguous labels: S1, S2, S3…S20. S is always June
or December, with S1 being the nearest of these after the Cash
prompt.

Annual prompts Sequential contiguous labels: A1, A2, A3…A10. A is always


December, with A1 being the nearest December prompt after the
Cash prompt.

Specific Prompts DEC1 - the December monthly in the next calendar year according
to the current trading day
DEC2 - the December monthly in the second next calendar year
according to the current trading day
DEC3 - the December monthly in the third next calendar year
according to the current trading day
15M - the 3rd Wednesday (monthly) prompt that falls in the month
15 months from the current month
27M - the 3rd Wednesday (monthly) prompt that falls in the month
27 months from the current month
63M - the 3rd Wednesday (monthly) prompt that falls in the month
63 months from the current month
123M - the 3rd Wednesday (monthly) prompt that falls in the
month 123 months from the current month

Page 146

Page 146
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Prompt Type Possible Values

Second Business Day nM2BD - the second LME business day of the month:
4M2BD…25M2BD

Rolling Prompts TOM, CASH, 3M

10.1.1 Prompt Date Label Precedence

It is possible for a tradable instrument to have more than one prompt date label, however the Outright
Definition (301) and Tradable Instrument Definition (304) message will only include one prompt date
label. The precedence for which prompt date label is published is:
1. A rolling prompt date label has the highest precedence, see section 11.1.1
2. A specific label (DEC1, DEC2, DEC3, 15M, 27M, 63M, 123M) takes precedence over duration
labels (e.g. annual, semi-annual, quarterly, monthly, weekly, daily).
3. Annuals duration labels take precedence over semi-annual / quarterly / monthly / weekly / daily
duration labels.
4. Semi-annual duration labels take precedence over quarterly / monthly / weekly / daily duration
labels.
5. Quarterly labels take precedence over monthly / weekly / daily duration labels.
6. Monthly duration labels take precedence over weekly / daily duration labels.
7. Weekly duration labels take precedence over daily duration labels.
8. Daily duration label take precedence over second business days of the month labels.
For example, on 15 March 2022 AA May 22 can have the following prompt date labels - D43, M2,
W10. The prompt date label published would be M2.

10.2 Strategy Type Code

Strategy Type Value

Carry 1

Custom (Futures) 2

Three Month Average 3

Six Month Average 4

Twelve Month Average 5

Page 147

Page 147
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Strategy Type Value

Carry Average 6

Call Spread 7

Put Spread 8

Custom (Delta Hedge) 9

Custom (Options) 10

10.3 Tick Size ID


The following table shows the current mapping between TickSizeID which is published in Outright
Definition (301), Strategy Definition (302) and Tradable Instrument Definition (304) messages and the
tick size:

TickSizeID Tick Size

1 0.01

2 0.05

3 0.50

4 5

5 10

6 0.005

7 50

10 0.10

11 0.25

12 1

Page 148

Page 148
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

10.4 Trade at Reference Price Code

Value Description

YS Yesterday’s Settlement Price

V Yesterday’s Closing Price (Valuation Price)

S Settlement Price

C Closing Price

B Basis Price

MC Mean Cash Price

M3 Mean 3 Month Price

TC Trade at Close

TS Trade at Settlement

Note prices in Trade at Reference tradable instruments in the Electronic venue are a differential to
the reference price. The trade price will be substituted with the reference price once it becomes
available, see section 15.1.
Trade prices in Inter Office and Ring venue are published as the substituted actual price.

Page 149

Page 149
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

11 Appendix C – Expiry Dates

11.1 Futures
An LME future is defined by a symbol, and the prompt date. For LME futures, prompt date is
analogous to expiry date and is present in the ExpiryDate field in the Outright Definition (301) and
Tradable Instrument Definition (304) messages. A prompt date will have a prompt type of either
rolling or single. The prompt type is present in the PromptType field in the Outright Definition (301)
and Tradable Instrument Definition (304) messages

11.1.1 Rolling Prompts

Prompt dates that are of prompt type rolling are relative to the current trading day. When trades in
these contracts are sent to clearing, the date is “frozen” into a calendar date. The principal rolling
prompts are:

• 3M (Three months) – this prompt date represents the settlement business day three months
from today.

• CASH – this prompt date represents the settlement business day after tomorrow.

• TOM (Tomorrow) – this prompt date represents tomorrow.


Rolling prompts are present in the PromptDateLabel field in the Outright Definition (301) and
Tradable Instrument Definition (304) messages. The actual calendar date is included in the
ExpiryDate field. Not all LME Metal Futures have rolling prompt dates.

11.1.2 Single Prompts

Prompt dates that are of prompt type single are calendar dates, written in the format YYYYMMDD,
where YYYY is the year, MM is the month (01-12) and DD is the day (01-31). The LME uses the
concept of “Monthly”, “Weekly”, “Daily” contracts, but all these contract types represent a single
prompt date, and there is no difference between them in LMEsource. (For “Monthly” contracts, the
prompt date is either the 3rd Wednesday in the month or the last Business Day in the month. For
“Weekly” contracts, the prompt date is the Wednesday in each week).
Single prompt dates are present in the ExpiryDate field in the Outright Definition (301) and Tradable
Instrument Definition (304) messages.

11.1.3 LME Calendar

To know what prompt dates that are available, it is necessary to have access to an LME trading
calendar. A quick and incomplete summary of the trading calendar is:
For a Future on a physically delivered metal, 3M and CASH are always present, and TOM is usually
present. TOM is not present if that date is a US national holiday. There is one prompt date per
settlement business day between the TOM and the 3M contract, thereafter a prompt date every
Wednesday until the end of the month that is six months after the current month and then prompt
dates on the 3rd Wednesday of each month for a number of months, depending on the underlying
product. There are also prompt dates on the second business day of each month, the number of
these Second Business Day (2BD) prompt dates depends on the underlying product.

Page 150

Page 150
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

For LMEminis, there is one prompt date every 3rd Wednesday in the month for 12 months. There are
no rolling prompt dates for LMEminis.
For LME Monthly Cash Settled Futures (CSFs), there is one prompt date on the last working day of
each month. The CSF prompt date does not need to fall on a settlement business day.
For LME Monthly Average Futures (MAFs), there is one prompt date on the last working day of each
month. The MAF prompt date does not need to fall on a settlement business day.

11.2 Options
An Option on a physically delivered metal is defined by a symbol, an option type, a strike price and
an expiration date.
Expiration dates are calendar dates, written in the format YYYYMMDD, where YYYY is the year, mm
is the month (01-12) and DD is the day (01-31). There is one expiration date per month: the first
Wednesday in the month. The expiration date is rolled forward one day if the expiration date is a non-
business day. The expiration date for options does not need to fall on a settlement business day.

11.3 Traded Average Price Options (TAPOs)


A TAPO is defined by a symbol (only metals), an option type, a strike price and an expiration date.
For TAPOS, the only allowed expiration date is the single expiration date in format YYYYMMDD.
There is one expiration date per month on the last trading day of the month.

Page 151

Page 151
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

12 Appendix D – Channel Matrix

Page 152

Page 152
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

12.1 Messages and Channels


CORE GROWTH LBMA ALGO
Commercial Package Commercial Package Commercial Package Commercial Package
Real Real Real Real
Category Message Channel Refresh Refresh Refresh Refresh
Time Time Time Time
Channels Channels Channels Channels
Channels Channels Channels Channels
ID ID ID ID
ID ID ID ID
Top of Book (321)
Order Book Clear (327)
Market Data Trade (341)
Level1 111 611 131 631 - - - -
Indicative Opening Price (320)
Market State - Contract (311)
Market State - Instrument (312)
Aggregate Order Book (322)
Order Book Clear (327)
Market Data Trade (341)
Electronic Level2 112 612 132 632 - - - -
Indicative Opening Price (320)
Futures
Market State - Contract (311)
Market State - Instrument (312)
Order Add (323)
Order Amend (324)
Order Cancel (325)
Order Book Clear (327) Level3 113 613 133 633 - - - -
Order Executed (326)
Indicative Opening Price (320)
Market State - Contract (311)

Page 153

Page 153
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

CORE GROWTH LBMA ALGO


Commercial Package Commercial Package Commercial Package Commercial Package
Real Real Real Real
Category Message Channel Refresh Refresh Refresh Refresh
Time Time Time Time
Channels Channels Channels Channels
Channels Channels Channels Channels
ID ID ID ID
ID ID ID ID
Market State - Instrument (312)
Trade
Market Data Trade (341) Replay N/A 614 N/A 634 N/A - - -
(Refresh)
Aggregate Order Book (322)
Order Book Clear (327)
Market Data Trade (341)
Level2 - - - - - - 102 N/A
Indicative Opening Price (320)
Market State - Contract (311)
Market State - Instrument (312)

Electronic Order Add (323)


Algos Order Amend (324)
Order Cancel (325)
Order Book Clear (327)
Level3 - - - - - - 103 N/A
Order Executed (326)
Indicative Opening Price (320)
Market State - Contract (311)
Market State - Instrument (312)

Inter Market State - Product (310)


N/A N/A
Office and Indicative Trade Price (340) All trades,
Ring orders & 205 705 - - - -
(Non- Market Data Order (328) status
215 715
Electronic) Market Data Trade (341)

Page 154

Page 154
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

CORE GROWTH LBMA ALGO


Commercial Package Commercial Package Commercial Package Commercial Package
Real Real Real Real
Category Message Channel Refresh Refresh Refresh Refresh
Time Time Time Time
Channels Channels Channels Channels
Channels Channels Channels Channels
ID ID ID ID
ID ID ID ID
Business Event - Pre-TT Auction (342) PTT Auction 206 N/A 216 N/A - - - -

Reference Price (401)


217 717
Reference FX Rate (403)
Reference 207 707 N/A N/A - -
Reference Forward Curve Price (402)
Prices N/A N/A
Reference Volatility Price (404)
Reference Auction Price (405) N/A N/A N/A N/A 307 807 - -
Premium Open Interest (420)
218 718 - -
Trading Volume (424)
Open Interest Band (421) Daily 208 708
Position Band (422) Summaries N/A N/A - -
Warrant Band (423)
Warehouse Stock Movement (426) 209 709 N/A N/A - -
Contract Definition (300)
Outright Definition (301)
Strategy Definition (302) Electronic 115 615 135 635 - -
Price Limits (305) Futures
Reference Trade Statistics - End of Day (351)
Data Trade Statistics - Intraday (352) 116 616 136 636 - -
Outright Definition (301)
Strategy Definition (302) Electronic - - - - - - 105 N/A
Trade Statistics - End of Day (351) Algos
Trade Statistics - Intraday (352) - - - - - - 106 N/A

Page 155

Page 155
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

CORE GROWTH LBMA ALGO


Commercial Package Commercial Package Commercial Package Commercial Package
Real Real Real Real
Category Message Channel Refresh Refresh Refresh Refresh
Time Time Time Time
Channels Channels Channels Channels
Channels Channels Channels Channels
ID ID ID ID
ID ID ID ID
Instrument Definition (303) Non-
Reference Electronic
Tradable Instrument Definition (304) 200 700 200 700 - - - -
Data Reference
Order Statistics Intraday (350) Data
DR Signal 81 N/A 81 N/A 81 N/A 81 N/A
Notes:
Order Executed (326) not available in refresh channel for Core & Growth packages
Market State - Product (310) available for Core Packages only
Indicative Trade Price (340) available for Core packages only
Regarding Market Data Order (328) message, Ring orders for Core packages only and PTT Auction for both Core & Growth packages
Reference Volatility Price (404) available for Core packages only
Reference Auction Price (405) available for LMBA package only

Page 156

Page 156
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

13 Appendix E – Reference Price Examples

13.1 Indicative Closing Price

Offset Field Value

0 MsgSize 102

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

13 PriceType Closing

45 PriceStatus Indicative

57 BusinessDate 20220504

61 InstrumentID 53160 (3M)

69 ProductCode CA

71 CurrencyCode USD

74 Bid NULL

82 Price 9489500000

90 Ask NULL

13.2 Official Price

Offset Field Value

0 MsgSize 102

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

Page 157

Page 157
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Value

13 PriceType Official

45 PriceStatus Final

57 BusinessDate 20220504

61 InstrumentID 18227 (JUL23)

69 ProductCode AE

71 CurrencyCode USD

74 Bid 2842000000

82 Price NULL

90 Ask 2847000000

13.3 Settlement Price

Offset Field Value

0 MsgSize 102

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

13 PriceType Final

45 PriceStatus Settlement

57 BusinessDate 20220504

61 InstrumentID 43520 (Cash)

69 ProductCode AH

71 CurrencyCode USD

74 Bid NULL

Page 158

Page 158
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Value

82 Price 2708000000

90 Ask NULL

13.4 Monthly Moving Average Price (MMAP)

Offset Field Value

0 MsgSize 102

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

13 PriceType Settlement

45 PriceStatus Provisional

57 BusinessDate 20220504

61 InstrumentID 2634 (OA MAY22)

69 ProductCode AH

71 CurrencyCode USD

74 Bid NULL

82 Price 2843880000

90 Ask NULL

13.5 Monthly Average Settlement Price (MASP)


Published on the last business day of the month

Offset Field Value

0 MsgSize 102

Page 159

Page 159
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Value

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

13 PriceType Settlement

45 PriceStatus Final

57 BusinessDate 20220504

61 InstrumentID 2634 (OA MAY22)

69 ProductCode AH

71 CurrencyCode USD

74 Bid NULL

82 Price 2836950000

90 Ask NULL

13.6 Closing Price


Note the same closing price would also apply to a TaS/TaR tradable instrument.

Offset Field Value

0 MsgSize 102

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

13 PriceType Closing

45 PriceStatus Final

57 BusinessDate 20220504

Page 160

Page 160
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Value

61 InstrumentID 64765 (3M)

69 ProductCode NI

71 CurrencyCode USD

74 Bid NULL

82 Price 24950000000

90 Ask NULL

13.7 Notional Average Price (NAP)

Offset Field Value

0 MsgSize 102

2 MsgType 401

4 TimeOfEvent 123455789

12 Category I (Instrument)

13 PriceType Closing

45 PriceStatus Final

57 BusinessDate 20220504

61 InstrumentID 52272 (OA JUL22)

69 ProductCode AH

71 CurrencyCode USD

74 Bid NULL

82 Price 2767190000

90 Ask NULL

Page 161

Page 161
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

14 Appendix F - Warehouse Stock Data

14.1 Grade

Metal Grade Grade Code

Cobalt (CO) Briquettes BRIQ

Cathodes CATS

Coarse Grain Powder CGPO

Rounds ROUN

Copper (CA) Cathodes CATS

Aluminium (AH) Ingots INGO

T-Bar TBAR

Sows SOWS

Nickel (NI) Bagged Briquettes BBRI

Bagged Pellets BPEL

Briquettes BRIQ

Cathodes CAT1 - (100x100mm)

Cathodes CAT2 - (25x25mm)

Cathodes CAT5 - (50x50mm)

Pellets PLTS

Full plate cathode FPCS

Rounds NRDR

Rounds Bagged NRBA

Tin (SN) Ingots INGO

Lead (PB) Ingots INGO

Page 162

Page 162
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Metal Grade Grade Code

Zinc (ZS) Ingots INGO

Jumbo JUMB

Aluminium Alloy (AA) Ingots IN26

Ingots IN80

Ingots I121

Large sows LS26

Large sows LS80

Large sows L121

Small sows SS26

Small sows SS80

Small sows S121

Tbars TB26

Tbars TB80

Tbars T121

NASAAC (NA) Ingots INGO

Large sows LSOW

Small sows SSOW

T-Bar TBAR

Premium Future Aluminium, Ingots INGO


East Asia (AE)
T-Bar TBAR

Sows SOWS

Premium Future Aluminium, Ingots INGO

Page 163

Page 163
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Metal Grade Grade Code

US (AN) T-Bar TBAR

Sows SOWS

Premium Future Aluminium, Ingots INGO


South East Asia (AS)
T-Bar TBAR

Sows SOWS

Premium Future Aluminium, Ingots INGO


Western Europe (AW)
T-Bar TBAR

Sows SOWS

14.2 Location

Country Location Description Delivery Point for


Code

Belgium ANTW Antwerp AA, AH, AW. CA, CO, NI, PB, SN, ZS

Germany HAMB Hamburg AA, AH, AW, CA, NI, PB, SN, ZS

Holland AMST Amsterdam AA, AH, NI, PB, SN, ZN

MOER Moerdijk AA, AH, AW, CA, CO, NI, PB, SN, ZS

ROTT Rotterdam AA, AH, AW, CA, CO, NI, PB, SN, ZS

VLIS Vlissingen AA, AH, CA, NI, PB, SN, ZS

Italy GENO Genoa AA, AH, NI, PB, SN, ZS

LEGH Leghorn AA, AH, CA, NI, PB, ZS

TRIE Triest AA, AH, CA, NI, PB, SN, ZS

Japan NAGO Nagoya AE, AH

YOKO Yokahama AE, AH

Page 164

Page 164
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Country Location Description Delivery Point for


Code

Korea BUSA Busan AA, AE, AH, CA, NI, PB, SN

GWAN Gwangyang AA, AE, AH, CA, NI, PB, SN

INCH Incheon AA, AH, CA, NI, PB

Malaysia JOHO Johor AA, AH, AS, CA, NI, PB, SN, ZS

POKL Port Klang AA, AH, AS, CA, NI, PB, SN, ZS

Singapore SING Singapore AA, AH, AS, CA, CO, NI, PB, SN, ZS

Spain BARC Barcelona AA, AH, CA, NI, PB, SN, ZS

BILB Bilbao AA, AH, CA, NI, PB, SN, ZS

Sweden HELS Helsingborg AH, CA, NI, PB, ZS

Taiwan KAOH Kaohisung AA, AE, AH, CA, NI, PB, SN, ZS

United HULL Hull AA, AH, CA, NI, PB, SN, ZS


Kingdom
LIVE Liverpool AA, AH, CA, NI, PB, SN, ZS

UAE DUBA Dubai CA, NI, PB, ZS

USA BALT Baltimore AH, AN, CA, CO, NI, NA, PB, SN, ZS

CHIC Chicago AH, AN, CA, NI, NA, PB, ZS

DETR Detroit AH, AN, NI, NA, PB, ZS

LOSA Los Angeles AH, NI, NA, PB, SN, ZS

MOBI Mobile AH, AN, CA, NI, NA, PB, SN, ZS

NEWO New Orleans AH, AN, CA, NI, NA, PB, SN, ZS

OWEN Owensboro AH, NA

TOLE Toledo AH, NI, NA, PB, ZS

Page 165

Page 165
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

15 Appendix G - Market Data Trade Examples

15.1 Trade at Reference Price Trade


A TaS/TaR trade is executed in the Electronic venue. The TradeAtReferencePriceType shows that
the price is a differential of the reference price.

Offset Field Value

0 MsgSize 62

2 MsgType 341

4 TimeOfEvent 123455789

12 TradableInstrumentID 9999 (Nickel 3M TC)

20 TradingVenue EL

22 MatchedTime Null

30 RingSession Null

32 TradeCancelFlag 0

33 Price 2

41 Volume 10

45 MatchID 3456

53 TradeAtReferencePriceType D = Differential

54 SubTypeOfTrade 1 = Explicit order

55 RemainingRecords 0

57 RecordCount 0

59 StrategyLegCount 0

The TradeAtReferencePriceType shows that the price has been substituted with the closing price.
For a substituted trade MatchedTime will be provided.

Page 166

Page 166
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Offset Field Value

0 MsgSize 62

2 MsgType 341

4 TimeOfEvent 123455789

12 TradableInstrumentID 9999 (Nickel 3M TC)

20 TradingVenue EL

22 MatchedTime 123466789

30 RingSession Null

32 TradeCancelFlag 0

33 Price 9872

41 Volume 10

45 MatchID 3456

53 TradeAtReferencePriceType S = Substituted

54 SubTypeOfTrade 1 = Explicit order

55 RemainingRecords 0

57 RecordCount 0

59 StrategyLegCount 0

Page 167

Page 167
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Document Version History


Version Date Changes

4.00 11 Jun 2020 Initial release of document for electronic market data from the new
LMEselect v10

4.01 – 4.03 LME internal updates

4.04 28 May 2021 Changes to message definitions for the following messages:

• Outright Definition (301) and Strategy Definition (302)


Day 2 functionality identified in grey and italic font.
New messages defined:

• Order Cancel (335), Order Executed (350) and Match Trade


(360)
Updated details for Intraday Trade Statistics (352) message.
Update definition for TimeOfEvent fields.
Extra detail on IOP (354) message.
Additional Order update examples added in sections 7 and 8.

4.05 09 Jun 2021 LME internal updates

4.06 28 Jan 2022 Added an overview of the messages published at start of day to
section 2.2.1
Correct NULL values in section 3.1.1
Changes to Outright Definition (301)
Change data type for LegSide in Strategy Definition message to Int8
Change list of valid price codes
Remove PromptType = ‘O’
Changes to Contract State (311) message, removal of TradingState
values for SOD and EOD
TimeofEvent assignment details added to Top of Book (355) and
Aggregate Order Book Update (353)
Additional field for SubtypeOfTrade in Order Executed (350)
message
Additional values for SubTypeOfTrade in OrderExecuted (350) and
Matched Trade (360) messages for trades resulting from uncrossing
and trades resulting from two implied orders matching

Page 168

Page 168
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Version Date Changes

Additional information for OrderID during uncrossing in


OrderExecuted (350)
Appendix C - Channel Matrix table removed
Added Appendix D - TickSizeID mapping
Additional information for DR Signal (105)
Additional information on the Retransmission Service

4.07 23 Nov 2022 Timestamp Precision included in Data Types


Updates related to the inclusion of Non-Electronic messages
Changes to Electronic message naming and numbering:

• Renamed 311, 312, 351, 352


Renamed and renumbered:

• IOP (354) - Indicative Opening Price (320) and Matched


Trade (360) - Market Data Trade (341)
Renumbered:

• Top of Book (321), Aggregate Order Book (322). Order Add


(323), Order Amend (324), Order Cancel (325), Order
Executed (326), Order Book Clear (327) and Quote Request
(329)
Changes to field names:

• TradableInstrumentID replaces SecurityID permutations,


TradingCurrency replaces CurrencyCode for reference data,
MarketSegmentCode replaces MarketSegment, ExpiryDate
replaces MaturityDate, OptionType replaces CallPut,
StrategyTypeCode replaces StrategyType,
StrategyLegCount replaces NumberofLegs, LegNumber
replaces LegID, BuySell replaces Side permutations,
LegDeltaHedgePrice replaces LegPrice, Volume replaces
Quantity permutations (Qty unchanged), Trade High
replaces High Price and Trade Low replaces Low Price
Changes to data types:

• PromptDateLabel String 6, LegDeltaHedgePrice Int64,


StrategyTypeCode, StrategyLegCount, LegNumber Uint32,
LegRatio Uint64, BuySell String 1
Change to field values:

• BuySell – B/S replaces 1/2

Page 169

Page 169
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Version Date Changes

301 MergedTradableInstrumentID and LinkedTradableInstrumentID


null value replaces 0
302 corrected values for UnderlyingType
4.1.3 prompt date precedence included
4.3.1 – 4.3.3 TimeOfEvent for reloaded GTC/GTD orders
4.3.3 – 4.3.4 removed Iceberg replenishment
4.3.6 OrderID null when an aggressing order matches against a
resting implied order
4.3.7 included Top of Book
Added Non-Electronic messages:

• Instrument Definition (303), Tradable Instrument Definition


(304), Market State – Product (310), Market Data Order
(328), Indicative Trade Price (340), Order Statistics -
Intraday (350), Reference Price (401), Reference Forward
Curve Price (402), Reference FX Rate (403), Reference
Volatility Price (404), Reference Auction Price (405) and
Warehouse Stock Movement (426)
8 additional examples
Added Appendix A Product Hierarchy diagram
Appendix B included Tick Size ID and added Price Code
10.1 and 10.1.1 included second business day and prompt date
precedence example

4.08 31 Mar 2023 Revised 2.3 Trading Session and 3.1.2 Implied Decimal
Updated Market Data Trade (341) to a common message format
Added Contract Definition (300), Business Event – Pre TT Auction
(342), Open Interest (420), Open Interest Band (421), Position Band
(422) Warrant Band (423) and Trading Volume (424)
MDSource changed to TradingVenue
Updated description for ISINCode
Strategy Definition (302) added MergedTradableInstrumentID,
reordered LegTradableInstrumentID and corrected offsets
Merged Instruments updated to include merged strategy order
books
Corrected offsets in Market State – Contract (311 and Aggregate
Order Book (322)

Page 170

Page 170
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Version Date Changes

Removed TransactionTime from Non-Electronic messages 310,


328, 340, 342, 350, 401, 402, 404, 405
Removed TimeOfEvent from Non-Electronic messages 403, 420,
421, 422, 423, 426
BuySell changed to LegBuySell in Tradable Instrument (304)
Revised Market Data Order (328)
Reordered Order Statistics – Intraday (350)
InstrumentID changed to Uint64 in Reference Price (401)
RemainingRecords / RecordCount harmonised naming convention
in 402, 404 and 426
Warehouse Stock Movement (426) clarified report level order
TradeCancelFlag updated description of valid values
Updated Refresh snapshot
Corrected MsgType in Aggregate Order Book Management
examples
Revised Appendix C

4.09 23 Jun 2023 Added Price Limits (305)


Revised description of SubTypeOfTrade in 341
RemainingRecords / RecordCount added to Market Data Trade
(341), Market Data Order (328) and Tradable Instrument Definition
(304)
Added Char to data types
String and Char fields cannot be null, replaced with space if not
applicable
Harmonised description of LegRatio in 302 and 304 and removed
example
Removed references to TAPO for MMAP and MASP
5.4.4 clarification added for strikes and deltas
Updated Market Open Interest schedule
10.3 additions to Tick Size ID table
Updated Appendix D
Removed TransactionTime from Reference Price Examples

Page 171

Page 171
LMEsource Client Interface Specification Version 0.0Version 4.12
LME Classification: Public

Version Date Changes

4.10 13 Sep 2023 1.1, 1.2 and 1.3.2 descriptions


2.2.1, [Link] and 2.3 descriptions203 LastSeqNum description
341 message description and added Appendix G and H
302 ContractType default space removed
4.2 and 312 message description
324 generated when order updates price or volume or position
325 T1 and T2 null values
320, 326, 352, 401 and 424 message description
5.1 description, 304 fields not applicable to a strategy
304, 328 and 341 message length updated to value of RecordCount
328 RingSession values for Basis
402 PromptDateLabel1 value for Cash, PromptDate2 description
421 message updated, PromptDateLabel and InstrumentID fields
removed
Date format included in 421, 422, 423, 424
426 StockQuantity data type changed to Int32
8.9 and 8.10
10.1 123M corrected
10.2 0 = Outright removed
14.1 grades added for Tin, Lead and Zinc

Page 172

Page 172

You might also like