I love cars. I always have. The cost of a car is never purely the sticker price in the showroom. Of course there’s the cost of petrol. Despite being wrought of steel, cars have a decidedly human quality, going wrong. The stealth cost is related to that very specific human element of cars, the maintenance cost. Over time, whilst costs of petrol seem to oscillate in line with the costs of crude and gasoline, invariably as a car gets older, the costs of services begin to spiral, as more and more parts of it fail. By the time things like a gearbox need to be changed, it’s likely the costs of maintenance will end up being greater than the value of the car. Of course, for a car manufacturer, maintenance costs are perhaps no bad thing. It’s perhaps one reason that electric cars have taken time to materialise, after all, by their very nature, they have fewer parts which seem to go wrong (but that’s a story for another article).
When it comes to financial markets, there is of course a lot of physical infrastructure, which needs to be maintained, such as buildings and data connections. However, a lot of that infrastructure is invisible, namely that code which sits on machines. Just as with cars, it has a maintenance cost. One way to reduce it, is to outsource software, rather than creating it all internally. Take for example operating systems or productivity software like Word and Excel, folks just buy off the shelf products from companies like Microsoft or use open source alternatives (in particular for operating systems such as Linux). However, when it comes down to code which encompasses a large amount of business logic, it can be tempting to think about doing it all internally, if a firm has some development resources There might be external software, but it might not fit precisely into our use case.
If we take transaction cost analysis, which helps us to quantify trading costs, many banks implement their own internal systems, even in the face of what can end becoming expensive maintenance costs. There are external vendors who also have their own implementations. However, typically, this requires sending out trade data externally to a vendor, who then send back the analytics. In practice, the code is rarely available to the client as well. Hence, clients don’t have the freedom to modify the code themselves. Obviously, for some firms, who don’t have enough development expertise internally and don’t trade a lot, than potentially using an off-the-shelf solution which can’t be modified might not be a big issue.
There is a quandary, because on the one hand banks want to reduce the maintenance costs associated with TCA (which can be very considerable over the years) by outsourcing, but equally want the flexibility of having access to all the source code to be able to add their own TCA metrics etc. So what’s the solution for financial institutions? I’ve tried to think very carefully about this question. For nearly two years, I’ve been developing Cuemacro’s FX TCA library all written in Python. It’s been written in such a way to make it flexible, so it can be used with many different underlying database technologies (many of which are open source). An enterprise licence for Cuemacro’s FX TCA library gives clients the ability to run the code within their own firewall, either on their own servers (or even on the cloud), so trade data doesn’t need to be sent externally. Plus, clients get access to every line of source code, making everything truly transparent, and it’s all written Python making it very accessible. Cuemacro also offers support services to help, as well as bespoke consulting services to modify the code to add new features (although clients can add features themselves if they prefer). It also comes with a ready made web GUI which can be modified by clients, as well as specialised tools to distribute the computation.
Outsourcing TCA doesn’t always have to mean using a black box, where code is inaccessible. Yes, for some folks, maybe they don’t necessarily want to modify the code, but for firms who trade a lot, and want to delve into TCA more deeply, having modifiable code is very important. I advocate that outsourcing TCA can instead mean transparency in TCA and the ability to keep all your trade data internally. If you’re interested in hearing how our FX TCA library can be useful for your financial institution, please drop me a message.