Contents
Day 1......................................................................................................................................................................................... 2
Murex Accounting Module..................................................................................................................................................2
Accounting engine........................................................................................................................................................... 2
Accounting template.......................................................................................................................................................2
Trade right by status....................................................................................................................................................... 6
Accounting structure........................................................................................................................................................... 6
Chart of Account structure..............................................................................................................................................6
Organisation of the GL code presentation......................................................................................................................6
SG Accounting Rule Setup....................................................................................................................................................7
Key fields for accounting rules........................................................................................................................................7
Mapping table................................................................................................................................................................. 7
Supporting user defined table.........................................................................................................................................8
Accounting rules structure..............................................................................................................................................8
Accounting FX treatment..............................................................................................................................................17
Day 2....................................................................................................................................................................................... 19
Accounting processes........................................................................................................................................................19
Accounting simulation...................................................................................................................................................19
Accounting Entries at Trade Level.................................................................................................................................20
Accounting Marked-to-Market......................................................................................................................................21
Accounting Interest Accrual..........................................................................................................................................27
Market Operation.........................................................................................................................................................35
Day 3....................................................................................................................................................................................... 43
Accounting EOD script.......................................................................................................................................................43
End of day job sequence...............................................................................................................................................43
End of day job script......................................................................................................................................................43
End of day troubleshooting...........................................................................................................................................47
Accounting Feeder........................................................................................................................................................50
Database structure........................................................................................................................................................53
Accounting Fixing Rate..................................................................................................................................................53
Accounting Audit Table.................................................................................................................................................56
Day 1
Murex Accounting Module
Accounting engine
Mapping tables (accounting,
Trades
portfolio, and counterparty)
Accounting Rules Accounting Engine Accounting Template
Accounting Entries
Accounting template
Important settings:
Global settings
Calculation
Revaluation Frequency
Global Settings
Filter
Allows condition to specify to restrict what trades is evaluated during accounting EOD.
Number of servers
Specify the number of accounting engine initiated during accounting EOD.
Entries comments
Configure the information that is captured in the accounting entries comment field.
Calculation
This section specifies the type of configuration for each product type during the accounting EOD.
(Using FX and Bond as example)
Key configuration includes
Interest Accrual method
Accounting events
Revaluation Frequency
To be completed…
Trade right by status
Accounting structure
Chart of Account structure
For OCBC SIN, this is the chart of account (COA) structure. It consists of 19 digits. Murex has a constrained of maximum 20
digits.
Entity code (3-digits) – retrieved from the Portfolio user-defined field (UDF).
Cost centre (3-digits) - retrieved from the Portfolio UDF
GL account code (5-digits) – retrieved from accounting mapping table
Product code (3-digits) – retrieved from typology or product mapping table
Customer segment code (2-digits) – retrieved from counterparty or portfolio mapping
Sub-ledger code (3-digits) – country specific logic
For OCBC NISP, the structure is proposed to be a bit different. OCBC NISP is looking for a GL account code that is 8 digits. In
order to accommodate this setup, this is the configuration that is under consideration:
Entity code (3-digits) – retrieved from the Portfolio user-defined field (UDF).
Cost centre (3-digits) - retrieved from the Portfolio UDF
GL account code (8-digits) – retrieved from accounting mapping table
Product code (3-digits) – retrieved from typology or product mapping table
Customer segment code (2-digits) – retrieved from counterparty or portfolio mapping
Organisation of the GL code presentation
In OCBC NISP, the 1st digit specifies financial classification:
1 – Asset
2 – Liability
3 – Equity
4 – Revenue
5 – Expense
6 - Commitment & Contingent
7 – Contra Commitment & Contingent
SG Accounting Rule Setup
Key fields for accounting rules
Entity (Portfolio)
Transaction Group (Transaction level)
Transaction Type (Transaction level)
Product Typology (Transaction level)
Instrument Code (Security)
Instrument Sub Code (Security)
Quoted/Unquoted flag (Security)
Transaction buy/sell flag for Repo trade (Transaction level)
Internal/External Flag (Transaction level)
Accounting Section (Portfolio)
Counterparty Account Type (Counterparty)
Mapping table
table#list#ac_gl_m_dbf
Contain the grouping of related product into the same accounting label.
Non FI Key:
Entity,
Transaction Group,
Transaction Type,
Product Typology
FI Key:
Entity,
Transaction Group,
Transaction Type,
Instrument Code,
Instrument Sub Code,
Quoted/Unquoted flag
table#list#ac_gl_d_dbf
Contain the detail GL account to be retrieved to form the COA.
Key:
GL Label
Internal/External Flag
Accounting Section (1st level, 2nd level)
Counterparty Account Type (1st level, 3rd level)
table#list#ac_gl_fi_dbf
Contain the product code for FI products to be retrieved to form the COA.
Key:
Entity
Product Typology
Instrument Code
Instrument Sub Code
Security Country Code (1st level only)
Quoted/Unquoted flag
Transaction buy/sell flag for Repo trade
TABLE#LIST#MISC_ACC_DBF (used for investment swap and others account)
TABLE#LIST#SETLMO_DBF
Supporting user defined table
Counterparty User Defined Table (TABLE#DATA#COUNTERP_DBF)
Portfolio User Defined Table (TABLE#DATA#PORTFOLI_DBF)
Security User Defined Table (TABLE#DATA#SECURITI_DBF)
Counterparty Settlement Instruction (nostro/vostro account information)
Accounting rules structure
Refer to murex document:
5.1.1019 Accounting Rules for transaction
5.1.212 Accounts Definition
Accounting rules
Accounting events
This is the different events that happen in the life cycle of a trade.
- Commitment
- Delivery
- Realized-Live
- Realized-Dead
Filters
Filter allows the same accounting event to generate entry for different debit/credit accounts
Common filtering condition:
- GLMatrixChkAcctble: check whether the ac_gl_m
- GLMatrixChkBR: for counterparty which account type begins with ‘BR’, then check that the ac_gl_m is
configured for counterparty accounting type.
Filter condition is configured between field, constant and a calculation.
Types of filter: OR Filter
Types of filter: AND Filter
Types of filter: Complex Filter
Dynamic account
Values for the chart of account are generated during the end-of-day process
Sample: SG_NO_SETL_MOD
Sample: SG_SPOTPOS
Formula account
Chart of account is generated based on a specific set of criteria
Sample account: Matrix_NostroSett
Linked Rule
Established a relationship between one product type to accounting rules defined for another product type.
Sample: EQD_BOND_CNV=IRD_BOND
Calculation
This is a Murex functionality that allows user-defined function.
This is used extensively in the accounting configuration.
Important function to know:
Sample: GLMatrixChkAcctbl_FI
CTBLFIELD('TABLE#LIST#AC_GL_M.GL_LABEL','SID',({Acc_Entry->~Entity}+CTBLFIELD('VIEW_AC_GL_M.SID','NB',
str({Header->Trn#}))))
Sample: NOSTRO_ACC_DC_FI
IIF(trim({Header->PAYTP_DESC})='DVP',
IIF(ISBLANK
(C_TRNCDI({Header->Trn#},'DI:'+{Acc_Entry->Entry Cur}+':D:N::'+{Header->Counterpart},'NOSTRO_GL'))=1,
(C_TRNCDI({Header->Trn#},'DI:'+{Acc_Entry->Entry Cur}+':C:N::'+{Header->Counterpart},'NOSTRO_GL')),
(C_TRNCDI({Header->Trn#},'DI:'+{Acc_Entry->Entry Cur}+':D:N::'+{Header->Counterpart},'NOSTRO_GL'))),
IIF(ISBLANK
(C_TRNSI({Header->Trn#},{Acc_Entry->Entry Cur}+':D:N::'+{Header->Counterpart},'NOSTRO_GL')) = 1,
(C_TRNSI({Header->Trn#},{Acc_Entry->Entry Cur}+':C:N::'+{Header->Counterpart},'NOSTRO_GL')),
(C_TRNSI({Header->Trn#},{Acc_Entry->Entry Cur}+':D:N::'+{Header->Counterpart},'NOSTRO_GL')))
)
Sample: PRODUCT_TYPOLOGY
SUBSTR(IIF(({Header->Internal}="Y".AND.{Header->Portfolio}<>{Acc_Entry->~Current portfolio}.AND.
(ISBLANK(TRIM(CTBLFIELD('TABLE#LIST#AC_GL_M.ALT_PDTCDE','SID',({Acc_Entry->~Entity}+{Header->Trn-
Group}+{Header->Trn-Type}+{Header->Product
Typology}))))=0)),CTBLFIELD('TABLE#LIST#AC_GL_M.ALT_PDTCDE','SID',({Acc_Entry->~Entity}+{Header->Trn-
Group}+{Header->Trn-Type}+{Header->Product Typology})),'')+SUBSTR({Header->Product Typology},2,4),1,3)
Accounting FX treatment
Accounting currency is setup in the entity level.
All currency that is not accounting currency is considered as Foreign Currency.
FX conversion is done for foreign currency to a specific currency based on configuration. The exchange rate is taken from
the accounting fixing rate.
Day 2
Accounting processes
Accounting simulation
Accounting simulation is an important tool to verify whether the accounting rules setup is performed correctly or not.
After trade query, go to Tools -> Building accounting entries and Click 'Yes' to proceed.
This is a function that allows user to know what entries would be generated during the accounting EOD.
Accounting Entries at Trade Level
Refer to murex document:
5.1.959 Accounting Documents
Entry Number 737612889 738410695 738410696 738410697
NB_PREV 0 737612889 0 0
Trn.Family IRD IRD IRD IRD
Trn.Group BOND BOND BOND BOND
Trn.Type
Rule Number 1808 1808 1795 1808
Trn. Number 13659796 13659796 13659796 13659796
Mop. Number 0 0 13018354 0
NB_BS S S S S
NB_REVERS
N Y N N
E
Origin
Currency
(Exchange
Entry)
Entry XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX
Comment X;XXXX;OCBC SIN X;XXXX;OCBC SIN X;XXXX;OCBC SIN X;XXXX;OCBC SIN
Entry Date 26/09/2013 27/09/2013 27/09/2013 27/09/2013
Entry Debit 10423340417290331 10423331956290331 10423362060290331 10423340417290331
Account 77 24 77 77
Entry Credit 10423331956290331 10423340417290331 10423330586290331 10423331956290331
Account 24 77 24 24
Entry
SGD SGD SGD SGD
Currency
Entry Amount 67247.27 67247.27 312320 67622.95
EN_TYPE 6 6 0 6
PAY_DAT 01/10/2013 01/10/2013 27/09/2013 01/10/2013
ENTITY OCBC SIN OCBC SIN OCBC SIN OCBC SIN
ACC_SEC TRADING TRADING TRADING TRADING
VAL_DATE 26/09/2013 27/09/2013 27/09/2013 27/09/2013
NB_CANCEL 0 0 0 0
SYS_DATE 26/09/2013 27/09/2013 27/09/2013 27/09/2013
EN_NETTED 1 1 0 1
Event 0 RL RL RZ RL
SG_IRD_BOND_SE SG_IRD_BOND_SE SG_IRD_BOND_SE SG_IRD_BOND_SE
Rule Label LL_DAILY_ACCRUA LL_DAILY_ACCRUA LL_REALIZE_PL_DI LL_DAILY_ACCRUA
L_AST L_AST SC_AST_TRD_CPN L_AST
EN_TYPE - 0: others, 3: MTM, 6: Interest accrual, 7: Manual entry
NB_REVERSE - Set to 'Y' when the related entry correspond to an Automatic Reversal
EN_NETTED - Logical purge of accounting entries, 1: means to be ignored.
Accounting Marked-to-Market
Sample trade: 13439237 (FXD)
Computation:
(MV + FCP + PV) * Accounting fixing rate
= (-4873.54481239972 + 0 + 0.000751812806811358) * 1.68261386862429
= -8200.29
Sample Trade: 13646878
Computation:
(MV + FCP + PV) * Accounting fixing rate
= (29.6754500007038 + 0 + -0.00163336417994486) * 1.24686050005053
= 36.99911
Sample trade: 13650865 (Option)
Refer to murex document:
5.1.1311 Marked to Market Revaluation Formulae
Computation:
Market Value (Discounted) + Cash future initial payment flat (Discounted) + Cash past initial payment flat (Non Discounted)
= MVDisc+CshFutIPCapDisc+CshPastIPCapNonDisc
= (-11793.8760544467+ 0 + 64800)
= 53006.1239455533
Accounting Interest Accrual
Refer to murex document:
5.1.26 Accounting accruals calculation
Calculation of interest accrual is related to a configuration in the Accounting Template.
End of Month booking
EOM Amount: amount of the last accrual entry of the month is equal to the exact value of accrual at the end of the month.
Non working day booking
This flag is used to manage the end-of-week interest.
Actual amount: amount of the accrual entry is equal to the exact value of accrual at this date
Sample trade: 13652145 (Loan & Deposit)
Interest accrual entry is generated daily and reversed out the following day.
The interest accrual amount can be obtained from the P&L (Accounting breakdown) function.
Sample trade: 13557395 (Bond Live)
There is a distinction for bonds traded under the AFS book. The premium/discount is recognized outside of the FI asset
account. It is amortized daily until bond maturity or bond is netted.
The interest accrual and the premium/discount amortization can be obtained from the P&L (Accounting breakdown) after
performing trade query.
Sample trade: 11774177 (Bond netted - partial)
Computation of the amount of premium/discount that is offset due to netting:
= Original premium-discount * (netted quantity / original quantity)
= 517500 * 20000/150000
= 69000
Computation of the realized amortized premium/discount:
= Effective yield amortization from P&L (accounting breakdown) * (netted quantity / original quantity)
= 38831.7037856325 * 20000/150000
= 5177.560504751
Note:
The netting is performed on 16 Aug 2013 so the P&L breakdown should be retrieved for 15 Aug 2013.
Sample trade: 13267095 (Bond netted - full)
In this sample, the sell leg is fully netted with another Buy deal (5313678). Therefore, the remaining position is left with
only the Buy leg.
Sample trade: 13263966 (Bond_Repo)
For Bond Repo, the interest accrual is found in the second leg of the P&L (Accounting breakdown). The first leg is the P&L
for the underlying instrument.
Market Operation
1 – Exercise
2 – Expiry
3 – Early Termination
4 – Netting
5 – Restructuring
6 – Cancel & Reissue
7 – Delete
Sample restructuring accounting
Sample trade: 10403773 (Option)
The restructuring happens after the premium in the original trade has settled.
Restructured trade: 11144654 (Option)
Though the premium is revised, the premium amount posted for restructured deal is still the original trade premium.
Sample cancel&reissue accounting
Sample trade: 1202990 (Option)
The cancel&reissue happens after the premium in the original trade has settled.
Cancel&reissue trade: 1416251 (Option)
The new trade posted the new premium amount in the cancel&reissue deal.
Day 3
Accounting EOD script
End of day job sequence
Accounting EOD is performed after FO or PC (need to confirm) move date is completed. Generally, it follows this sequence
but to be confirmed against Control-M setup:
Market Operations Bond MTM Accounting EOD
End of day job script
Refer to murex document:
5.1.216 Accounting End of Day procedure
3-ACCOUNTNG EOD SG
2-ACC MOVE DATE SG
As part of the accounting EOD, there are four key steps to be performed:
ACCCOPY-FX: Copy the FX rates into the Accounting Fixing rates.
ACCEOD-TRN: Generate the accounting entries between accounting date (included) and target date (excluded). In
this sample, OCBC SIN splits the EOD day into LN_BR and non LN_BR. This is not required for NISP.
ACCEOD-BAL: Compute the accounting balances between target date and accounting date. When the shifter is
left empty, system will compute the balance for the accounting date only.
ACCEOD-MVDATE: Move the entities account dates to the target date. If the target date is earlier than the
current accounting date, it removes all accounting entries from the target date to the accounting date.
End of day troubleshooting
Troubleshooting - Accounting monitoring Monit
These are two processes that should be active when accounting EOD is running.
Troubleshooting - Accounting -> Audit -> End of Day audit trail
The end of day audit displays the product that is processed by the accounting end of day.
In a typical end of day process, the audit will display this information:
Start of accounting engine
Loading of accounting rule
Reading of transaction audit information
Generate the accounting entries
Most of the items in the audit trail come in pairs. For example, the LOAD RULE (code 1871671) will have a start entry and
an end entry. When the END entry is missing for a particular task, it means that task is still running or has failed.
If a step has been running for a long time, the audit table will shows the last step that the accounting end of day is
performing. From there, it will give an indication of where the processing is taking a long time and troubleshooting can
commence from the database or UNIX level.
Recovery
There will be situation where we need to undo an accounting end of day.
ACCUNDO-TRN: Remove accounting entries between target date (included) and accounting date (included). This
is different from undo move date as manual entries by users are not removed.
ACCEOD-MVDATE: Move the entities account dates to the target date. If the target date is earlier than the
current accounting date, it removes all accounting entries from the target date to the accounting date.
Accounting Feeder
This is the account feeder for Account entries file and account balance file
DT_ACJD_SG_AF
SG_IT_RPT_ACJS
Database structure
This is a list of tables used by accounting end of day; however this list is not exhaustive.
ACC_AUDT_DBF: Trade level accounting event details
ACCOUNT#MMMYYYY#ACC_DT1_DBF: Accounting entries table
ACCOUNT#ACC_AUD_DBF: Accounting EOD execution details
ACCOUNT#ACJ_SEGM_DBF: Important configuration table that is populated during tagging of entity to entity set.
If this table contains duplicate entries for an entities, the accounting EOD will be messed up.
TRN_ACJS_DBF: Account balance for each chart of account for an entity.
TRN_ACR1_DBF: Account rules configuration table
TRN_ACFD_DBF: Account rules entity and accounting section configuration table
TRN_ACAT_DBF: Formula account hierarchy structure table
TRN_ACAF_DBF: Formula account list table
TRN_ACA3_DBF: Dynamic account structure table
TRN_ACA1_DBF: Simple and dynamic account list table
ACCCFG#FIL_ACCT_DBF: Filter hierarchy table
ACCCFG#FIL_ACCH_DBF: Filter list table
ACCCFG#FIL_ACCD_DBF: Calculation expression details table
ACCCFG#FIL_ACCB_DBF: Filter condition table
Accounting Fixing Rate
Accounting process capture a set of FX rate for the conversion to accounting currency.
This function is accessible through Accounting -> Query -> FX spot rates
This will be the FX rate that accounting EOD use to perform the FX conversion.
If the FX spot rate is not copied over during the End of Day process, the rate will all be zero.
Accounting Audit Table
Accounting audit table captures the event where accounting entries for a trade is to be reviewed.
This function is accessible by Accounting -> Audit -> Trade Audit Trail -> One audit entry