Generating Client Trade Statements
The Client trade statement allows reporting trades captured on behalf of a client.
Trade statement events are generated by the scheduled task TRADE_STATEMENT or the Trade Statement window, based on the risk analysis "ReportWrapper" that puts together the results of a Trade Browser template.
The Message engine subscribes to trade statements events and generates trade statement messages based on statement message configurations.
1. Before you Begin
1.1 Legal Entity Attributes
The following legal entity attributes need to be set on the client.
TradeStatementFrequency
The values available for the TradeStatementFrequency attribute can be set in domain "leAttributeType.TradeStatementFrequency".
Ⓘ [NOTE: These values must be valid date rules defined in the system]
TradeStatementByPO
If set to false, there is one Trade Statement per client account for all the trades, regardless of the processing organization.
If true (default), there is one Trade Statement per client account and per processing organization.
This only applies to the TRADE_STATEMENT scheduled task (not the Trade Statement window). Note that you need to select the processing organization column in the Trade Browser template for this to take effect.
When using the Trade Statement window, the system always generates a statement by processing organization, ignoring the attribute TradeStatementByPO.
ZeroTradeStatement
The "Publish When No Trade" option attribute of the Trade Statement window operates in conjunction with this legal entity attribute. When "Publish When No Trade" is checked and ZeroTradeStatement is true, statements are generated for this legal entity even if there are no trades. Otherwise they are not generated when there are no trades.
Zero trade statements cannot be generated by the TRADE_STATEMENT scheduled task.
1.2 Trade Browser Template
From the Calypso Navigator, navigate to Deal Management > Trade Browser and define the Template that will be used as a parameter to build the selection of trades to be reported in the Trade Statement.
Ⓘ [NOTE: The Trade Filter defined in the template is used to load the trades you want to display in the Trade Statement]
For example, to load Loan & Deposit trades not matured on the valuation date, you can define the following trade template:
• | A Trade Filter that loads "Cash" products |
• | Set the Maturity Date Start on your template to -0D to include only not matured trades. |
• | Configure the columns that you want to display in the Trade Statement. We recommend the selection of the following columns as a starting point. |
In order to be able to split the risk analysis by counterparty and send a Trade Statement event by counterparty, you MUST select the CounterParty as a column of your template. This column will not appear in the Trade Statement but will allow the system to split the statement by counterparty.
"TRADE_KEYWORD.Transaction Type" is just an example of user-defined keyword that you can use to report any type of custom information.
• | Rename the columns as you want them to appear in the Trade Statement Message, using the Set Column Name function as stated below: |
• | Then save that template as public - You will be prompted to give it a name that is used in the ReportWrapper risk analysis. |
1.3 Risk Analysis Configuration
Click Risk in the Calypso Navigator, and select the following parameters:
• | Analysis Set Name - Needed to generate the trade statement. |
• | Analysis Type = ReportWrapper |
• | Trade Filter = Any trade filter, "ALL" works. The actual trade filter is taken from the Trade Browser template. |
• | Define the analysis parameters. |
Select the Trade report type, and the Trade Browser template that you have created.
• | Select a Pricing Env. |
• | Check "Save Output". |
• | Click Add Element and save the analysis set. |
1.4 Message Setup
From the Calypso Navigator, navigate to Configuration > Messages & Matching > Message Setup and configure the message as follows.
Use the message type TRADE_STATEMENT. If that message type does not exist, you can add it to the domain "messageType".
Also, make sure that the Message engine subscribes to PSEventStatement events in the Event Configuration.
You can define configurations by product type if needed. The product type will be selected upon Trade Statement generation.
2. Trade Statement Processing
Trade statement events are generated by the scheduled task TRADE_STATEMENT or the Trade Statement window.
2.1 TRADE_STATEMENT Scheduled Task
The TRADE_STATEMENT scheduled task takes the Analysis Set Name defined for the ReportWrapper risk analysis as an attribute.
Prior to running the TRADE_STATEMENT scheduled task, you need to run the RISK_ANALYSIS scheduled task to generate the risk analysis that contains the trades, and save it to the database.
» | Select the analysis set name. |
Then run the TRADE_STATEMENT scheduled task.
If the scheduled task does not exist in your system, add it to the domain "scheduledTask".
Select a processing organization.
Scheduled Task Attributes
• | ANALYSIS OUTPUT ID - Optional, to generate the trade statement for a single risk analysis. |
If you want to find the OUTPUT ID of a risk analysis, navigate to Configuration > Reporting & Risk > Calculation Server from the Calypso Navigator, select a configuration, check the "Saved" checkbox, and click Select, you will be able to view saved report.
• | ANALYSIS PARAM - Analysis parameters defined for the ReportWrapper risk analysis. |
• | USE LATEST - Default value is false. If set to true, the system will always generate the Trade Statement for the latest analysis saved regardless of the Scheduled Task Valuation Date. In other words, the LATEST analysis/report is used to generate the Trade Statement. |
• | ANALYSIS DATE - Optional, to generate the trade statement for a single date. |
• | LEGALENTITY - Optional, to generate the trade statement for a single client. |
• | CHECK FREQUENCY - Must be set to true to only send Statement events for the Legal Entities having a Date Rule set in the TradeStatementFrequency attribute matching the scheduled task's valuation date. When set to False, the scheduled task sends Statement events for all counterparties selected in the Trade Browser Template, regardless of the TradeStatementFrequency attribute. |
• | MESSAGETYPE = TRADE_STATEMENT |
• | PRODUCT TYPE - You can select a product type to retrieve the corresponding message type. The actual trades are selected by the trade filter used to run the ReportWrapper risk report. |
2.2 Trade Statement Window
From the Calypso Navigator, navigate to Deal Management > Trade
Statement (menu action reporting.TradeStatementRunnerWindow
).
» | Select the analysis parameters, a counterparty, a pricing environment, and a processing organization. |
» | You can check "publish When No Trade" to generate Trade Statements even when there is no trade with the selected counterparty. The Trade Statement will only be generated however if the legal entity attribute ZeroTradeStatement is true. |
» | You can select a product type to retrieve the corresponding message type. The actual trades are selected by the trade filter used to run the ReportWrapper risk report. |
» | Enter a valuation date and click Run. |
The valuation date is copied to message attribute GeneratedDate during the BOMessage creation. If set, it is used to populate the STATEMENT_DATE message keyword in the TRADE_STATEMENT.
» | You can save the criteria as a template using Template > Save As Template. |
2.3 Viewing Trade Statements
The Message report displays messages that have been generated by the Message engine. In particular, the Message engine generates trade statement messages for the statements created by the TRADE_STATEMENT scheduled task / Trade Statement window.
From the Calypso Navigator, navigate to Reports >
Message Reports > Message Report (menu action reporting.ReportWindow$Message
) to
display the Message Report as shown below.
You can double-click the message to view the actual statement.
You can validate the results with the Trade Browser. The result will also display total of any column like Nominal, Quantity, Principal Amount, SettlementAmount and etc., in Trade statement when parameter #Total=column name within the message keyword STATEMENT_DETAILS is set.
For eg., STATEMENT_DETAILS#Total = Principal Amount
Message Copy
To generate a message copy, you can apply the COPY action on the TRADE_STATEMENT message from the Message report.