iXledger Platform: Matching
Platform Matching insight, Development and Commercial updates.
Coming to the end of this week, we thought it would be a great idea to provide you all with insights regarding the engineering concepts of our platform, in particular matching.
Written by our Senior Development Member.
What makes a good matching engine?
- High performance
Many of the existing order matching engines optimise mainly on matching prices. This works well when the prices are the primary focus. However, for our participants, other fields, e.g. jurisdictions and business classes, are often no less important. Therefore, for our products, flexibility is as critical as high performance, in order to help smooth the customer’s business operations, rather than setting constraints.
There are naive approaches to achieve flexibility. Some implementations evade the issue by converting preference filters into database queries. Other approaches include field-by-field matching by brutal force, which results in poor performance. Field specific optimisations can help to a certain degree, e.g. by cleverly re-organising data and comparison flows. However, it is important to note that such optimisations usually need very fine level manual adjustments, resulting in scalability issues.
We are basing our matching engine on a novel tree structure. The participant’s filters are parsed and then organised in a way that reduces repeated comparison (e.g. if a Submission satisfies one criteria of a filter, there is no need to re-compare the same criteria in other filters). The filter tree allows arbitrary numbers and types of criteria in a filter. It also self-organises dynamically, according to the created (and removed) filters — achieving scalability.
Here is one example:
Let’s imagine there is a thousand insurers have registered interest in insurance Submissions. Half of them are interested in cover limits over two million, a quarter of them prefer the ones from France and under half a million, the rest have no preferences over limits, but are interested in the ones from the UK.
Suppose there is a 300k Submission which comes from the UK. If we do a mental model of an ideal matching process, it probably starts with comparing the cover limit: after the first comparison, the first 500 filters are skipped.
The second group (France and under half a million) will pass the first comparison, but a second comparison against the country will drop all of them. Finally a third comparison will match the final group.
Mirroring this intuitive model, the root of our matching tree has one branch towards limit comparison, and another branch towards country comparison. The limit branch then forks by value: all of the first group are registered under one sub-branch, while all of the second group under yet another branch of country comparison. Finally, the last group is directly under the root. In this way, only 3 comparisons are needed to match against a thousand filters. The number would be much greater for a brutal force approach.
The real implementation is much more complicated. In addition, there are intriguing challenges, e.g. rebalancing the tree as the filters are added and removed, selecting the branching strategy based on hits and misses. There are multiple ways and strategies for these challenges. At the moment, simple models and strategies suffice for the MVP. In the long term, more sophisticated models will be developed as the product evolves.
Let’s take a look at the general updates from iXledger.
Sprint 5 (6 Nov, 2017)
- Blotter insurer/broker — Provides insight into market to assist pre-RFQ and throughout the process
- Portfolio — Allows you to keep track of your confirmed orders.
- Filtering RFQ:s — Market Selection and Targeting. The blotter should be filtered by your particular interested
Sprint 6 (20 November, 2017)
- Submission Messaging. Exchange of instant messages between market participants.
- Submission (Request For Information). Formal way of requesting and returning additional information.
Click here to view the full roadmap for the next 3 months.
Beginning of this week, we were pleased to conduct a workshop with AON Inpoint. At this early stage, we will not provide more information till we undergo more meetings - we are in talks to schedule another workshop to proceed with discussions. Stay tuned.
Join our community channel and social media platforms below.