Defining Contract Fee Schedules

The Fee Set Up window allows defining fee schedules for the FeeConfig calculator in the context of automatic contract fees. When the FeeConfig calculator is set on the Fee Grid, the fee schedule defined in the Fee Config panel is used to compute the fee.

 

1. Fee Schedule Definition

From the Calypso Navigator, navigate to Configuration > Fees, Haircuts, & Margin Calls > Fee Setup (menu action refdata.FeeSetUpWindow) to open the Fee Set Up window, Fee Config panel.

Sample contract fee schedule

In this example, if the trade notional is below 1,000,000, the fee rate is 1.2% - If the notional is 1,000,000 or above (and below 10,000,000), the fee rate is 0.8%.

» Enter a configuration name and set the fee parameters as needed. They are described below.
» Then click Add to add an entry to the fee schedule. It brings up the Formula Definition dialog. It is described below.
» Click to save the configuration. The configuration will be used when the FeeConfig calculator is set on a Fee Grid, based on the selected filters.

Note that if the Authorization mode is enabled, an authorized user must approve your entry.

 

You can also click to bring up the Browse panel for loading existing configurations.

 

References

These parameters are used to specify the fee.

Fields Description

Config ID

ID of the configuration given by the system upon saving.

Name

Enter a configuration name.

Config Type

Select "Trade Fee" to generate contract fees.

Rule Type

Select the reference amount unit:

Avg Price (unit amount).
Volume (trade amount).

Scale By

Select the reference amount of the fee schedule:

For Avg Price, you can select Price.
For Volume, you can select Quantity, MarketValue (Trade Quantity * Trade Price), Notional, Premium, or MADVQuantity (Monthly Average Daily Volume).

The fee rate used to compute the fee at trade capture depends on the trade's price / quantity / notional / premium. A fixed rebate may be applied at the end of the billing period to adjust the fee as needed.

See Contract Rebate Process for details.

Range by Tenor

Check to set the fee range by tenor, or clear to set the fee range by number of days.

Range by ResidualMat

Check to set the fee range by residual maturity, or clear to set the fee range by product maturity.

Tiered

Check to indicate that the reference amount is distributed over the range, rather than applied to the absolute range.

For example, you have the following range:

0 to 1,000 - Fee rate is 10%
1,000 to 5,000 - Fee rate is 5%
5,000 and up - Fee rate is 2%

The reference amount is 7,000.

For the non-tiered method, the fee rate is 2% (5,000 and up range).
For the tiered method, the fee rate is 10% for the first 1,000 - Then 5% for the next 4,000 - Then 2% for the remaining 2,000.

Event Type

Select Trade.

The fee is computed on trade events.

Fee Currency

You can select a fee currency, or leave empty for ANY.

Day Count Select a daycount as needed.

Effective From

Enter the effective start date of the configuration.

Effective To

Enter the effective end date of the configuration (optional).

Description

Enter a free form description as needed.

 

Rebate

Check the Rebate checkbox to compute a fixed rebate on the contract fees, or a global rebate amount over a group of trades.

See Contract Rebate Process for details.

Fields Description

Rebate Type

Select Fixed for a fixed rebate, or Default for a global rebate amount over a group of trades.

Rebate %

For the Fixed rebate type, enter the rebate percentage.

Rebate Period

For the Default rebate type, select the rebate period:

 

Trade - The rebate is computed at the end of the trade.

Daily - The rebate is computed daily.

 

Filtering

These parameters are used to determine the conditions of application of the fee. You can use pre-defined filtering criteria, or a filter template.

Pre-defined criteria:

Fields Description

Processing Org

Select a processing organization as needed, or ALL.

Legal Entity

Select a legal entity of specified role, or ALL.

Role

Select a role.

Fee Type

Enter the fee type - The fee type must be defined in the Fee Definition window.

Exchange

Select one or multiple exchanges (legal entity of role MarketPlace), or leave empty for ALL.

Product Type

Select one or multiple product types, or leave empty for ALL.

Product groups are identified as "G. <group name>" and are created using Configuration > Product > Group.

Security ID

Enter one or multiple product IDs (separated by commas), or leave empty for ALL.

Book

Select one or multiple books, or leave empty for ALL.

Book Attr

Select one or multiple book attribute / attribute value, or leave empty for ALL.

Currency

Select one or multiple currencies, or leave empty for ALL.

Account ID

Only applies to account management fees.

Fee Date

Only applies to account management fees.

SD Filter

Select a static data filter as needed, or leave empty.

Attributes

Click to add attribute criteria as needed.

 

Filter template:

» To add a new filter template, choose > Filter category > Add. You will be prompted to enter a filter category name. Enter a name and click OK.
» Then choose > Filter fields template. You will be prompted to select a filter category previously created, and to select the filter criteria you want to use.

 

Fields Description

Filter Category

Select a filter template previously created.

Role

Select a role.

Fee Type

Enter the fee type - The fee type must be defined in the Fee Definition window.

Filter Template Criteria

Select the values for the filter criteria defined in the filter template.

In this example, the filter template contains the filter criteria Book and Strategy attribute.

 

Formula Definition

Click Add to bring up the Formula Definition dialog.

 

Sample formula

» Enter the parameters to define the ranges of the fee schedule. They are described below.
» You can type in the formula, or double-click variables and operators to add them to the formula. Only the displayed variables and operators can be used in the formula.
» Click OK when you are done.

 

Fields Description

Min Amount

Max Amount

Enter the minimum and maximum amounts of the range. It refers to the reference amount defined by the Rule Type and Scale By parameters: Quantity, Notional, or Price.

No value is considered as 0 for the minimum amount, and infinite for the maximum amount.

The minimum amount is inclusive.

The maximum amount is non inclusive.

Min Tenor

Max Tenor

Min Days

Max Days

You can also select a minimum tenor and a maximum tenor to scale the fee rates by product maturity ("Range by ResidualMat" is not checked), or by residual maturity ("Range by ResidualMat" is checked).

 Ⓘ   [NOTE: For products without maturity date, the fee rates are scaled by settlement date instead]

The minimum tenor is non-inclusive.

The maximum tenor is inclusive.

When the "End Date" falls on a non-business day, its is rolled to the following business day. So in this situation the minimum tenor becomes inclusive and the maximum tenor becomes non-inclusive.

If "Range by Tenor" is not checked, you can enter a number of days instead of selecting a tenor.

Calc Unit

Enter a calculation unit when defining a fee expressed as an amount per unit.

For example 2 per million of notional: Calc Unit = 1000000 and Formula = 2*UnitNotional.

Variables

You can use the following variables in the formula depending on the selected reference amount:

Quantity

Price

ContractSize

FarLegPrice

FaceValue

Duration

UnitNotional

Notional

NotionalInFeeCurrency (uses the trade keywords <fee>.FeeCCY, <fee>.FeeLeg and <fee>.FXRate to compute the trade notional in Fee currency)

Markup - The Markup allows setting a markup percentage per legal entity. You can define the legal entity attribute "Client Markup" and set a markup percentage on the attribute. For example, Client Markup = 120 for 120%. The Markup variable in the formula will be multiplied by 120%.

Premium

RelatedFeesAmount (see Fee Grid Attribute AdjustmentRelatedFees for details on using this variable)

MADVQuantity (Monthly Average Daily Volume)

TradeAccrual (trade Accrual field)

TradeKeyword(xxx) - You can select TradeKeyword.

LegalEntityWHT (WHT rate from legal entity attribute LegalEntityTaxRate_<COUNTRY>)

WHTRate (WHT rate from Withholding Tax Configuration).

Operators

You can use the following operators in the formula: Subtract (-), Multiply (*), Add (+), Divide (/), Exponent (^), Absolute Value, Max, Min, Round, Round Up, Round Down.

 Ⓘ   [NOTE: If the fee is always paid, the formula should be defined as an absolute value]

Functions

