Timeline is a Web app that helps financial advisers with retirement financial planning. Timeline is the next generation retirement income software used by financial planners to illustrate, create and manage sustainable withdrawal strategies for their clients. It is used by financial professionals in the UK, US and other developed countries across the world. Timeline’s extensive empirical asset class and longevity data help financial advisors bring a client’s retirement journey to life and answer their big retirement income questions.
Providing Web-based retirement planning requires a lot of on-demand calculations.
Initially, Timeline’s creators began prototyping in Matlab, switching to Elixir for online deployment.
But prototyping in one language and deploying in a second introduced a number of complications.
First, there is the added time and complexity of prototyping in one language and deploying in another. This means that code can’t be reused, or even copy-pasted, but has to be rewritten. Second, in some cases, bugs were introduced during the translation process, which meant more delays.
Furthermore, Timeline’s creators were looking to increase the application’s complexity in two ways: moving from annual to monthly calculations, and facilitating more complex investment strategies.
Timeline calculated that implementing these two changes with their existing software would increase Website response time from less than 1 second to 40 seconds per query for the most complicated calculations. For an online financial planning tool such as Timeline, a 40 second response rate would be deadly.
So the team investigated Julia and Python as possible solutions. They chose Julia for its superior speed, capacity, performance and ease of use.
After moving to Julia, Timeline found the online response time was just 0.6 seconds – a 98.5% improvement compared with the 40 second query time they had previously estimated.
Other benefits of Julia include:
- Easy syntax – easy to write, edit, understand and debug
- Don’t need two languages any more - no need to translate code
- Prototype and deployment in the same language – reducing bugs and reducing time to market
- Better communication between quantitative analysts and software engineers, because they now use the same easy-to-understand language
- Faster development, faster deployment and faster production in deployment
- Less time from idea to experimentation to deployment
- Julia REPL matrix printing is “great for debugging huge matrices – better than any other language”
- “Revise.jl made development much faster and simpler"