Generating Account Statements

Account statement events are generated by the scheduled task ACCOUNT_STATEMENT based on actual cash account positions, and account statement configurations. The Message engine subscribes to account statements events and generates account statement messages based on statement message configurations.

Account Statement Generation Flow

 

1. Before you Begin

When a cash account is defined, the Statements panel will become available to let you configure Statements for this account.

The Statements panel is used to specify that the account can generate regular statements based on your configuration.

Please note that statements can be created only for accounts that have a processing organization, a currency, and a holder (legal entity and role must be specified).

The setup of the statements can be done individually account by account or globally for a range of accounts.

 

1.1 Individual Setup

For the global setup, see Global Setup for Account Statements.

» Enter the fields described below and click Add.

You can add multiple statement configurations to generate statements for multiple positions as needed.

» Then click Save.

 

Fields Details - General

Fields

Description

Statement Type

Select the statement type: Default for an outgoing statement, or Incoming for an incoming statement.

Incoming statements are described as part of the integration process.

See Integrating Payment Messages and Statements for details.

You can add values via the menu Process > Statements > Add Statement Type Domain that can be used for outgoing statements only. They belong to the domain StatementType.

For information on Clearing Statements, please refer to Calypso Clearing Member documentation or Calypso ETD Clearing documentation.

Numbering

Enter a rule to generate statement numbers. New values can be added via the menu Process > Statements > Add Statement Numbering Domain. They belong to the domain StatementNumbering.

The different values available are as follows:

yy or RR: last 2 digits of the year – yyyy: Century + Year
MM: Month
DD: Day
DDD: Day Number
NNN (any length): Number - Re-initializes the statement ID at the beginning of the year.
CCC (any length): Number - Does not reinitialize the statement ID at the beginning of the year.
ZZZ (any length): Number resets to zero at the beginning of the year.

They can be combined (i.e. yyyyMMDD, yyyyDDD, yyyyZZZ).

Zero Balance

If this checkbox is ticked, a statement will be created even if the balance is zero and if no movement occurs in the specified period. In that case, it also means that it is a “Dormant” account. Default value = true.

No Movement

If this checkbox is ticked, a statement will be created even if no movement occurs in the specified period, whatever the balance. Default value = true.

Interim Generation

Check to allow generating multiple intraday statements (camt.052).

Make sure that you select CHECK_FREQUENCY = false when running the scheduled task ACCOUNT_STATEMENT.

Last Statement

Displays the number of the last statement.

Double-click on the heading to display the Id of the last statement created.

Last Date

Displays the date when the last statement was edited.

When creating a new statement rule, the date specified will be used to calculate the original balance.

Active From/To

Enter dates if the statement rule is available only in a limited period.

 

Fields Details - Frequency

Fields

Description

Freq

Rule

You can select a frequency to determine when to generate / integrate account statements.

For the weekly / monthly frequency, you can select the day of the week / month, and select a date roll convention to roll the statement date as needed when it falls on a holiday.

You can also double-click the Freq label to select a date rule instead.

Frequency Populated

Select the frequency supported by Swift. It only applies to MT535 messages and populates tag 22F::/SFRE/.

 

Fields Details - Position

Fields

Description

Cash/Sec

Select the position type to which the statement applies: Cash or Security

Class

Select Internal, or Client.

Type

Select the type of position you want to report in the statement: Actual, Statement, or Theoretical.

Date

Select the position date: Settle, Trade, or Booking.

If you select the date type “Booking”, you can specify the strategy to determine the Booking date using the domain “ProcessingConfig” for the value “BookingDateManager”. The setup is described below.

If you do not specify a strategy, the default strategy is LastStatementDateStrategy.

LastStatementDateStrategy

Default strategy.

Booking Date = System Date if last Booking Statement Date < System Date. Otherwise Booking Date = Last Statement Date + 1 day

LegacyLastStatementDateStrategy

Domain = ProcessingConfig

Value = BookingDateManager

Comment = com.calypso.tk.bo.bookingdate.LegacyLastStatementDateStrategy

Booking Date = Value Date if last Booking Statement Date < Value Date. Otherwise Last Statement Date + 1 day

AccountingStrategy

Domain = ProcessingConfig

Value = BookingDateManager

Comment = com.calypso.tk.bo.bookingdate.AccountingStrategy

Booking Date = Accounting Business Date as defined in the Legal Entity attribute/Book attribute ACC_BUSINESS_DATE, or If not set the EOD of the Book

Value

For Security accounts, select the position Value: Quantity, Nominal, Nominal (Unfactored), or From Product.

When "From Product" is selected, the system will check the product’s quote type to determine the position value:

CleanPrice, DirtyPrice: Position Value = FAMT (nominal)
Price, PriceC, UnitaryPrice and GrossUnitaryPrice: Position Value = UNIT (quantity)

Payment Based

If checked the Statement is based on actual settlements. Otherwise, it is based on expected transfers.

CAAdjustBook

If checked the Statement only selects CAAdjustBook transfers (transfer type is CA and transfer book has a CAAdjustBook book attribute).

Otherwise, any transfer that satisfies the other criteria is selected.

This is used for MT566 reconciliation. Please refer to Calypso Corporate Actions documentation for details.

 

Field Details - Message Config

Click Config to bring up the Message Configuration window. You can select an existing configuration or setup a new one.

The product type should be N/A and the event type should be STATEMENT.

You can choose Help > Message Configuration Help for details.

» Select the STATEMENT event type and an account statement message type. Select the Agent role and select an agent or ALL. You can use a standard swift template (MT940, MT950, MT535, MT536), MX template (camt.053, camt.052) or an HTML template (AccountStatement.html).

The following account statement message types are available:

ACC_STATEMENT - Cash Statement Messages for both text and Swift Messages
ACC_SEC_STATEMENT - Security Statement Messages for text Messages
ACC_SEC_POS_STATEMENT - For Swift MT535
ACC_SEC_TRAN_STATEMENT - For Swift MT536
» Save the message configuration.
» When you close the Message Configuration window, you will be prompted to update the message configuration information in the statement configuration. Click Yes.

 

Call Account Statement

 Ⓘ   [NOTE: For a call account, the role should be the role defined in domain "AccountHolderRole", the message type should be ACC_STATEMENT, and the template should be "CallAccountStatement.html" - Refer to Calypso Call Account documentation for information on defining call accounts]

 

For interest bearing trades, the fee comment is stored in the transfer description. So if you display the transfer description in the HTML message, you will see the fee comment. If you display the transfer type, you will see the fee name.

The message keyword ACCOUNT_LEGAL_ENTITY_FULLNAME shows the account holder full name.

If you want to separate the interest cashflows from the interest rate change, you can use the RateChange iterator.

 

In order to have a more personal transfer description, the system provides the ability to customize the narratives.

If a DDA Xfer is generated by another product (MM or FX trade for example), instead of having the MM standard Xfer description like "PAYMENT USD CASH INTEREST" you can replace CASH by a trade keyword value or a predefined mapping value:

Define the domain "StatementKeyword" with Value = "Narratives" (to use the trade keyword Narratives as the value to display instead of Product Type).

Or define the domain "StatementMapping" with Value = <Product Type> and Comment = <value to display> (then if Value ="Cash" and Comment = "Money Market", the system will display Money Market instead of Cash).

You can set the environment property USE_AGENT_IN_XFER_DESCRIPTION to false if you want to remove agent/account in xfer description for CustomerTransfer (default is true).

To remove extra Net transfer in case of WHT tax (default is true), you can set in domain "AccountSetup":

Value = USE_TAX_IN_STATEMENT
Comment = false

 

Account Attributes

The domain “statementAccountAttributes” may contain account attributes to be copied to statement messages as message attributes in the form “Account.<account attribute>”.

For example, to copy the account attribute StatementTransmission to the statement message, add StatementTransmission to the domain “statementAccountAttributes” and add “Account.StatementTransmission” to the domain “msgAttributes”. The value of account attribute StatementTransmission will be copied to message attribute “Account.StatementTransmission”.

You can then define static data filters on those message attributes.

 

2. Account Statement Processing

The scheduled task ACCOUNT_STATEMENT generates statement events based on account statement configurations and cash account positions computed by the Inventory engine. The statement events are then processed by the Message engine for the actual generation of the statement document.

You can also click Generate in the Account window, Statements panel to generate the statement events. You will be prompted to select a date range.

From the Calypso Navigator, navigate to Configuration > Scheduled Tasks to open the Scheduled Tasks window, and select the ACCOUNT_STATEMENT scheduled task (menu action scheduling.ScheduledTaskListWindow).

Select a trade filter, a user, a pricing environment, and a processing organization.

In the scheduled task, you can specify the agent for which you want to generate a statement, and the type of message (it must be the same as the message configuration selected in the statement configuration).

MESSAGETYPE – Select an account statement message type for this type of message to be generated (ACC_STATEMENT, ACC_SEC_STATEMENT, ACC_SEC_POS_STATEMENT or ACC_SEC_TRAN_STATEMENT).
ROLE – Select the Legal Entity role “Agent”, the same as in the Accounts Definition window.
LEGAL ENTITIES – Select legal entities as needed or leave blank for all Agents.
CURRENCIES – Enter a currency or multiple currencies, or leave blank for all currencies.
STATEMENT_TYPE - Applies to ETD Clearing - Leave blank.
FREQUENCY - Select Daily, Date Rule or Monthly.
CHECK_FREQUENCY - Select true or false to check the statement frequency according to the following logic:
Daily Statements - Whether true or false, there is no impact on daily statements. Intraday statements will be regenerated.
Periodic Statements (Monthly for example) - When True, the system will check that the date matches the date rule in the account definition. If it does, it will produce the expected statements.

When False, it will generate an inter-month statement at the date the scheduled task is executed.

Note that periodic statements are not regenerated on or before the last statement date - See "Regenerating a Statement" below for details.

EXCLUDE_ACCOUNT_STATUS – List of account status codes for which the account statement will not be generated (from the accountStatus domain).
Prerequisite Check – Leave empty or select "SubsidiaryAccount".
SD_FILTER – Select a static data filter as needed to restrict the application scope of the scheduled task.
Override Open Balance Date to D - Select true to set the opening balance date to the valuation date. It is the Last Date from the Account – Statements panel otherwise (Valuation Date - 1 business day for daily statements).
PRODUCT CACHE MAX SIZE - Enter the size of the product client cache (default size is 10000 if not set).
THREAD COUNT - Enter number of threads to parallelize the process (default is 1).
DISABLE SECTIONS – Select the sections that you do not want to generate in the ETD Clearing statement.
Save file types – Select the file types that you want to generate.
Save location – Select the files location.

 

Processing of Late Settlements

Late settlements can be included in the next statement, provided the statement is configured as follows.

The statement config attached to the account for which we produce the statement must be in "Booking" date. The booking date will be populated on the transfers for accounts linked to such statements as follows:

Booking Date = Value Date except if Last Statement Date <= Value date, in which case this will be Last Statement Date + 1 day.

In addition, to manage cases where only SETTLED transfers are included in the statement (which is usually the case), the UpdateBookingDate workflow rule can be added on SETTLE and MATCH actions to update the Booking Date as follows:

If the Booking Date of the transfer is <= Last Statement Date the rule updates the Booking Date to Last Statement Date + 1 to include that transfer in the next day statement.

 

Regenerating a Statement

To regenerate a statement, you can regenerate it manually from the Statement panel of the Account window, or regenerate it using the scheduled task ACCOUNT_STATEMENT provided you modify the Last Statement date in the Statement panel of the Account window to a date prior to the regeneration date.

 

3. Message Report

The Message Report displays messages that have been generated by the Message engine. In particular, the message engine generates statement messages for the statements created by the ACCOUNT_STATEMENT scheduled task.

From the Calypso Navigator, navigate to Reports > Message Reports > Message Report (menu action reporting.ReportWindow$Message) to display the Message Report as shown below.

» Specify search criteria as applicable (for example, Type = ACC_STATEMENT) and click Load to load the corresponding message.
» Double-click a message to view the actual document.

This message type (MT950) is sent by an account servicing institution to an account owner. It is used to transmit detailed information about entries, whether or not caused by a Swift message, booked to the account.

The Swift messages MT940 and MT950 are by default created with 20 lines per message. If you want to manage a different number of lines, add the property MAX_LINE_PER_SWIFT_STATEMENT and specify the value you require.

Account statement messages can be manually edited by the user via the Message report. For more details about editing message, refer to the Calypso Messages Documentation.