Leaders of a software platform for structured finance sought assistance in significantly upgrading its optimization features. An important component of the technology portfolio of a global financial analytics provider, the platform is used by issuers, investors, underwriters and other entities to administer, monitor and value collections of securities.
Improving the Proof of Concept
Initially, the platform’s developers built a Proof of Concept (PoC) for optimized fund selection using Mixed Integer Programming (MIP). They had used an open-source solver which yielded unsatisfactory results and insufficient technical support, prompting a change to Gurobi. The model was the first in a series of applications envisioned to transform the platform’s optimization-powered performance. Due to the complexity and importance of the applications, the urgency for successful deployment, and the developers’ unfamiliarity with Gurobi, the platform’s leaders requested help including mathematical optimization modeling and state-of-the-art technology approaches using the Gurobi solver.
A Princeton team conducted a comprehensive review of the PoC, which entailed interviews with stakeholders to understand the business problem and context; analysis of the model and related procedures and data sources; experiments to uncover problems; and documentation of findings. Additionally, the team reframed the problem, reformulated the mathematical model into Python code to be developed into a production application, and recommended best practices for testing.
From Modeling to Coding
In establishing a methodology for efficient partnering on the series of applications, the Princeton team employed its form of development for optimization, which emphasizes flexibility, collaboration, and frequent user feedback.
For a second application that optimizes trading, the Princeton team worked with the platform authors to determine business requirements, then built a new PoC. The existing software system allowed users of the platform to evaluate how well a portfolio met a variety of different compliance rules related to the composition of a portfolio. Historically, rules were coded in Python on a case-by-case basis for each platform client. To leverage the power of optimization, these rules were converted to constraints for an optimization model, which entailed transforming the rules into appropriate data representations that crucially alleviate the need to code each client’s constraints in Python. The data representations could then be used for a next-generation version of the compliance engine, creating a methodology for validating the solutions produced by the optimization model. The Princeton team then coded the solution to be production-ready for the software platform.
The Princeton team applied suitable best practices from its optimization solution development methodology:
- Design and documentation of input data structures that describe constraints and objectives;
- Documentation of the mathematical optimization model, using notation based on the input data structure design;
- Separation of optimization data representations from other application data, as well as separation from the representation of the optimization model;
- Use of the compliance engine to validate that solutions produced by the optimization model were meeting the existing set of business rules.
Implementation and Beyond
The software platform team is implementing the first two solutions, with future work on the horizon. The core feature of funding optimization has been measurably improved, providing true pool optimization capabilities, leveraging deal-specific compliance and eligibility criteria, and funding analytics to support structured finance funding processes.
Technology providers that enable firms to achieve the most efficient cost of capital are advised to continuously upgrade optimization applications, using suitable technologies like Gurobi and best practices in development that foster cost-effective innovation.
To discuss this success story with our practice leaders, email us to set up a call.