IP Library Granted Patent US 12,597,067
Granted Patent B2
US 12,597,067 · App. 17/632,621 · Granted Apr 7, 2026

Order management system for improved latency

Inventors: Anders Green (Stockholm, SE); Lars Baarman (Stockholm, SE)
Assignee: NASDAQ TECHNOLOGY AB
G06Q40/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,597,067
App. No.
17/632,621
Granted
Apr 7, 2026
Kind
B2
Abstract

The technology described herein relates to a system for managing order data for improved latency. In particular, the technology described herein relates to, among other aspects, a system for processing certain types of orders so that the orders may re-attempt matching against orders in an orderbook memory thereby preventing different disparate terminal devices from having to resubmit the order data messages.

Claims (91)

1 . A system configured to process order data, the system comprising:

a processor; and

a memory configured to store computer readable instructions that, when executed by the processor, cause the system to:

receive an order data message from a client device, wherein the order data message contains a data fie including data elements associated with an order;

parse the data file in the order data message and extract the data elements associated with the order;

identify an order type based on an order type element extracted from the data elements;

in association with the order type being a non-immediate-or-cancel (IOC) order:

forward the extracted data elements, associated with the order, to a first gateway operating under a first protocol;

access an orderbook memory having one or more data records associated with one or more orders;

attempt to match the order against the one or more data records associated with the one or more orders stored in the orderbook memory;

process the order in associated with the order matching against the one or more orders and publish the completed order in the orderbook memory; and

store the order in the orderbook memory in association with the order not matching against the one or more orders,

in association with the order type being an IOC order:

forward the extracted data elements, associated with the order, to a second gateway operating under a second protocol;

submit a first request to fill the IOC order by attempting to match at least a portion of the order against the one or more data records associated with the one or more orders stored in the orderbook memory;

upon matching the portion of the order:

wait a first period of time after the portion of the order has attempted to match against the one or more data records associated with the one or more orders, wherein the first period of time includes a standard replenishment rate plus a randomized buffer;

after waiting the first period of time, submit a second request to fill the IOC order for matching a remaining amount from the order;

attempt to match the remaining amount from the order against the one or more data records associated with the one or more orders stored in the orderbook memory;

upon successfully matching the remaining amount from the order, publish the completed order in the orderbook memory; and

upon unsuccessfully matching the remaining amount from the order, repeat waiting the first period of time and submit a third request to fill the IOC order after waiting the first period of time.

2 . The system of claim 1 , wherein the remaining amount of the order is canceled after a number of matching attempts has been reached.

3 . The system of claim 1 , wherein

the portion of the order, that has matched against the one or more orders, is stored in the orderbook memory and published in the orderbook memory as completed orders, and

the remaining amount of the order is posted to the orderbook memory.

4 . The system of claim 1 , wherein the system is further caused to wait for a triggering event before attempting to match the remaining amount from the order.

5 . The system of claim 1 , wherein the orderbook is pinged for a specified number of attempts during a predetermined window of time.

6 . The system of claim 1 , wherein the first period of time is configurable.

7 . The system of claim 1 , wherein the orderbook memory is configured to be pinged without requiring resubmission of the order data message from the client device.

8 . The system of claim 1 , wherein the system is further caused to:

determine if a minimum quantity in the portion of the order satisfies a specified condition; and

attempt to match the portion of the order when the minimum quantity satisfies the specified condition.

9 . A method for processing order data, comprising:

at an information processing system having a memory and a processor:

receiving an order data message having a data file including data elements associated with an order;

parsing the data file in the order data message and extracting the data elements associated with the order,

identifying an order type based on an order type element extracted from the data elements;

in association with the order type being a non-immediate-or-cancel (IOC) order:

forwarding the extracted data elements, associated with the order, to a first gateway operating under a first protocol;

accessing an orderbook memory having one or more data records associated with one or more orders;

attempting to match the order against the one or more data records associated with the one or more orders stored in the orderbook memory;

processing the order in association with the order matching against the one or more orders and publishing the completed order in the orderbook memory; and

storing the order in the orderbook memory in association with the order not matching against the one or more orders, and

in association with the order type being an IOC order:

forwarding the extracted data elements, associated with the order, to a second gateway operating under a second protocol;

submitting a first request to fill the IOC order by attempting to match a portion of the order against the one or more data records associated with orders stored in an orderbook memory;

upon matching the portion of the order:

waiting a first period of time after the portion of the order has attempted to match against the one or more data records associated, with the one or more orders, wherein the first period of time includes a standard replenishment rate plus a randomized buffer;

after waiting the first period of time, submitting a second request to fill the IOC order for matching a remaining amount of the order; and

attempting to match the remaining amount of the order against the one or more data records associated with the orders stored in the orderbook memory;

upon successfully matching the remaining amount from the order, publishing the completed order in the orderbook memory; and

upon unsuccessfully matching the remaining amount from the order, repeating waiting the first period of time and submit a third request to fill the IOC order after waiting the first period of time.

