Introduction
As clients have unique demands and increasingly expect personalized financial advice, matching them with the right portfolio is not always easy. Join us on this walkthrough to uncover how Bambu’s ‘Health Check’ feature used alongside optimization models can help take this weight off your shoulders by simplifying this matching process. Goal optimization is a feature on the Bambu platform that runs a ‘Health Check’ to determine if the end client can achieve their target goals through the suggested portfolios based on current financial commitments. Based on the ‘Health Check’ results, we use a range of optimization models to help us suggest the most appropriate portfolios to clients.Use Case:
We are examining a goals-based investment platform that recommends users’ different portfolios every year to help them achieve their financial goals. Each portfolio has an expected return, sorted in an ascending order based on the return (i.e. Portfolio 1 has returns of 3%, Portfolio 2 has returns of 5%, etc.). For end-clients, their journey begins with indicating the following: the amount of money they have now, how much they plan to invest each year, the portfolio they are keen on invest in for each year, the investment time horizon, and what their desired goal amount is at the end of this investment time horizon. With this information, the platform can then perform a projection to determine if the user can achieve their goal by the investment time horizon. Finding out the projected value of a portfolio is based on the following formula:


Outcomes and Solutions
Outcome 1: ‘Just Nice’
Under the ‘Just Nice’ scenario, the projected value meets the desired goal amount. The definition of “meets” is that the projected value is within 0-5% above the desired goal amount. In this scenario, no recommendation is needed. The graph below shows an example of a user being able to “meet” their goal.
Outcome 2: ‘Surplus’
A ‘Surplus’ means that the projected value of the chosen portfolio is greater than the desired goal amount. In this case, the recommendation should be to change the client’s chosen portfolio (i.e. choose a portfolio that reduces the portfolio’s returns, ri, so that the projected value falls within 0-5% of the desired goal amount). At the same time, the returns of the newly recommended portfolio in year i+1 must be lower or equal to the portfolio returns recommended in year i. The reason for this constraint is because of a concept known as “de-risking” which states that as your time horizon decreases, the amount of risk you take should decrease as well.




Outcome 3: ‘Shortfall’









Conclusions: Visualising these solutions

Appendix: Explaining the Algorithms used
Random Search Algorithm Let f: ℝn → ℝ be the fitness or cost function which must be minimized. Let x ∈ ℝn designate a position or candidate solution in the search-space. The basic RS algorithm can then be described as: 1) Initialize x with a random position in the search-space. 2) Until a termination criterion is met (e.g. number of iterations performed, or adequate fit achieved), repeat the following:a. Sample a new position y from the hypersphere of a given radius surrounding the current position x
i.There are a couple of techniques for sampling a hypersphere such as Marsaglia’s technique
b. If f(y) < f(x) then move to the new position by setting x = y
Brent’s Algorithm
Brent’s method is a root-finding algorithm which combines root bracketing, bisection, and inverse quadratic interpolation. The algorithm tries to use the potentially fast-converging secant method or inverse quadratic interpolation if possible, but it falls back to the more robust bisection method if necessary. It uses a Lagrange interpolating polynomial of degree 2. This method will always converge as long as the values of the function are computable within a given region containing a root. Given three points x1, x2 and x3 Brent’s method fits x as a quadratic function of y, then uses the interpolation formula:

Sequential Least Squares Programming
Given a nonlinear programming problem of the form:
