By John Magee
The majority of physical gas trades are booked through brokers on Trayport before the details are sent to Endur. Such use of brokers incurs costs which we can record on Endur transactions and then invoice. However, it is not uncommon for a client to have calculated brokerage incorrectly in the past, received incorrect data entered by brokers from Trayport, recorded incorrect costs in a legacy system, or be unaware of the correct rules for calculating brokerage.
Brokers are modelled as parties in the Reference Manager and the various brokerage fees they can charge in the associated Broker Commissions module. These fees are uniquely identified by the broker, applicable instrument, commodity subgroup, and trade date. This commodity subgroup field is also used to link the trade to a party agreement but is different from the index subgroup found on the physical leg of the transaction. Users often assume these 2 fields must have the same value as they refer to the same base table but there is no link. The transaction in Endur will record the unit cost and total brokerage.
The functional gap in Endur is that the Broker Commissions module and the transaction data schema do not allow for the correct automatic selection of broker fee in all circumstances. For example, trades booked on Trayport will incur different brokerage if the party is considered the initiator or aggressor and this information is not modelled on the transaction or the Broker Commission.
There are several bits of information required to calculate the brokerage:
- Brokerage may only be incurred by the Initiator or Aggressor
- Different brokerage may be charged if the trade has been executed over the phone (Voice) or screen (Manual)
- If the trade has been sleeved through a third party brokerage will be free
- If the trade is part of a spread brokerage may be charged at half-price
This data is included on the XML messages sent from Trayport but there are no standard data fields in Endur to record this information. Instead they can be recorded against the transaction in Endur on tran info fields or a user table. Each broker’s rules for calculating brokerage can then be modelled in a user table which effectively acts as an extension to the Broker Commissions module.
For example, let us assume that a broker charges 3 different rates for European physical natural gas trades–a full rate of 5 €cents/MWh, a half rate of 2.5 €cents/MWh and zero. These are recorded in the Reference Manager’s Broker Commissions module:
|1||COMM-PHYS||Gas Europe||1 April 2016||0.050||Total Notional|
|2||COMM-PHYS||Gas Europe||1 April 2016||0.025||Total Notional|
|3||COMM-PYS||Gas Europe||1 April 2016||0.000||Total Notional|
These charges are applied according to the following rules:
- Full rate applied if the trade is initiator owned and is not a sleeve or spread
- Half-rate applied if the trade is part of a spread, regardless of whether the trade is initiator owned, aggressor owned or was executed on the screen or not
- Zero-rate applied if the trade is sleeved, regardless of whether the trade is initiator owned, aggressor owned or was executed on the screen or not
These are then modelled in a user table, referring to the broker rates in the Broker Commissions module:
|Brokerage_id||Voice||Manual||Initiator Owned Sleeve||Aggressor Owned Sleeve||Initiator Owned Spread||Aggressor Owned Spread|
A transaction will have tran info fields to record these values provided by Trayport in the trade XML message. An ops service script can then be used to select the correct brokerage rate based on the transaction data and these rules when the trade is being processed to New or Validated. Another tran field script can be used to re-select the brokerage rate when specific trade data that could affect the brokerage is edited, including:
- Notional volume
- Start and End dates
- Index Subgroup
- Aggressor Owned Spread
- Initiator Owned Spread
- Aggressor Owned Sleeve
- Initiator Owned Sleeve