10 . The method of claim 9 , further comprising:

determining if a minimum quantity in the portion of the order satisfies a specified condition; and

attempting to match the portion of the order when the minimum quantity satisfies the specified condition.

11 . The method of claim 9 , wherein the orderbook is pinged for a specified number of attempts during a predetermined window of time.

12 . The method of claim 9 , wherein

the portion of the order, that has matched against the one or more orders, is stored in the orderbook memory and published in the orderbook memory as completed orders, and

the remaining amount of the order is posted to the orderbook memory.

13 . The method of claim 9 , further comprising:

waiting for a triggering event before pinging the orderbook for matching the remaining amount from the order.

14 . A non-transitory computer readable storage medium configured to store computer readable instructions that, when executed by a processor of an information processing system, cause the information processing system to provide execution comprising:

receiving an order data message having a data file including data elements associated with an order;

parsing the data file in the order data message and extracting the data elements associated with the order;

identifying an order type based on an order type element extracted from the data elements;

in association with the order type being a non-immediate-or-cancel (IOC) order:

forwarding the extracted data elements, associated with the order, to a first gateway operating under a first protocol;

accessing an orderbook memory having one or more data records associated with one or more orders;

attempting to match the order against the one or more data records associated with the one or more orders stored in the orderbook memory;

processing the order in associated with the order matching against the one or more orders and publishing the completed order in the orderbook memory; and

storing the order in the orderbook memory in association with the order not matching against the one or more orders, and

in association with the order type being an IOC order:

forwarding the extracted data elements, associated with the order, to a second gateway operating under a second protocol;

submitting a first request to fill the IOC order by attempting to match a portion of the order against the one or more data records associated with orders stored in an orderbook memory;

upon matching the portion of the order:

waiting a first period of time after the portion of the order has attempted to match against the one or more data records associated with the one or more orders, wherein the first period of time includes a standard replenishment rate plus a randomized buffer;

after waiting the first period of time, submitting a second request to fill the IOC order for matching the remaining amount of the order;

attempting to match the remaining amount of the order against the one or more data records associated with the orders stored in the orderbook memory;

upon successfully matching the remaining amount from the order, publishing the completed order in the orderbook memory; and

upon unsuccessfully matching the remaining amount from the order, repeating waiting the first period of time and submit a third request to fill the IOC order after waiting the first period of time.

15 . The non-transitory computer readable storage medium of claim 14 , wherein the system is further caused to provide execution comprising:

determining if a minimum quantity in the portion of the order satisfies a specified condition; and

attempting to match the portion of the order when the minimum quantity satisfies the specified condition.

16 . The non-transitory computer readable storage medium of claim 14 , wherein

the portion of the order, that has matched against the one or more orders, is stored in the orderbook memory and published in the orderbook memory as completed orders, and

the remaining amount of the order is posted to the orderbook memory.

17 . The non-transitory computer readable storage medium of claim 14 , wherein the system is further caused to provide execution comprising:

waiting for a triggering event before pinging the orderbook for matching the remaining amount from the order.

18 . The system of claim 1 , wherein the first gateway node is an OUCH gateway node operating with an OUCH protocol.

19 . The system of claim 1 , wherein the second gateway node is a FiX gateway node operating with a FiX protocol.

20 . The system of claim 1 , wherein the order is matched against the one or more data records based on matching of, at least, an order item, order price, and an order asset type extracted from the data elements against the corresponding one or more data records.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: BAARMAN, LARS; GREEN, ANDERS
To: NASDAQ TECHNOLOGY AB
Reel/Frame 058974/0722 →
Continuity (2)
Provisional Application 62883385 · Aug 6, 2019
Related Publication 20220292600A1 · Sep 15, 2022
References Cited (15)
US 7483850B1 · Fishbain et al. · 2009 [cited by applicant]
US 8296217B1 · Howorka · 2012 [cited by examiner]
US 11301934B2 · Jensen · 2022 [cited by examiner]
US 12198194B1 · Isaacson · 2025 [cited by examiner]
US 20030225673A1 · Hughes, Jr. · 2003 [cited by examiner]
US 20030229557A1 · Richmann · 2003 [cited by examiner]
US 20050171891A1 · Daley · 2005 [cited by examiner]
US 20090271308A1 · Maynard · 2009 [cited by examiner]
US 20100082500A1 · Lutnick · 2010 [cited by examiner]
US 20100268638A1 · Wunsch · 2010 [cited by examiner]
US 20110258100A1 · Krishna et al. · 2011 [cited by applicant]
US 20140095371A1 · Galinov · 2014 [cited by examiner]
WO 2008156777 · 2008 [cited by applicant]
International Search Report for PCT/SE2020/050735 mailed Oct. 29, 2020, 4 pages. [cited by applicant]
Written Opinion of the ISA for PCT/SE2020/050735, mailed Oct. 29, 2020, 6 pages. [cited by applicant]