You can select a function in Functions area and click Add to add it to the formula.

Currently, only the DayCountFactor function is available, you will be prompted to select the start date, end date and daycount.

 

2. Contract Rebate Process

The rebate of contract fees is computed as soon as contract fees are generated but are settled periodically. The billing function is therefore used to generate contract rebate fees.

The billing function requires the setup of a billing grid and a billing rule. Then based on this setup, the Billing engine creates billing trades for the rebate fees.

 

2.1 Defining a Billing Grid

From the Calypso Navigator, navigate to Configuration > Fees, Haircuts, & Margin Calls > Fee Set Up, and select the Billing Grid panel to define a billing grid as shown below.

Sample billing grid for contract fee rebate

» Select the "Trade" event type, the same role as the role defined for the fee configuration, and the calculator: "TradeFeeRebate" or "TradeFeeConfigRebate" - See below for calculator details.
» For NAV Fees, you can select "NAVFee" event type, and the calculator: "NAVFee".
» You can check "Use Multiple Calculators" to generate a fee for each applicable calculator. Otherwise, a fee is generated only for the first applicable calculator.
» Click Add to add the calculator to the billing grid - It will bring up a dialog, just click Apply.
» Then click Save to save the billing grid.

Note that if the Authorization mode is enabled, an authorized user must approve your entry.

 

TradeFeeRebate

This calculator allows computing a fixed rebate based on the rebate percentage specified in the Fee Config.

 

TradeFeeConfigRebate

This calculator allows computing a rebate (if applicable) over a group of trades that share the same billing criteria. The rebate will be the sum of the individual trade fees minus the fee amount for the group of trades (in the case where it falls in a different fee bracket).

 

Example:

The fee range is defined as:

Trade Qty 0-100 - Fee Formula= Qty*5

Trade Qty 100-200 - Fee Formula= Qty*2

 

You have the following trades:

Trade1 Qty=70 => Fee=70*5=350

Trade2 Qty=80 => Fee=80*5=400

 

Total Fee Amount=350+400=750

Now, if grouping these trades to compute the fee globally, the fee amount is: Fee=100*5+50*2=600

Therefore there is a rebate of Rebate = 750-600 = 150

 

NAVFee

This calculator allows to define a mapping between the ‘NAVAmountType’ (Part of Event 'NAVFee') and the Billing Entry Type.

 

 

2.2 Defining a Billing Rule

A billing rule must be defined to set the rebate currency and rebate settlement date.

From the Calypso Navigator, navigate to Configuration > Fees, Haircuts, & Margin Calls > Fee Billing Rule to define a billing rule.

Sample billing rule for contract fee rebate

» Enter the following fields:
Select a legal entity, or double-click the Legal Entity label to set the legal entity to ALL.
Select the same role as in the billing grid.
Select the billing currency - This is the settlement currency of the fee.
Select the billing date rule to determine the billing frequency.
Select the settlement date rule to determine the settlement frequency of the fee.
Input Date Type - Select the reference date to load the trades, messages, transfers:

TradeDate - Trade date

SettleDate - Trade value date

FeeDate - Fee date (Fee Value Date defined in the Billing Grid)

EnteredDate - Trade entered date

Open the "Defaults Trade Billing Values" panel, and select the transfer type of the billing trade as needed. If not set, the transfer type is set to INTEREST. Note that transfer types are defined in the domain “flowType”.

 Ⓘ   [NOTE: If the attribute EntryType is set, and the Default Transfer Type is not set, the transfer type defaults to the EntryType]

» You also need to define the following attributes:

BillingOnly - Set to True so that it is only used for billing trades.
EntryType - Set to "CONTRACT REBATE".
XferByBook - Set to True to create a transfer by trading book (using the book of the original trade on which the contract fee was computed).
» Save the billing rule.

Note that if the Authorization mode is enabled, an authorized user must approve your entry.

 

» Billing rule attributes for NAVFee

