Professional Documents
Culture Documents
No part of this document may be reproduced or transmitted in any form or by any means,
for any purpose, without the express written permission of TEMENOS HEADQUARTERS SA.
Table of Contents
Disclaimer
TEMENOS IS PROVIDING THIS DOCUMENT "AS-IS" AND NO SPECIFIC RESULTS FROM ITS USE
ARE ASSURED OR GUARANTEED. THERE ARE NO WARRANTIES OF ANY KIND, WHETHER
EXPRESS OR IMPLIED, WITH RESPECT TO THIS DOCUMENT, INCLUDING, WITHOUT LIMITATION,
ANY IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE AND NON-INFRINGEMENT, AND TEMENOS EXPRESSLY DISCLAIMS ANY
SUCH WARRANTIES AND CONDITIONS.
Introduction
Customer Profitability is both a batch and online application whose purpose is to assist Financial
Institutions in calculating and comparing customer profitability. It works with an external banking system
source such as the Insight Warehouse to calculate an approximate profitability amount for customer’s
account data. It also serves as a web application for users to do what-if profitability analysis. This
application was previously known as Insight Pricing and may be referenced as such in older
documentation.
One component of the profit calculation is the Funds Transfer Price (FTP) rates used against the
account’s interest rate to calculate the spread income. This is done using the matched maturity FTP
method. Customer Profitability is not used for pooled funds FTP where profits are assigned to business
units.
This Configuration Guide is provided for the Analytics Implementation team to assist in defining the
Customer Profitability model and loading the model into the InsightPricing database. The model consists
of a set of tables that define products and the values used in calculating the Net Income for customer
accounts.
Prerequisites
This guide assumes that the Customer Profitability application has been installed including:
InsightPricing database
Customer Profitability web application (also known as InsightPricing web application)
If this is not the case, refer to the Customer Profitability Install guide for installation instructions.
If you are loading data from Insight, it is assumed that the following is installed and functional:
InsightMasterData database
InsightStaging database
Analytics ETL (Extract-Load-Transform) is executing with data
Important Concepts
The following definitions and concepts are important to understand before configuring the Customer
Profitability or Pricing model.
document. The Model Load has worksheets for entering values, command buttons for generating SQL,
and worksheets of the resulting SQL. This SQL can then be copied to SQL Server Management Studio
and executed. The Model Load is divided into functional areas so the SQL can be run in sections.
There are some internal fields that must be configured in the spreadsheet before the Customer
Profitability web application will run. These include the client settings and users. Much of the
configuration of other values can be done in the Customer Profitability application screens but this can be
very time consuming. In most implementations, the initial model will be refined several times before going
live. Once live, most Customer Profitability models will not change significantly other than regular
updates of rates. With the Model Load, you can delete all configurations and easily reload from scratch.
The Model Load uses Visual Basic script in Excel to parse through the lines of configuration and create
the SQL scripts.
Once the system is live, the users will maintain the model using the web application screens. If they do a
major model change such as redefining a complex product structure, the Model Load spreadsheet may
be used to create a brand new Customer Profitability model.
This document is to be used in conjunction with the Customer Profitability Model Load.xlsm Excel
document. Once configured, the Model Load will generate the SQL code used to populate the
InsightPricing database. Often it is necessary to clear and reload the Customer Profitability model
multiple times during the configuration and QA processes. While changes will eventually be made in the
Customer Profitability model application screens, it is more time efficient and easier to use the Model
Load spreadsheet for the initial phases.
Each section in this document will have a corresponding section in the Model Load. The Ref (reference)
column in the tables will indicate which sheet and column the field applies to. The prefix of the reference
refers to the sheet and the suffix to the field number. E.g. S1.1 is the Client Number on the ‘S1 Client’
sheet and .1 is the field on that sheet. .2 is the Client Name. See Figure 2.1 below.
The blue Value column is where the model values will be entered. Once the sheet is filled out, you can
click the yellow button to generate the SQL code used to load the database. The SQL will be written on a
worksheet with the same prefix as the definitions page. E.g. S1 Client values will be in S1 SQL. This
SQL can then be copied to SQL Management Studio and executed.
Figure 2.2 shows an example when there are multiply lines for a configuration. The Model Load allows
you to turn lines on or off using the ‘Include?’ column. This is useful if you want to generate parts of the
SQL code such as adding additional users. Use caution when doing this and test thoroughly.
Fill out and execute each section in the order they appear (S1, S2, S3 etc.). Some of the setup is
dependent on previous steps. E.g. You need to define your product structure and name your FTP
Adjustments first before you can link products to adjustments.
If at any point you need to make changes and restart the process, run the script found in the ‘DeleteAll’
tab of the Model Load and restart from S1.
Once the initial model is loaded and certified as valid, the client will do any subsequent model changes
using the application screens. The Customer Profitability Administrators Guide will assist them with this
process.
In this guide there are also screen shots relating the values set up in the Model Load spreadsheet to the
Model screens in the application. These are found under the Customer Profitability Application Examples
headings and will help you relate the setup process to the end result.
Client Definitions
The first step in creating a new Customer Profitability model is to define the global configurations. Each
Customer Profitability model is attached to a unique Client Number. Typically, only one Customer
Profitability or Pricing Client is created for an implementation, but the product will support multiple clients
per database. See the Advanced Functionality section for more information.
For Analytics ETL processing the Client Number is a parameter to the Pricing update. For What-if
scenarios, the Client Number is attached to the User.
The client definitions are setup in the Model Load in sheet S1 Client and the SQL script will be generated
into sheet S1 SQL.
Model Settings
The Client Number is used to identify a Customer Profitability model. Normally only one model is setup
per implementation, but the system has the ability to load multiply models in one InsightPricing database.
The client name is for informational purposes only and is not displayed on the screen.
Client S1.1 Unique key to identify a particular model. This value Client.ClientID 1000
Number is sent as a parameter from ETL when calling the
Pricing update. Use 1000 as a default.
Note: The client number is a parameter to the batch profit update and must be passed by the
external process to the s_CaseBankingSystem_AddFrom(Insight)Staging stored procedure. If
the profit update is run as part of the Insight Warehouse ETL (Extract/Transform/Load) you must
use 1000 as the Client Number.
Client Settings
Cost S1.4 Sets the time that fees and costs will be ClientSettings.CostAmortiz 12
Amortization amortized over for demand (dmd) ationDmd
DMD products. Use 12 for most installs.
Cost S1.5 Sets the time that fees and costs will be ClientSettings.CostAmortiz 12
Amortization amortized over for Line of Credit (LOC) ationLOC
LOC products. Use 12 for most installs.
Report Server S1.8 Server name where the Customer Reports.ReportUrl FIReportServer1
Name Profitability internal reports are installed.
Enable S1.9 Yes/No flag to indicate if the target rate ClientSettings.RateAdjustm 1,0
Suggest Rate functionality is used for What-If cases. If ents
this is set to ‘1’, the Suggest Rate button
will appear on the Product Details
screen, otherwise it will be hidden. An
example is show below.
Figure 3.3 shows an example where the Suggest Rate is enabled. The Suggest Rate functionality
requires target rate values to be configured. If it is not enabled the highlighted items below will not
display.
Figure 3.4 shows where in client settings you can enable or disable the Suggest Rate functionality. Often
this configuration is done at a later time.
These settings allow you to customize the display of column headers on the Scenario screen. Typically
the only changes here are to the currency symbol. E.g. remove ‘$’ and/or replace with ‘€’. For the initial
load these will be loaded as the default for everyone. For advanced administrators, the User Settings
screen allows you to customize these labels and the actual fields displayed for each user. This should
only be done after thorough testing of popups and values and is not recommended for the initial
configuration.
These relate to What-if functionality only but should still be set up.
Suggested Rate S1.10 Label on Scenario Screen for Suggest UserSettings.PColumn1 Suggested
Label Rate Rate
Spread Label S1.11 Label on Scenario Screen for Spread UserSettings.PColumn2 Spread
Income Label S1.12 Label on Scenario Screen for Income UserSettings.PColumn3 Income ($)
Costs Label S1.13 Label on Scenario Screen for Costs UserSettings.PColumn4 Costs ($)
Net Income Label S1.14 Label on Scenario Screen for Net Income UserSettings.PColumn5 Net Income ($)
Balance Summary S1.15 Label on Scenario Screen for Balance in UserSettings.SColumn1 Bal ($)
Label the comparison section at the top of the
screen.
Figure 3.6 highlights the labels that can be customized in the scenario screen section.
Figure 3.7 shows where the administrator can customize the labels for each user. (Advanced
administrators only) Otherwise, all users will see the settings for the default user set up during the initial
configuration.
Reports
Customer Profitability requires two reports to be setup during configuration. The Scenario Usage report
appears as the Dashboard on the Home screen, and the Scenario Page is the report launched from the
‘Print Scenario’ button on the Scenario page. Optionally, you can setup links to additional external
reports. These will appear as links on the Reports page.
For the ‘Print Scenario’ report, use Scenario03 to show values as monthly, or use Scenario05 to show
values as yearly.
The report definitions are setup in the Model Load in sheet S2 Reports and the SQL script will be
generated into sheet S2 SQL.
Description S2.4 Text describing the report for the Report.ReportDescription Insight report showing a
user customer’s portfolio
Figures 4.1 and 4.2 show a typical report setup in the Model Load.
There are two mandatory reports you must setup. The reports are deployed to the Report Manager as
part of the installation process. Figure 4.3 show what your Client Reports screen will look like after
running the configuration SQL for the reports.
You also must also set up the Scenario Print report as type PrintPage. This report is launched from the
Print Scenario button on the Scenario screen. Figure 4.5 shows the report as a web page.
If you setup additional report links, they will be displayed on the Reports screen and users can launch the
reports by clicking the link as shown in figure x.
These additional (optional) reports will look like the following after running the configuration SQL.
Users
You will need to populate at least one user for the application to work. For the initial load, add the users
who will be setting up the model and testing the initial data. Once the model is stable, additional users
can be added using the application’s User screens. Set up What-if users with the ‘User’ role to restrict
their access to changing the model. Model administrators will be set up as ‘Super Users’. You can also
split the model maintenance and user setup functions between ‘Admin’ and ‘UserAdmin’ roles.
The user definitions are setup in the Model Load in sheet S3 Users and the SQL script will be generated
into sheet S3 SQL.
The model load spread sheet S1 SQL will automatically setup some internal users such as Default,
System and DBA. Never delete these as they are used for processing.
Once the system is live and the initial users are loaded, the Customer Profitability Administrator
(SuperUser, UserAdmin roles) will add additional people using the Application screens.
Term Periods
Term periods relates to Loan and Term deposit products. Often the Funds Transfer Price of a product will
be dependent on the length of the lending or deposit term. In Customer Profitability we configure a
common set of terms for lookup. If the product’s term is between or outside the common terms setup,
there are two options available to handle the lookup.
The Term Method is important for Transfer Rate and Suggest Rate lookups when a product’s term is
outside the common terms.
‘Interpolation’ will look up the rate for terms above and below the account’s term and calculate a new rate.
‘NoInterpolation’ or ‘Ranges’ will user the lower and upper bounds of the term period to match to a
specified term rate. *Note: the term method can be customized by product by the FTP Rules table
described in the S8 FTP Rates sheet.
Here is an example when the account has Term = 5.
The Term definitions are setup in the Model Load in sheet S4 Terms and the SQL script will be generated
into sheet S4 SQL.
1. Interpolation
2. NoInterpolation (Ranges)
This table defines the Term Periods that will be used for rate and adjustment lookups. If term method of
‘No Interpolation’ ( ‘Ranges’) is chosen and an account’s term period falls between a standard term, the
Lower and Upper Bound values are used to determine the Term Period for lookups. FTP adjustments
and target rates also use the Lower/Upper Bound values for lookups.
Product Definitions
Products in Customer Profitability are made up of Classifications, Attributes and the Attribute Values.
Classifications can match an Insight Warehouse (or other source systems) classification or they can be
completely different. E.g. Mortgage classification in the Insight Warehouse can be split into Retail
Mortgage and Commercial Mortgage in Customer Profitability. These Customer Profitability / Pricing
classifications can be further defined by Attributes and their values. This lowest level of product will be
defined by a unique product ID in the system and will be referred to as the ‘Pricing Product’ throughout
this document.
For example:
Classification: Retail Mortgage
Attribute1: Currency
Value1: USD
Value2: EUR
Value3: GBP
Attribute2: Risk Level
Value1: Low
Value2: Medium
Value3: High
Nine Mortgage Pricing Products are created from the combination of attributes and values.
Each of these nine products can be configured for different FTP adjustments, Product Costs and Target
Rates.
Figure 7.1 shows an example of classifications that have more than one Pricing Product. This is shown
in the ‘# Products’ column. The Mortgage product below has 3600 products which is all the combinations
of the attribute values shown below.
Note: Excessive numbers of Pricing Products may cause performance issues when running the
ETL update. It will also be more work to maintain rates and costs in Customer Profitability.
The product definitions are setup in the Model Load in sheets S5 Classifications, S5 Attributes and S5
Products and the SQL script will be generated into sheet S5 SQL.
Classifications
Define the classification level of the product. Typically these will be similar, or often the same, as the
product classification groupings defined in the source banking data. E.g. Chequing, Savings, Mortgages,
Loans. For ease of maintenance, you would not create Pricing classifications for every single banking
product code.
Examples of cases where you may have different classification from your source are:
The same result could also be achieved using attributes. E.g. Classification = Loan, Attribute =’Loan
Type’ with values ‘Retail’ and ‘Commercial’
Product Type S5.1 Category of the product used for Classification.ProdType Dmd, Term, Loan,
calculations, must be one of: LOC
Attributes
Attributes are defined to further describe a Pricing Product. You would use these to identify
characteristics of a product that would affect the profit calculations. E.g. A classification of Mortgage
might be further defined as Commercial vs Retail because each may be assigned different FTP
adjustment rates. If target rate functionality is used by loan managers to analyse potential customer
loans, attributes such as Risk Rating, Administrative Load, and Deal Size could all be used to affect the
suggested interest rate.
Attribute Name S5.3 The name of the attribute to further classify a Attribute.Name_ RiskRating
product.
BusinessLine
Currency
Attribute Values S5.4 Valid values for the attribute. Accounts interfaced Value_.Value_ High, Low,
(1-20) from the InsightWarehouse must have one of
Retail, Commercial
these valid values. If the data is not available a
default is assigned. USD, GBP, EUR
Note: If a new attribute value is introduced in the application screens, new Pricing Product
combinations are created. Any model items that depend on the project such as FTP Adjustments,
Product costs, and Target Rates will have to be remapped.
Products
To complete the Pricing product creation, map the attributes to the classifications that they apply to.
Attribute Name S5.6 The name an attribute that describes ClassificationAttribute.AttributeID Currency
the classification.
Interface Notes S5.7 Include notes on how this value will be PricingSourceProductRecord.val USD
populated from the source system ue1-10
and/or the default value if no source
data exists. E.g.
Figure 7.6 shows how classifications can be mapped to one or more attributes in the Model Load.
Classifications without any attributes will create one Pricing product and don’t need to be included on the
sheet.
Figure 7.6
Refer to Figure 7.7 to see an example of assigning attributes to products in the application.
Figure 7.7
Note: If a new attribute assignment is introduced in the application screens after the products
have already been created, all the existing products will be marked as deleted and new Pricing
Product combinations are created. Any model items that depend on the products such as FTP
Adjustments, Product costs, and Target Rates will have to be remapped.
Product Costs
Once your Pricing products are created, you can assign costs to specific product attributes combinations.
E.g. Your products have different costs depending on their currency or Retail Mortgages could have
different costs from Commercial Mortgages. If you have a large number of product combinations, you
can use the wildcard ‘*all*’ if all attribute values apply.
Important: Run the S5 Product script first and review the InsightPricing.view_product output to
verify the order and values of the attributes within each product.
Monthly Cost S5a.8 This cost value will be applied to products ProductCosts.MonthlyCost 10
as a monthly value.
Funding Cost S5a.9 This cost value is applied when an account ProductCosts.FundingCost 100
is not flagged as ‘Is Renewed’. The cost
value entered will be divided by the number
of term periods. For Dmd, LOC and MF
product types, the term used is setup in the
CostAmortization fields in the client
settings.
Renewal Cost S5a.10 This cost value is applied when an account ProductCosts.RenewalCost 200
is flagged as ‘Is Renewed’. The cost value
entered will be divided by the number of
term periods.
Term Override S5a.11 If you want to override the term period for N/A, 12
lookups to be a specific term, assign a term
period, otherwise use n/a. E.g. You want
your Dmd products to use Term 12 FTP
instead of Term 1.
Attribute S5a.13 Enter ‘*all*’ to apply the cost to all attribute *all*, Retail
Values (1-20) values or enter a specific attribute value.
Check the view_product to verify the
attribute order of your products.
Figure 7.8
Figure 7.9
These rates apply to products defined with ‘variable’ effective interest rates that depend on a common
base rate. E.g. The Bank of Canada posts a ‘Prime Rate’ and banks offer loans with rates as ‘Prime +
3%’. The effective rate used in the Spread calculation will be the Base Rate from the table plus the index
(3%) assigned to the account. Not all countries offer this kind of rate. Populate one line with a zero rate if
this doesn’t apply.
Variable rate products use the Term 1 rate of the business date for FTP rate lookups.
In the Customer Profitability Model Load.xlsm, use the ‘S6 BaseRates’ sheet to configure the rates and
generate the SQL script.
Base Rate Name S6.1 This is the name to describe the rate. BaseRate.Name_ Prime
This name will be used in the interface to
describe the variable products.
Rate Effective S6.2 Date the rate is effective. In the format BaseRate.Date_ 01/01/2014
Date yyyy-mm-dd.
Rate S6.3 Value of the rate that will be added to the BaseRate.BaseRate 3.0
Figure 8.1
Figure 8.2
Transaction Costs
Transactions such as deposits and withdrawals are categorized into groups in Customer Profitability for
the purpose of assigning a cost to the process. E.g. A branch withdrawal is assigned a cost of $2.00 per
transaction but an ATM withdrawal may cost the bank $.50 per transaction. An account with 4 Branch
Withdrawals and 3 ATM Withdrawals will have a Transaction cost = (4*2.00) + (3 * .50) = $9.50.
The cost value can be challenging for a bank to determine. Start with assigning a rough estimate then
the bank can adjust the cost values later in the application once they have done some more research.
1. Add PricingTranGroup to the InsightMasterData view used for mapping transactions codes from
the banking system. (v_Transaction)
2. Enter a Pricing Transaction Name in the PricingTranGroup column for each transaction type that
should be assigned a cost in Pricing.
3. By default, the InsightStaging..s_InsightPricing_Update stored procedure creates a table called
PricingSourceTransactionRecord that groups and counts transactions for each account.
4. When calculating Net Income, Transaction Costs are subtracted from the Gross Income.
5. Transaction costs are combined with Monthly, Funding and Renewal costs in the Total Costs
column that is returned to InsightWarehouse for cubes and reports.
In the Customer Profitability Model Load.xlsm, use the ‘S6 Transactions’ sheet to configure the rates and
generate the SQL script.
Transaction S7.1 This is the name to describe the Transaction_.Name_ ATM Deposit, Branch
Name transaction. Map Insight Transaction Deposit
codes to this ‘PricingTranGroup’ in
InsightMasterData. Typically these are
high level groupings. Do not include all
banking transaction codes as it will be
difficult to maintain when costs change.
Cost per S7.2 Enter a cost value that will be multiplied by Transaction_.Cost 1.25
Transaction the number of transactions.
Figure 9.1
Figure 9.2
Service charges are fees and charges to a customer that are included as income. E.g. A chequing
account may have a monthly fee for providing statements or a teller transaction to withdraw $100 in
another currency may have a $2 charge.
1. Add PricingFeeGroup to the InsightMasterData view to map transaction codes from the banking
system to a Pricing Service Charge name.
2. In InsightStaging, map the value of the service charge into the TranServiceCharge column for the
AcctTran view sources. Sometimes the service charge is the transaction amount, other times it is
separate from the amount.
3. By default, the InsightStaging..s_InsightPricing_Update stored procedure creates a table called
PricingSourceServiceChargeRecord that groups and totals the service charges in the
TranServiceCharge column for each account.
4. If there are service charges or fees that are not transaction based, e.g. insurance premiums,
custom fields will have to be added to the InsightWarehouse account objects and view sources to
capture the amounts. Custom code will have to be added in s_InsightPricing_Update create the
appropriate PricingSourceServiceChargeRecord entries.
5. As part of the Net Income calculation, services charges are amortized over a specified period and
added to the Total Income. They are included in the ‘Non Spread Income’ in Customer
Profitability
In the Customer Profitability Model Load.xlsm, use the ‘S6 ServiceCharges sheet to configure the service
charges and generate the SQL script.
Service S7.4 Name to describe the service charge or fee. Map ServiceCharge.Name_ Monthly
Charge Insight Transaction codes to this ‘PricingFeeGroup in Dmd
Name InsightMasterData. Typically these are high level Fees
groupings.
Amortization S7.5 This is the period over which a charge is amortized. ServiceCharge.Period Monthly
Period E.g. A $100 service fee assigned an ‘Annual’ period will
result in a $100/12=8.33 monthly value. A $100 service
fee assigned a ‘Term’ period for a 36 month loan will
result in a $100/36 = 2.78 monthly value. Valid values
are:
Annual or Year
Term
Monthly
Biweekly
SemiYearly
Day
Weekly
Quarterly
Interface S7.6 Include notes on how this value will be populated from PricingSourceServiceCharg
Notes the source system. For Insight, map transaction codes eRecord
in the MasterData to PricingFeeGroup in the
v_Transaction view. Use the
StagingAcctTran.TranServiceCharge as the amount. For
Service Fees you want to include that are not in the
StagingAcctTran, you will have to add custom values to
InsightStaging and custom code to
s_InsightPricing_update.
Figure 9.3
Figure 9.4
FTP Settings
The following two fields are used in setting up the base FTP Rate table:
FTP Curve S8.1 This is the name of the FTP Curve. This can Curve.Name_ LIBOR, Swap
Name be an externally posted rate such as LIBOR,
or can be manually calculated.
FTP S8.2 This is the method used to lookup the FTP ClientSettings.FTPMethod NoDuration,
Method rates. Duration or NoDuration (Original Duration
Term) are the valid values. NoDuration uses
the term period for the account, Duration
uses a modified Macaulay duration formula to
modify the lookup term.
Figure 10.1
The Term screen below shows the FTP method setting. The same number of term periods will be setup
for the FTP Rates.
Figure 10.2
st
This screen shows the FTP Curve Name and the rates that have been setup for that curve for Feb 1 .
Note that the Term Periods are the same as the ones setup on the Term Period screen. You can setup
more than one FTP curve, but only one per client can be active at a time.
Figure 10.3
Refer to the Upload FTP Rates section on how to setup a Comma Separated Values (CSV) file for
populating the FTP Rates.
FTP Rules
The FTP Rules table is configured to set the term period rules and date lookup rules by product type.
This table overrides the model-wide Interpolate and Duration settings. This is an internally used table and
is not available to be changed in the application. Any changes to the standard values below would require
code changes to the profit calculation.
FTP Adjustments are additional FTP rates added to the FTP rate that can be customized for a particular
Pricing product. For example, a currency adjustment for US dollars could be applied to all products that
have a US dollar attribute value. Other examples are liquidity and capital for commercial and residential
accounts. FTP adjustments rates will be determined by the Financial Institution’s treasury department
and can be term specific as well as effective dated.
FTP Adjustments
FTP S8.3 This is the name assigned to the FTP FTPAdjust.Name_ Liquidity,
Adjustment Adjustment. Capital
Name Commercial,
Currency
Term S8.5 If there are different rates for different term FTPAdjust.TermDependent 1,0
Dependent periods, set this to ‘1’ otherwise ‘0’ and all
terms will be given the same adjustment
rates.
Time S8.6 If this rate changes over time, set this to ‘1’ FTPAdjust.TimeDependent 1,0
Dependent otherwise ‘0’ and the rate will be the same
for all time periods.
Hint: Set up all as Term & Time Dependent for the most flexibility.
Model Load Setup Example
Figure 10.4
Customer Profitability Application Example
Figure 10.5
FTP S8.7 This is the name assigned to the FTP FTPAdjust.Name_ Liquidity,
Adjustment Adjustment. If must have been defined Capital
Name in S8.3. Commercial,
Currency
Start Date S8.8 This is the effective start date of the FTPAdjustRate.StartDate 2013-01-01
rate.
End Date S8.9 This is the effective end date of the FTPAdjustRate.EndDate 2013-12-31
rate.
Adjustment S8.11 This is the rate that will be added to the FTPAdjustRate.FTPAdjustRate
Rate FTP Rate for the total transfer rate.
The total rate will be multiplied by the
account balance to generate the
Spread amount.
Figure: 10.6
This screen shows an adjustment with Term and Date dependent adjustments. Note: The Capital
Alloc% is no longer used.
Figure 10.7
The defined FTP adjustments must now be linked to a product. You can assign an adjustment to the
most detail product level (Classification/Attribute value) or use the ‘*all*’ wildcard to assign to all attribute
values.
Attribute S5a.13 Enter ‘*all*’ to apply the adjustment to all Attribute.Name_ *all*, Retail
attribute values or enter a specific attribute
Figure 10.8
The following screen shows how to link the products to the FTP Adjustments using the application.
Target Rates
Target Rates and their adjustments allow the Customer Profitability administrator to set base and posted
effective interest rates for each product. When the user clicks the ‘Suggest Rate’ button on the Product
screen, the system will supply the preferred interest rate to be offered to the customer based on a product
and its attributes. The screen also compares any manually entered rate to the Target Rate attributes and
displays a red/yellow/green traffic light icon to indicate if the rate is acceptable.
Note: Target rates are only used for the What-If functionality of Customer Profitability. If you are
not using What-if, you do not need to configure any target rates. You also don’t need to configure
Target Rates if you do not want to use the ‘Suggest Rate’ button.
The steps to setting up target rates are:
1. Enable the Suggest Rate/Target Rate functionality in the Client Settings section. (Ref# S1.9).
Otherwise the Suggest Rate button will not display.
2. Define target base rates for each Pricing product.
3. Define target rate adjustments
4. Define the values for the adjustments
5. Assign Pricing Products to the adjustments
Effective Date S9.1 This is the effective date of the target TargetRate.Date_ 2010-01-01
base rate
Fix or Var S9.2 Enter 'V' for variable, 'F' for Term. This is Internal use V or F
used to separate the Fixed term values
that may have term periods, from the
Variable products.
Green Target S9.4 Enter the base rate to produce the green TargetRate.GreenTargetRate 4, 5.5
traffic light.
Yellow Target S9.5 Enter the base rate to produce the yellow TargetRate.YellowTargetRate 3, 4.5
traffic light. Anything less will show a red
light.
Attribute S9.8- Enter ‘*all*’ to apply the target rate values Attribute.Name_ *all*, Retail
Values (1-20) 17 to all attribute values or enter a specific
attribute value. Check the view_product
to verify the attribute order of your
products.
This screen shows the suggested rate on the Product screen after clicking the Suggest Rate button. Note
the green traffic light. If the user overrides the suggest rate with a rate between the Green Target and
Yellow Target, the traffic light will display yellow. If the user overrides with a rate lower than the Yellow
target, the traffic light will display red.
This next example shows a Term Deposit account where the rates are different for each term period plus
are different down to the Pricing Product level.
The next screen shows an example where the highlighted rate above is shown as the Base Target Rate,
because the product has Term (Months) = ’12’ and Currency attribute = ‘USD’. In this case the user has
overwritten the Rate with 4.5 triggering a red traffic light status because the rate exceeds the Yellow
Target.
Target Rate S9.17 This is the name assigned to the Target TargetRateAdjust.Name_ Risk Rating 1
Adjustment Rate Adjustment.
Name
adjustment rates.
Time S9.20 If this rate changes over time, set this to TargetRateAdjust.TimeDep 1, 0
Dependent ‘1’ otherwise ‘0’ and the rate will be the endent
same for all time periods.
Target Rate S9.21 This is the name assigned to the TargetRateAdjust.Name_ Risk Rating 1
Adjustment Target Rate Adjustment. If must
Name have been defined in S9.17
Start Date S9.22 This is the effective start date of TargetRateAdjustRate.StartDate 1980-01-01
the rate. If the adjustment isn’t
time sensitive or this is the first in
the time series, use 1980-01-01 as
the date.
End Date S9.23 This is the effective end date of TargetRateAdjustRate.StartDate 2079-06-06
the rate. If the adjustment isn’t
time sensitive, or this is the
maximum date, use 2079-6-6 as
the date.
Target Rate S9.25 This is the rate that will be added TargetRateAdjustRate.FTPAdjustRate 1.2, -2.3
Adjustment to the FTP Rate for the total
Rate transfer rate. The total rate will be
multiplied by the account balance
to generate the Spread amount.
This rate can be negative.
Attributes, use this next table to set up your relationships. E.g. Your EUR currency accounts all need a
rate adjustment of 1.0.
Target Rate S9.26 This is the name assigned to the Target TargetRateAdjust.Name_ Risk Rating 1
Adjustment Rate Adjustment. If must have been
Name defined in S9.17
Attribute S9.27 The name of the attribute to further classify Attribute.Name_ RiskRating
Name a product. Ref# S5.3
BusinessLine
Currency
Attribute S9.28 Valid values for the attribute setup in Ref# Value_.Value_ High, Low,
Values S5.4 . All product combinations with this
Retail, Commercial
attribute value will be linked to the Target
Rate Adjustment. USD, GBP, EUR
There are specific settings for mutual fund investments that can be setup for assigning a profit. Typically
investment profits are calculated in the Insight Warehouse. These values are not on the model setup
spreadsheet. If you choose to use the Mutual Fund functionality in Customer Profitability you will have to
setup the following:
MF Settings
FundNo MutualFund.FundNo
Fund Co MutualFund.FundCo
5. Click ‘Submit’
6. This will take a while if it is loading several years of rates in the background. Wait before loading
another file.
Users need to continue to update these rates as they change daily. They can either enter them directly
into the application, or upload from csv.. The file format must be:
dd/mmm/yyyy,term1rate, term2,term3,term6,term9,term12,term18,term24,term36,term48,term60,term84,term120
Example:
04/Jan/2000,5.81,5.92,6.04,6.21,6.40,7.10,7.13,7.16,7.17,7.17,7.17,7.20,7.24
The number of term periods in the file must match the number of terms in the Model\Funds Transfer
Pricing\Terms screen.
InsightPricing database and performs calculations to update the cost and income columns. These
columns are then used to update Net Income, Cost and Transfer Rate columns in the InsightWarehouse.
The final step aggregates the account values to customer values.
Users can log into the InsightPricing web application to do What-if analysis. This data remains in
InsightPricing and is not interfaced back to the InsightWarehouse. The diagram below shows an
overview of the InsightPricing processing.
PricingSourceCustomer
PricingSourceDate
PricingSourceFTPRate
PricingSourceProductRecord
PricingSourceServiceChargeRecord
PricingSourceTransactionRecord
The data from these tables will be inserted into the InsightPricing database, grouped by customer into
‘Banking System Cases’ and updated with the results of income and cost calculations. The ‘Banking
System Cases’ are copied to create ‘What-if cases’ that are manipulated by users.
SourceCustomerID Varchar(50) Unique key from the source System to identify a customer.
Memno Varchar(50) Customer’s identity number that the user would be familiar with. It is used
for Customer lookup.
The PricingSourceDate table has the business date of the run. This date will be attached to cases and
used for table lookups.
This table is used when there are Funds Transfer rates available for import. These rates can also be
entered manually in the application or uploaded from a CSV (comma separated values) file.
CurveID Int This is the CurveID found in InsightPricing..Curve table used to identify
the FTP curve. Multiple curves can be loaded but only one can be
used at a time. This field is optional.
Curve Varchar(100) Name of the FTP curve. This must match to a FTP curve name setup
in InsightPricing. Valid values can be seen on the FTP Rate Model
screen or by querying InsightPricing.Curve.Name_
Term Int This is the term period for the rate. It must be a monthly value.
FTPRate Real This is the FTP rate for the date and term specified.
Data in this table is optional. If you don’t have any rates to import, populate one row with zeros
and blanks.
This PricingSourceProductRecord table is used to interface account information into Pricing product
records.
SourceProductRecordID Varchar(50) This is the unique key from the source system that
identifies a customer’s account.
SourceCustomerID Varchar(50) This is the unique key from the source system that
identifies a customer. It must exist on the
PricingSourceCustomer table.
Attribute1 Varchar(50) This must match the Attribute1 name associated with the
Classification. If no attributes, set to null.
Value1 Varchar(50) This must be a valid value for Attribute1 as setup in the
Customer Profitability model. If no attributes, set to null.
Attribute2 Varchar(50) This must match the Attribute2 name associated with the
Classification. If no Attribute2, set to null.
Value2 Varchar(50) This must be a valid value for Attribute2 as setup in the
Customer Profitability model. If no Attribute2, set to null.
Attribute3 Varchar(50) This must match the Attribute3 name associated with the
Classification. If no Attribute3, set to null.
Value3 Varchar(50) This must be a valid value for Attribute3 as setup in the
Customer Profitability model. If no Attribute3, set to null.
Attribute4 Varchar(50) This must match the Attribute4 name associated with the
Classification. If no Attribute4, set to null.
Value4 Varchar(50) This must be a valid value for Attribute4 as setup in the
Customer Profitability model. If no Attribute4, set to null.
Attribute5 Varchar(50) This must match the Attribute5 name associated with the
Classification. If no Attribute5, set to null.
Value5 Varchar(50) This must be a valid value for Attribute5 as setup in the
Customer Profitability model. If no Attribute5, set to null.
Attribute6 Varchar(50) This must match the Attribute6 name associated with the
Classification. If no Attribute6, set to null.
Value6 Varchar(50) This must be a valid value for Attribute6 as setup in the
Customer Profitability model. If no Attribute6, set to null.
Attribute7 Varchar(50) This must match the Attribute7 name associated with the
Classification. If no Attribute7, set to null.
Value7 Varchar(50) This must be a valid value for Attribute7 as setup in the
Customer Profitability model. If no Attribute7, set to null.
Attribute8 Varchar(50) This must match the Attribute8 name associated with the
Classification. If no Attribute8, set to null.
Value8 Varchar(50) This must be a valid value for Attribute2 as setup in the
Customer Profitability model. If no Attribute2, set to null.
Attribute9 Varchar(50) This must match the Attribute9 name associated with the
Classification. If no Attribute9, set to null.
Value9 Varchar(50) This must be a valid value for Attribute9 as setup in the
Customer Profitability model. If no Attribute9, set to null.
Attribute10 Varchar(50) This must match the Attribute10 name associated with
the Classification. If no Attribute10, set to null.
Value10 Varchar(50) This must be a valid value for Attribute10 as setup in the
Customer Profitability model. If no Attribute10, set to
null.
Balance Money This is the account balance used for spread income
calculations. Typically this is the current account
balance but it is often the monthly average balance if
available in the source systems.
Term Int This is the term in months of Loan and Term Deposit
products. For non-term products set it to ‘0’.
StartDate Date This is the date used for FTP lookup for fixed interest
rate products (except ‘dmd’). It is normally the start date,
or renewal date of the account. This must not be null.
Renewed Int Enter ‘1’ if the project has been renewed or ‘0’ for all
others. This is used for assigning renewal costs in
InsightPricing.
EffectiveRate Real This is the interest rate for the account for fixed rates.
There must be a value >= 0 for all FixVar = ‘F’, otherwise
it should be null for FixVar = ‘V’.
BaseRate Varchar(25) This is the name of the base rate (e.g. ‘Prime’) used for
variable interest rates. It must match a Base rate name
in InsightPricing. Use null for FixVar = ‘F’.
BaseRateModifier Real This is the index amount added to the BaseRate for
variable interest rates. Use null for FixVar = ‘F’. If the
source data does not specify the index, you would
calculate the BaseRateModifer by subtracting the
BaseRate from the Interest Rate. Lookup the BaseRate
in the InsightPricing..BaseRate table for the business
date.
Detail Varchar(200) Enter any information you want to display on the Edit
Product screen and Scenario screen Product Popup.
This is typically the source system’s product code.
Combined Varchar(1010) This is a calculated field used append all the Attribute1-
10 and Values1-10 for faster updating. It is created as a
The Attributes and Values must be the same order that the Pricing products were created in.
Check the InsighPricing..view_Product for the valid combinations.
The combination of Classification, Attribute 1-10, Value 1-10 must exist as a product in
InsightPricing. If the Pricing update cannot find a matching product, the account will not be
inserted into InsightPricing.
Issues with the source banking system data such as null balances and missing start dates are
often revealed when the Customer Profitability module is installed. If these issues are not filtered
in the Pricing interface they can cause the ‘Technical Difficulties’ screen to appear in Customer
Profitablity. Run the QA scripts provided in the Model Load spread sheet to help identify issues.
The PricingSourceServiceChargeRecord table is used to import service charge income from the source
system. The service charges are typically extracted from bank transaction data. Additionally, service
charges such as application fees for loans can be included if they are stored with account data in the
source system.
SourceProductRecordID Varchar(50) This is the unique key from the source system that identifies a
customer’s account. This must exist on the
PricingSourceProductRecord table.
Amount Money This is the amount of the service charge. InsightPricing will
amortize the amount according to the Amortization Period
setup in the Pricing Service Charges table.
One of the last steps of the interface is typically a deletion of service charges that do not have a
matching product record in PricingSourceProductRecord.
In the source banking system the service charge amount can be the transaction amount or can
be stored as a separate amount.
The PricingSourceTransactionRecord table is used import the number of transactions (usually in a month)
for an account so a cost per transactions can be assigned.
SourceProductRecordID Varchar(50) This is the unique key from the source system that identifies a
customer’s account. This must exist on the
PricingSourceProductRecord table.
One of the last steps of the interface is typically a deletion of transactions records that do not
have a matching product record in PricingSourceProductRecord.
In the source banking system the service charge amount can be the transaction amount or can
be stored as a separate amount.
The following must be setup in the InsightMasterData tables to translate InsightWarehouse products and
transactions into InsightPricing inputs.
V_ProductClassification - PricingClassification
Update the PricingClassification with a valid Classification from the Product Setup screen. The names
must match classifications setup in InsightPricing. The screen shots below show the MasterData column
as it relates to the Customer Profitability application. Review the screen below or query the
InsightPricing..Classification table to see the names.
Example: ProductCode = ‘LY’ is a Loan in InsightWarehouse but for Customer Profitability and its
InsightPricing database it will be mapped to ‘Pers Loan’
Update the PricingTranGroup to map a TransactionCode to a Pricing Transaction Name. These will be
used to assign a per-transaction cost. The PricingTranGroup must exist on the Pricing Transactions
screen as seen below.
This example shows TransactionCode ‘74’ maps to Pricing Name ‘ATM Withdrawal’. An account with 2
transaction ‘74’s will have a cost of 2 x .85 = $1.70 for ATM Withdrawals.
V_Transaction – PricingFeeGroup
Update the PricingFeeGroup for transaction amounts that are considered income. The PricingFeeGroup
must match a Service Charge name.
In the example below, the transaction amount from Transaction Code ‘80’ will be included as income as
part of the Pricing Net Income calculation.
Update Order
.
Ensure that the InsightStaging..UpdateOrder table has the Customer Profit Update enabled.
InsightETL
InsightETL calculations are used for updating the Staging fields and adding indexes for performance.
The following must exist in the AttributeCalculation table:
Documentation
Refer to the following documents for more Customer Profitability information:
Advanced Functionality
Multiple Models
By default we create only one Customer Profitability model per implementation. This maintains the one-
version-of-the-truth principal by having one set of Net Income calculations apply to all reporting. If there
is a requirement to have multiple models, you can setup another model under another Client Number.
The following steps would have to be done:
client number. Then the update of warehouse fields will have to look for the specific client number
on view_ProductRecord.
The last step of the profit calculation is to call the stored procedure
s_productRecord_Profit_Update_custom_xxxx where xxxx is the client number. This stored procedure
can overwrite the calculations done by InsightPricing with custom calculations. E.g. A custom spread of
2.5 is applied to DMD products. If you do overwrite a field, make sure you also adjust any other relevant
fields such as Net Income, Transfer Rate etc.
Using the Customer Profitability Model Load.xlsm spread sheet will greatly increase the time it takes to
load the model. It is possible to use the application to configure the model but is not recommended as
not all fields are available in the application screens. At the very least you will have to load the Client,
Users and Terms SQL from the spreadsheet.