Field of the invention
[0001] The present invention relates to the field of data processing, and more particularly
without limitation to billing systems.
Background and prior art
[0002] Bundle pricing of services is as such known e.g. in the banking and telecommunication
industries.
[0003] For example, a telecommunication customer is charged with telecommunication fees
for various telecommunication services, such as voice communication, data communication,
the use of pre-paid and post-paid services, and/or the transmitted data volume. Typically
the customer receives a rebate for the telecommunication services depending on the
amount of usage of the various telecommunication services.
[0004] Bundle pricing is also commonly used in retail banking. A bank's customer gets a
rebate for bank fees, such as fees for account maintenance fees, inter-account transfers,
debit orders, electronic account payments, cash withdrawals and/or interest rates,
when a certain condition is fulfilled, e.g. when one of the accounts of the customer
exceeds a defined threshold balance.
[0005] The bundle pricing conditions, e.g. the threshold balance, is stored with the customer
contract data record. If the threshold balance needs to be changed, this requires
storage of the new threshold value for each customer master contract. This is a common
disadvantage of prior art data processing systems that are used for bundle pricing
as storing the new threshold value for thousands or even millions of customer master
contracts requires a relatively long processing time and has a relatively high processing
expense.
[0006] There is therefore a need to provide an improved data processing system and method
that facilitates a reduction of the data processing resources for bundle pricing applications.
Summary of the invention
[0007] In accordance with the present invention there is provided a data processing system
that has first storage means for storage of sets of account identifiers, at least
some of the account identifiers having assigned thereto a condition attribute of a
predefined set of condition attributes and a result attribute of a predefined set
of result attributes. The data processing system has second storage means for storage
of a condition rule and a condition value for each condition attribute of the predefined
set of condition attributes and for storage of a result rule and result value for
each result attribute of the predefined set of result attributes.
[0008] For example, the first storage means is provided by a large database or a plurality
of databases that hold the master data of a bank's customers. The second storage means
does only require a minimal amount of storage as the condition rules, condition values,
result rules and result values do only need to be stored once, but not for every customer.
[0009] The data processing system has first program means for determining a sub-set of the
account identifiers of a set of account identifiers, wherein the account identifiers
of the sub-set have a common condition attribute. Second program means serves for
determining if the sub-set fulfils the condition rule of the common condition attribute
when applied with the respective condition value. If the sub-set fulfils the condition
rule applied with the respective condition value, third program means are initiated
for calculating a result for each account identifier of the sub-set using the respective
result rule and result value.
[0010] The present invention is particularly advantageous as the condition rules, condition
values, result rules and result values are stored separately from the sets of account
identifiers, e.g. the master contract data of the customers. This facilitates to update
the condition rules, condition values, result rules and result values without a need
to change the customer master data.
[0011] In accordance with an embodiment of the invention the data processing system has
a database for storing master contracts and billing customizing tables. The master
contracts refer to the billing customizing data by means of result and condition attributes.
This has the advantage that a modification of the billing customizing data, such as
for the purpose of changing the bundle pricing scheme for the master contracts, does
not require storage of the updated data in the database.
[0012] In accordance with an embodiment of the invention a scheduler is used for determining
a priority of the sets of account identifiers for which processing is due or overdue.
The scheduled sets of account identifiers are processed as a batch job without a need
for user interaction. For example, the periodicity of the processing i.e. the bundle
pricing, can be defined for each customer master contract.
[0013] In accordance with an embodiment of the invention the bundle pricing data processing
system is coupled to an account management system that keeps the accounts identified
by the account identifiers. The account management system can have a billing component
for charging default service fees. In this instance the results calculated by the
data processing system can be credited to the respective accounts. Alternatively the
complete billing is performed by the data processing system taking into account default
bank fees and rebates that are given to a customer if certain condition rules applied
with the respective condition values are fulfilled.
[0014] This is particularly advantageous as this facilitates to use a legacy account management
system for advanced pricing applications. In particular, this avoids a need to replace
a legacy account management system if advanced pricing applications are to be introduced.
[0015] In accordance with an embodiment of the invention the bundle pricing application
and the account management system are coupled by an interface that implements a request-response
protocol. The bundle pricing application can request account/transaction data from
the account management system that it requires to apply the condition and/or result
rules to a given mater contract or set of scheduled master contracts. The account
management system responds with the requested data via the interface.
[0016] In accordance with another embodiment of the invention a graphical user interface
is provided for selecting condition attributes and result attributes for a customer
master contract. This facilitates the registration of a new customer. After a certain
set of accounts has been opened, the bank clerk can select one or more condition attributes
for each of the accounts and/or one or more result attributes depending on the agreement
with the customer. This provides a high degree of flexibility for the bundle pricing
of the set of accounts.
[0017] In another aspect the invention provides a method of bundle pricing comprising:
- storage of sets of account identifiers, at least some of the account identifiers having
assigned thereto a condition attribute of a predefined set of condition attributes
and a result attribute of a predefined set of result attributes,
- storage of a condition rule and a condition value for each condition attribute of
the predefined set of condition attributes,
- storage of a result rule and a result value for each result attribute of the predefined
set of result attributes,
- determining the sub-set of one of the sets of account identifiers having a common
condition attribute of the predefined set of condition attributes,
- determining if the sub-set fulfils the condition rule of the common condition attribute,
when applied with the respective condition value,
- calculating a result for each account identifier of the sub-set, if the sub-set fulfils
the condition rule, by applying the respective result rule with the result value,
wherein each set of account identifiers defines a bundle of services, and
wherein the calculated results serve for pricing of the bundle.
[0018] In accordance with an embodiment of the invention the bundle comprises financial
and/or bank services.
[0019] In accordance with an embodiment of the invention the bundle comprises telecommunication
services.
[0020] In accordance with an embodiment of the invention at least one of the account identifiers
belongs to a loyalty points account.
[0021] In accordance with an embodiment of the invention at least one of the account identifiers
belongs to a pre-paid account.
[0022] In still another aspect the invention relates to a computer program product comprising
computer executable instructions for performing a method of bundle pricing.
Brief description of the drawings
[0023] In the following embodiments of the invention will be described by way of example
only making reference to the drawings in which:
- Figure 1
- is a block diagram of a first embodiment of a data processing system,
- Figure 2
- is a block diagram of a second embodiment of a data processing system,
- Figure 3
- is a flowchart illustrating an embodiment of a data processing method,
- Figure 4
- schematically shows a window for entry of master contract data and selection of condition
and result attributes.
Detailed description
[0024] Fig. 1 shows a data processing system 100 that has a database 102 for storage of
master data, such as master contract data. The database 102 can be implemented as
a single database or as a distributed database. In the embodiment considered here
the database 102 serves for storage of master contract data i for each customer i,
where 1 ≤ I ≤ I. The number of master contracts and customers I can be as large as
several thousands or even millions such as in the case for large retail banks or telecommunication
operators or service providers.
[0025] The master contract data i that describes the master contract i of a customer i contains
a set of account identifiers, i.e. account numbers, a
i1, a
i2, ... a
ij, ..., a
ij. The number of accounts J of the master contracts i is typically 1, 2 or more. For
example, the customer i has a deposit account a
i1, a current account a
i2, a stock depot a
i3 and an account a
i4 for collecting customer loyalty points or 'miles' under a miles-and-more like customer
loyalty scheme.
[0026] At least some of the account identifiers of the master contract data i have assigned
a respective set of condition attributes. For example, the account identifier a
ij has assigned the set of condition attributes CAS
ij which contains a sub-set of the condition attributes CA
1, CA
2, ..., CA
m ..., CAM, where M is the total number of the predefined condition attributes. Likewise
a set of result attributes can be assigned to one or more of the account identifiers
of the master contract data i. For example, a set of result attributes RAS
ij is assigned to the account identifier a
ij. The set of result attributes RAS
ij contains a sub-set of the complete set of predefined result attributes RA
1, RA
2, ..., RA
n, ..., RA
N.
[0027] In addition, a timer data value 104 can be stored with the master contract data i
for the purpose of scheduling the master contract data i for processing at certain
periodic time intervals, such as daily, weekly, monthly or yearly.
[0028] The data processing system 100 has a storage 106 for storing of billing customizing
data. The billing customizing data contains a table 108 for storing the predefined
set of condition attributes. Each condition attribute has an assigned condition value.
For example, the condition attribute CA
1 has the assigned condition value A; the condition attribute CA
m has the assigned condition value B; and the condition attribute CAM has the assigned
condition value C.
[0029] The billing customizing data further contains a table 110 for storing the set of
predefined result attributes and their respective result values. For example the result
attribute RA
1 has the result value X; the result attribute RA
n has the result value Y; and the result attribute RA
N has the result value Z.
[0030] Further, the billing customizing data 106 has a table 112 for storage a set of condition
rules C
1, ..., C
m, ... C
M for the respect conditions. Likewise, a table 114 of the billing customizing data
serves for storage of result rules R
1, ..., R
n, ... R
N.
[0031] In other words, an arbitrary condition m is constituted by the condition rule C
m stored in the table 112 together with the condition value B of the respective condition
attribute CA
m stored in the table 108. Likewise a result is obtained by applying one of the result
rules R
n stored in the table 114 together with the result value Y of the respective result
attribute RA
n.
[0032] It is important to note that the data volume of the billing customizing data stored
in the storage 106 is very limited in comparison to the size of the database 102.
[0033] The data processing system 100 has a bundle pricing application program 116 for bundle
pricing of the account bundles defined by the master contract data stored in the database
102. The bundle pricing application program 116 has a scheduler 118 for scheduling
the processing of one or more master contract data i.
[0034] For example, the scheduler 118 determines the master contract data i of database
102 that is due or overdue for processing using the timer data value 104 as a selection
criterion. This results in a batch of master contract data i that can be processed
as a batch job.
[0035] The bundle pricing application program 116 has a program module 120 for determining
a sub-set of the account identifiers contained in master contract data i that have
a common condition attribute. Such a sub-set is further examined by means of the program
module 122 which applies the respective condition of the common condition attribute
as defined in the billing customizing data stored in storage 106 to the sub-set. If
the sub-set fulfils the respective condition the program module 124 is invoked which
determines the respective result for each of the account identifiers of the sub-set.
[0036] The data processing system 100 has an account management system 126 for keeping the
accounts of the customers. This is done by means of a database 128 that stores the
account data and/or transaction data for all accounts of all customers. Again, the
database 128 can be a central database or a distributed database.
[0037] In the embodiment considered here the account management system 126 has a program
module 130 that serves for billing default fees for a certain number of services,
such as account maintenance, inter-account transfers, debit orders, electronic account
payments, cash withdrawals, interest rates, etc. These default fees do not take into
account special bundle pricing rebates as such rebates are determined by the bundle
pricing application program 116 in the preferred embodiment considered here.
[0038] In operation various services are provided for the customer i by means of his or
her accounts a
i1, a
ij, a
ij. The program module 130 determines the default fees incurred for providing the various
services, such as account maintenance fees, transaction fees, cash withdrawals from
automatic teller machines, purchase or sale of stock, etc.
[0039] For the purpose of bundle pricing of the services provided to the customers, the
bundle pricing application program 116 starts its scheduler 118 in order to identify
master contract data i in the database 102 that are due or overdue for bundle pricing
processing. For example, the scheduler 118 is started on each business day in order
to find those master contract data i in the database 102 that have a timer data value
104 that matches the current date. As a consequence, the scheduler 118 identifies
a batch of master contract data i that is due or overdue for bundle pricing processing.
[0040] The program module 120 is started for the batch processing. The program module 120
checks each master contract data i for the presence of account identifiers within
the given master contract data i that have a common condition attribute. For those
account identifiers that have a common condition attribute the program module 122
is used in order to apply the respective condition of the common condition attribute
as defined in the billing customizing data stored in storage 106. If the sub-set of
account identifiers of the master contract i fulfils the condition of the common condition
attribute, the program module 124 is used to determine the respective results for
the account identifiers of the sub-set. This is done by using the result rules and
result values stored in the billing customizing data.
[0041] For testing the condition of the common condition attribute the program module 122
generates a request 132 that identifies the master contract data i and thus the customers
i of the batch job to be processed. The account management system 126 generates a
response 134 which contains respective account and/or transaction data of the customers
identified in the request 132. This account and/or transaction data forms the basis
for testing the condition by the program module 122.
[0042] The results that are determined by the program module 124 for one of the master contract
data i are summed up which provides a credit value. The program module 124 generates
a request 136 in order to request that the credit value be credited to the respective
customer i to one of the customer's accounts by the account management system 126.
[0043] In order to reduce the amount of account/transaction data that needs to be transmitted
from the account management system 126 to the bundle pricing application 116 upon
the request 132, the request 132 can specify the kind of account/transaction data
that is required with a finer level of granularity. This can be accomplished by assigning
request categories to the condition rules or condition attributes and/or the result
rules or result attributes stored in storage 106. Each request category specifies
a certain kind of account/transaction information that is required to apply the respective
condition and/or result rule. The request 132 can indicate the request categories
in order to limit the data volume returned by the response 134. An interface that
implements a request-response protocol such as http can be used to couple the bundle
pricing application and the account management system.
[0044] Fig. 2 shows an alternative embodiment. Elements of Fig. 2 that correspond to elements
in the embodiment of Fig. 1 are designated using like reference numerals.
[0045] In the embodiment of Fig. 2 the account management system 226 does not charge the
default fees. The account management system 226 has a counter program module 238 that
serves to generate a history log 240 for each customer i. For example, the history
log 240 of customer i contains a table with various transaction types and respective
counter values. For example, the customer i has performed a number of 10 wire transfers,
15 cash withdrawals from an automatic teller machine (ATM) and 5 stock purchases during
the current month.
[0046] In response to the request 232, the response 234 provides the history logs of the
customers identified by the request 232 to the bundle pricing application. The bundle
pricing application calculates the respective default fees for each customer i and
subtracts any rebates that are determined by the program module 224. The resultant
charges for the customers are sent to the account management system 226 by means of
request 236.
[0047] The data processing system 200 can be coupled to various client devices via a network
242, such as personal computers 244, 246, 248, and/or mobile telephones 250, and/or
telephones 252.
[0048] For example, the personal computer 244 is used by an administrator for administration
of the billing customizing data stored in storage 206. The administrator has the user
rights that are required in order to view and modify the billing customizing data
206. It is important to note that a modification of the billing customizing data does
not require any change of the content of the database 202.
[0049] For example, the personal computers 246, 248, belong to customers that can use these
computers for the purpose of online banking or to bank clerks. Likewise the mobile
phones 250 and telephones 252 can be used for telephone banking.
[0050] Alternatively the data processing system 200 belongs to a telecommunication services
provider, such as the operator of a telecommunications network. In this instance the
customer i can have a number of accounts for telecommunication fees, such as a post-paid
account, a pre-paid account and an account for charging data downloads.
[0051] As in the embodiment of Fig. 1, the request 232 can specify the required information
for applying the condition and/or result rules with a finer level of granularity.
For example, the request 232 can specify the transaction types for which the counter
values are required from the table 240 for processing of the condition and/or result
rules with respect to a scheduled master contract. This can be accomplished by request
categories assigned to condition and/or result rules or attributes in the storage
206 where each request category specifies certain transaction types for which the
counter values are required.
[0052] Fig. 3 shows a flowchart illustrating a preferred mode of operation of the data processing
systems of Fig. 1 and 2. In step 300 the scheduler schedules a batch of master contracts
that are due or overdue for processing. In step 302 account/transaction data, such
as a history log, is requested from the account management system for the batch of
scheduled master contracts.
[0053] In the following step 304 the batch of scheduled master contracts is processed. For
each scheduled master contract i the step 306 is carried out. For each condition attribute
CA
m the following steps are performed as sub-steps of step 306 for a given scheduled
master contract i starting with m=1:
In step 308 the sub-set of accounts contained in the currently processed master contract
i that have the common condition attribute CAm is determined, if there is such a sub-set. If such a sub-set of accounts can be determined
in step 308 the step 310 is performed where the condition of the common condition
attribute CAm is tested on the sub-set. If the condition is not fulfilled, a default fee can be
charged as a result, depending on the implementation. If the contrary is true the
step 312 is carried out.
In step 312 the sub-step 314 is carried out for each account of the sub-set determined
in step 308. In step 314 the result is determined for the currently processed account
of the currently processed scheduled master contract in accordance with the applicable
result rules and result values as identified by the one or more result attributes
assigned to the currently processed account by the master contract data i. The result
or the results, if there is more than one result for the currently processed account,
can be charged to the account as an alternative to the default fee. Alternatively
the default fee is charged in any case but the result is a credit or debit which is
credited or debited to the customer.
[0054] Preferably the kind of account/transaction data that is required for steps 310 and
314 is specified in the request of step 302. This can be done by defining categories
of the account/transaction data and to indicate those categories which are required
for the bundle pricing of a given master contract.
[0055] Fig. 4 shows a window 400 that is displayed on the monitor of a bank clerk for entry
of a new master contract. The window 400 has a data entry portion 402 that includes
data entry fields 404 and 406 for entry of personal data of the new customer, such
as name and address, and a data entry matrix 408 for the setting of condition and
result attributes.
[0056] Further, the window 400 has a legend portion 410 that contains a legend 412 for the
condition attributes and a legend 414 for the result attributes.
[0057] The window 400 has a save button 416 for uploading of the new master contract data
to the data processing system, e.g. the database 102 or 202 (cf. Fig. 1 and 2).
[0058] In the preferred embodiment considered here there is a predefined set of condition
attributes 1, 2, 3, 4 and 5 that are assigned to respective condition rules. In accordance
with the condition rule 'MaxCombBalance' that is assigned to the condition attribute
1 the maximum combined balances of the accounts of the customer that have the condition
attribute 1 is determined. If the maximum combined balances of the accounts exceeds
the respective condition value stored in the billing customizing data for that condition
rule, the condition is fulfilled.
[0059] Likewise, the condition rule of condition attribute 2 'MinCombBalance' relates to
a minimum combined balance of the accounts of the customer that have the condition
attribute 2. The condition rule 'MinCombBalance' is fulfilled if the minimum combined
balance does not exceed the respective condition value.
[0060] Likewise the condition rule 'MinCombBalance CASH DEPOSIT' relates to the minimum
combined balances but only as far as cash deposit is concerned, the condition rule
'AverageBalance' relates to the average balance of the accounts that have condition
attribute 4. The condition 'AverageBalance' is fulfilled if the average balance of
the
[0061] accounts that have condition attribute 4 exceeds the respective threshold value.
The condition rule 'MaxCombounter' relates to the cash withdrawn from automatic teller
machines. If this exceeds the threshold value given by the respective condition value
as far as the accounts that have the condition attribute 5 are concerned, the condition
is fulfilled.
[0062] In the preferred embodiment considered here the predefined set of result attributes
contains the result attributes 1, 2, 3 and 4. The result attribute 1 is assigned to
the result rule 'reduce maintenance fee'. If the account to which the result attribute
1 is assigned meets a condition, the account maintenance fee is reduced by the result
value of the result rule given in the billing customizing data. Likewise there are
result rules for reducing the counter fee, i.e. the fee per posting, reduction of
the customer's rating and reduction of the credit interest the customer needs to pay
if he or she overdraws his or her account.
[0063] In the example considered here the new customer has opened a deposit account, a current
account, a stock depot and loyalty points account. By clicking on the data entry matrix
408 the bank clerk can enter check marks for selection of condition attributes and
result attributes as shown in Fig. 4.
List of Reference Numerals
[0064]
- 100
- Data processing system
- 102
- Database
- 104
- Timer data value
- 106
- Storage
- 108
- Table
- 110
- Table
- 112
- Table
- 114
- Table
- 116
- Bundle pricing application program
- 118
- Scheduler
- 120
- Program module
- 122
- Program module
- 124
- Program module
- 126
- Account management system
- 128
- Database
- 130
- Program module
- 132
- Request
- 134
- Response
- 136
- Request
- 200
- Data processing system
- 202
- Database
- 204
- Timer data value
- 206
- Storage
- 208
- Table
- 210
- Table
- 212
- Table
- 214
- Table
- 216
- Bundle pricing application program
- 218
- Scheduler
- 220
- Program module
- 222
- Program module
- 224
- Program module
- 226
- Account management system
- 228
- Database
- 230
- Program module
- 232
- Request
- 234
- Response
- 236
- Request
- 238
- Counter program module
- 240
- History log
- 242
- Network
- 244
- Personal computer
- 246
- Personal computer
- 248
- Personal computer
- 250
- Mobile phone
- 252
- Telephone
- 400
- Window
- 402
- Data entry portion
- 404
- Data entry field
- 406
- Data entry field
- 408
- Data entry matrix
- 410
- Legend portion
- 412
- Legend
- 414
- Legend
- 416
- Safe button
1. A data processing system comprising:
- first storage means (102; 202) for storage of sets of account identifiers, at least
some of the account identifiers having assigned thereto a condition attribute of a
predefined set of condition attributes and a result attribute of a predefined set
of result attributes,
- second storage means (106; 206) for storage of a condition rule and a condition
value for each condition attribute of the predefined set of condition attributes and
for storage of a result rule and a result value for each result attribute of the predefined
set of result attributes,
- first program means (120; 220) for determining a sub-set of one of the sets of account
identifiers having a common condition attribute,
- second program means (122; 222) for determining if the sub-set fulfils the condition
rule of the common condition attribute when applied with the respective condition
value,
- third program means (124; 224) for calculating the result for each account identifier
of the sub-set, if the sub-set fulfils the condition rule, by applying the respective
result rule with the result value.
2. The data processing system of claim 1, each of the sets of account identifiers being
related to master contract data.
3. The data processing system of claim 1 or 2, at least some of the sets of account identifiers
having assigned thereto a timer data value (104; 204), and further comprising a scheduler
(118; 218) for identification of sets of account identifiers for which the respective
timer values indicate that processing is due, and for processing the identified sets
of account identifiers as a batch job.
4. The data processing system of claim 1, 2 or 3, further comprising an account management
system (126; 226) for keeping the accounts identified by the account identifiers,
the account management system being coupled to the third program means.
5. Data processing system of claim 4, the account management system having a billing
component (130) for charging default fees, wherein the result calculated by the third
program means is credited to the respective account.
6. The data processing system of any one of the preceding claims, the second storage
means being accessible for modification of the condition rules, condition values,
result rules and result values by an administrator (244).
7. The data processing system of any one of the preceding claims, further comprising
a graphical user interface (400) for setting at least one of the condition attributes
and at least one of the result attributes for each account identifier of one of the
sets of account identifiers.
8. The data processing system of any one of the preceding claims, wherein the condition
value and/or the result value is an absolute value or a percentage value.
9. The data processing system of any one of the preceding claims, the predefined set
of condition attributes comprising a first condition attribute having a first condition
value, the first condition value defining a threshold value, the second program means
being adapted to aggregate the balances of the accounts identified by the account
identifiers of the sub-set that have the first condition attribute and to compare
the aggregated balance with the threshold value defined by the first condition value.
10. A data processing method comprising:
- storage of sets of account identifiers, at least some of the account identifiers
having assigned thereto a condition attribute of a predefined set of condition attributes
and a result attribute of a predefined set of result attributes,
- storage of a condition rule and a condition value for each condition attribute of
the predefined set of condition attributes,
- storage of a result rule and a result value for each result attribute of the predefined
set of result attributes,
- determining a sub-set of one of the sets of account identifiers having a common
condition attribute of the predefined set of condition attributes,
- determining if the sub-set fulfils the condition rule of the common condition attribute
when applied with the respective condition value,
- calculating a result for each account identifier of the sub-set, if the sub-set
fulfils the condition rule, by applying the respective result rule with the result
value, if a result attribute is assigned to the respective account identifier.
11. The method of claim 10, further comprising:
- scheduling a plurality of the sets of account identifiers that are due for processing,
- processing the plurality of the sets of account identifiers as a batch job.
12. The method of claim 10 or 11, further comprising receiving account and/or transaction
data from an account management system (126; 226) for application of the condition
rules with the respective condition values and the result rules with the respective
result values.
13. The method of any one of the preceding claims 10 to 12, further comprising storage
a new condition value and/or a new result value in the second storage means while
leaving the content of the first storage means unaffected.
14. The method of any one of the preceding claims 10 to 13, further comprising:
- entering master data for a customer master contract, the master data comprising
a set of account identifiers,
- setting at least one of the condition attributes and at least one of the result
attributes for at least one of the account identifiers of the set.
15. A computer program product comprising computer executable instructions for performing
a method in accordance with any one of the preceding claims 10 to 14.