Automating securities trade reconciliation process

Work executed for a Prime Broker operating on New York Stack Exchange

Settling for success

Failed trade occurs if either buyer or seller fails to deliver the securities or cash it promised on the settlement date. When this happens, a side that failed to deliver could face serious consequences - financial losses, fines, and damage to the reputation. 

Usually, each broker has to keep a dedicated team of experts, working 24h on monitoring the process, detecting discrepancies and potential fails, and resolving the issues with sides involved in the transaction. 

Because of that settlements monitoring is one of the big challenges that Prime Broker has to complete.


Obstacles on the way

The business and development teams head to solve many obstacles to proceed with task:

  • Complex business logic, hard to understand for people not involved in trading

  • Lots of different stakeholders - departments responsible for reconciliation, reporting, brokers, and external providers

  • Criticality of the process

  • Various external sources of data with different processes and APIs

  • Various quality external sources

  • The requirement for easy extendability - introduction of new rules and new data sources

  • Time-critical task - processing time is one of the key aspects

To overcome these challenges, the team has worked with stakeholders to define separate domains and subdomains involved in the process and created a 'dictionary' for each of them.

Road to the success

  • working with stakeholders to define separate domains and subdomains involved in the process (input normalization, trade matching, reconciliation, notification, and reporting) and provide a 'dictionary' for each of them

  • use of domain-driven design for critical subsections of the system - matching and reconciliation

  • incremental implementation starting with support for the single biggest external data provider, followed by adding next data sources

  • developing system as microservice architecture - separate microservices for each external data provider and each domain

  • usage of different architecture styles for different parts of the system

Reduced the number of employees

Adopting to regulatory changes with no additional development

Reducing costs with on‑demand scaling

Reaping the benefits

Automation has reduced the number of employees working on the settlement process and shifted their focus from detecting fails to monitoring potential fails and contacting the sides of a transaction to resolve problems beforehand.

Clearly distinguished business rules in matching and reconciliation domains were exposed for power users so that they could adjust them to the ever-changing regulatory requirements with no need for additional development.

Modular microservice architecture has allowed easy addition of new external data providers (for example other settlement agencies which were not in initial scope), and on‑demand scaling of resources, therefore reducing need for costly IT infrastructure.

Additionally differentiating architectural styles between parts of the system allowed to use best one for each appliance - ‘pipes and filters’ for asynchronous data digesting and normalization, ‘hexagonal architecture’ for encapsulating complex business logic in matching and reconciliation microservices, and MVC with CQRS for ensuring high performance and responsibility of user frontend.

Book a Consultation

Let’s talk about your idea.