BillingFeeFullPeriod - When set to True, billing trade will contain only one Billing Fee Event (having the same characteristics) for the full period. When set to False, billing trade will have more than one Billing Fee Events.
BillingAccrualDayCount – Used to input DayCount for computing accruals.
BillingEnableAccrual has following possible values:

- <Empty> - PricerBilling does not compute accrual.

- FromBillingFees – Accrual will be sum of billing fee event amounts for events with Fee Date before valuation date.

- FromPrincipal –

Accrual = Billing principal x (accrual date - billing start date) / (billing end date+1 - billing start date) if Billing Rule attribute “BillingAccrualDayCount” is empty.

Accrual = Billing principal x daycount (accrual date - billing start date) / daycount (billing end date+1 - billing start date) if Billing Rule attribute “BillingAccrualDayCount” is not empty.

 

2.3 Generating the Billing Fees

Make sure the Billing engine subscribes to PSEventTrade events using the Engine Manager in Web Admin.

The Billing engine can be started from the Engine Manager as well.

The Billing engine creates a billing fee to book the rebate amount in the original fee currency.

You can set the book attribute "Rebate Book" on the book of the original billing trade to book the rebate fee in the rebate book. If this book attribute is not set, the rebate fee is booked in the same book as the original billing trade.

See Example of Broker Fees with Rebate for a full example.

 

For the TradeFeeRebate calculator, you need to run the scheduled task EOD_REBATE_FEE to convert the fee into the rebate currency if applicable, and settle the rebate fee. The rebate fee is converted using the FX rate of the last day of the billing.

For the TradeFeeConfigRebate, you need to run the scheduled task EOD_REBATE_FEE to compute the global rebate amount.

Sample EOD_REBATE_FEE scheduled task setup

You need to set the following attributes:

Contract Fee = True.
Process - Not used.
APPLY ACTION - It is possible to specify the action to be applied in the scheduled task. For example, the billing trade could stay in PENDING status during the billing period and move to VERIFIED status once the conversion is done. This could be achieved by setting the action to AUTHORIZE for example.
LegalEntity - You can enter a legal entity ID as needed.

 

3. Example of Broker Fees with Rebate

This example uses the volume rule on the quantity amount. The volume rule is triggered by trade events and can be used for contract or invoice fees.

The fee rate used to compute the fee at trade capture depends on the trade quantity.

 

Fee Definition

Sample contract fee definition for automatic fee

» Calculator set to FeeGrid.

 

Fee Grid

Sample automatic contract fee grid based on fee schedule

» Calculator set to FeeConfig

 

Fee configuration with Rebate

Sample contract fee schedule configuration

 

Billing Grid for Rebate Process

Sample billing grid for contract rebate process

» Select the calculator "TradeFeeRebate".

 

Fee Billing Rule for Rebate Process

Sample contract fee rebate billing rule

 

Equity Trade and associated Fees

 

4. Contract Fees - Accounting Events

 

4.1 Accounting of Contract Fee

Make sure that the Accounting checkbox is checked in the fee definition.

Sample contract fee definition

 

Then from the Calypso Navigator, navigate to Configuration > Accounting > Events to create an accounting event that has the same name as the fee type - COMMISSION in this example.

Make sure that "Fee Related Event" is checked.

Sample fee accounting event

 

4.2 Accounting of Rebates

From the Calypso Navigator, navigate to Configuration > Accounting > Events to create an accounting event to book the rebate amount in original fee currency with effective date = rebate settle date.

The posting is booked on the original trading book.

Sample rebate accounting event in fee currency

 

Then create a second accounting event to book the rebate amount in settlement currency with effective date = rebate settle date.

The posting is booked on the original trading book.

Sample rebate accounting event in settlement currency

 

CST postings: For the billing trade, it is necessary to book CST postings on the underlying transfers in order to book the correct fee amount on each original trading book.

To do so, you need to configure a CST event type (with property UNNET) as shown below.

Sample CST accounting event

 

The postings will be generated from the underlying transfers, provided the engine filter PaymentOnlyEventFilter is not set on the Accounting engine in Web Admin.