With the introduction of the MiFID II regulations the transparency requirements when trading with non-professional clients have increased. Generally speaking financial institutes are now required to reveal the different kinds of costs the client incurs by buying financial products indirectly through an intermediary as compared to what these products would cost on the interbank market. This gives the client a very clear view into what the intermediary is earning on the trade and is expected to increase competition and reduce costs.

The information about costs needs to be provided together with the quote for the trade that the client receives before he makes a decision (ex-ante costs) as well as within a yearly report for all trades made throughout the year (ex-post costs). This post focuses on the implementation of ex-ante costs while the post here describes a possible implementation of ex-post costs.

The first issue to tackle is how to calculate the costs. We did an implementation for derivative products (FX and fixed income) and therefore this was a valuation exercise involving exchange rates, interest curves and Present Value (PV) calculations. For example (under simplified assumptions) a fair interest swap is supposed to be worth zero and therefore any positive PV (from the bank’s point of view) is the result of off-market conditions that represent a cost for the client. Since these calculations are standard in Prime it was only necessary to access them for our program and use them for the ex-ante reports. We used the Programmatic access to Calculated Values that comes with ACM to get these values. With a few lines of code it is possible to access all the calculations that one knows from the Columns in Trading Manager.

  1. trade = acm.FTrade[trdnbr]
  2. cs = acm.Calculations().CreateStandardCalculationsSpaceCollection()
  3. tradeCalc = trade.Calculation()
  4. pvDV = tradeCalc.PresentValue(cs)

The setting for calculating the ex-ante costs is the trader negotiating with the client before a deal even comes into effect. This means even without a real trade the costs need to be calculated. This sounds like a trade in status Simulated but since ex-ante costs should not be generated for every trade (only for non-professionals and professional who explicitly ask for this) a special trade status was introduced in the Prime workflow between Simulated and FO Confirmed. Front Arena gives you this configuration possibility within the hook FTradeStatus. This status can be optionally selected by the trader and it signals that ex-ante costs need to be calculated. The trader can change the parameters of the trade multiple times and resave it in this status and the costs are calculated again and again. This is triggered when the trade passes through the FValidation hook on being saved.

The next requirement is to present the client with a document (PDF) containing the calculated costs. This document outlines the conditions of the trade that is being negotiated and lists the costs in absolute terms and relative to the trade size and lifetime. This rings a bell for those of us who have worked extensively with the Confirmation interface in Prime and thus it is logical to reuse the same infrastructure for generating these documents. The Party Setup for the clients needs to be extended with new Confirmation Instructions and the ex-ante reports need to be added to the configuration of the ATS as a new kind of confirmation. This is standard procedure in Prime every time a new kind of confirmation is developed.

Once this is all in place the normal confirmation processing kicks in and Adaptiv generates the documents on each save of the trade. The trader can access the PDF-document directly from the trade and send it to the client. We have fulfilled the new MiFID requirement by utilizing the existing standard infrastructure with minimum custom code.