MODIFYING RISK MODEL UTILITIES
In one example, a method for modifying a risk model utility is disclosed. The method includes executing, based on the one or more data objects, a selected risk model utility to generate a risk assessment score. Such execution may be by generating for display a risk model modification user interface to display multiple or plural risk model utilities. Each one of the risk model utilities includes logical risk expressions to generate the risk assessment score. Here, the logical risk expressions may be modifiable. The one or more data objects can store the selected risk model utility and any modifications of the logical risk expressions associated with the selected risk model utility.
Latest JPMorgan Chase Bank, N.A. Patents:
- METHOD AND SYSTEM FOR PROVIDING A PRIORITIZATION RECOMMENDATION FOR A SET OF TASKS
- METHOD AND SYSTEM FOR GENERATING KEYWORDS
- Systems and methods for connecting applications based on exchanged information
- Method and system for providing data quality capability within distributed data lakes
- SYSTEM AND METHOD FOR IMPLEMENTING A MODEL DRIVEN DATA PLATFORM WITH NO CODE OR LOW CODE DATA WAREHOUSE
Industry best practices along with financial regulations may mandate that financial institutions conduct financial risk assessments of all new and existing customers. An example of such a financial regulation is the GFCC (Global Financial Crimes Compliance) regulation. Another example is the AML (Anti-Money-Laundering/know-your-customer) regulation. Such financial regulations may include provisions that facilitate oversight of financial institutions and their customers/clients.
Examples of the disclosure will be rendered by reference to specific examples which are illustrated in the appended drawings. The drawings illustrate only particular examples of the disclosure and therefore are not to be considered to be limiting of their scope. The principles here are described and explained with additional specificity and detail through the use of the accompanying drawings.
A risk model/risk assessment model and its associated logic rules engine may be used to conduct financial risk assessments of new and existing customers. Specifically, the risk model can be used to determine a customer's overall score, a category-specific risk score, and whether the customer is a low, medium or high financial risk customer. Many such risk models often need to be updated for any number of reasons. The updates may be to account for changing geopolitical environments or changes in risk assessment rules or other unforeseen variables.
However, implementing a risk model update can be an arduous task because when any model update is implemented, a corresponding impact analysis of that update must also be performed. An impact analysis determines whether or not the updated logic rules will adversely impact any existing customer data. As an example, the updated risk model should not incorrectly classify a low financial risk customer as being high risk. This entire process, including the update and the corresponding impact analysis, can take many months to complete.
And even worse, if the impact analysis reveals an adverse impact, the entire update is discarded. The process is then restarted and repeated with the appropriate logic changes thus taking much longer.
Further, although the risk model changes are often business tasks, implementations of such changes are effectuated by software engineers and application developers. The business process owners must then wait on the developers to turn around the updates and redeployment. The turnaround time can be several weeks to a few months depending upon the software cycle and the workload of the application developers.
Accordingly, examples of the present disclosure address the foregoing by providing a method and computer program product for modifying a risk model utility. The method executes, based on one or more data objects, a selected risk model utility to generate a risk assessment score.
For some examples, the method executes the selected risk model utility by generating for display a risk model modification user interface that displays multiple (or plural) risk model utilities or representations thereof. The multiple risk model utilities may include logical risk expressions to generate the risk assessment scores. And the logical risk expressions are modifiable. For some examples, the logical risk expressions are plain English risk rules that involve of a combination of queries that return a true or false value. Consequently, users can easily and quickly edit the logical risk expression via the risk model modification user interface.
Execution of the selected risk model utility is further facilitated by using the one or more data objects to store the risk utility model and any modification of the logical risk expressions that are associated with the risk model utility. In this manner, elements of risk model utilities may quickly and easily edited by business users, and moreover, such business users need not have a software or coding background. Software engineers may also edit logical elements without hard coding resulting in much faster turnarounds when changes are made to risk model utilities. Changes to a selected risk model may be saved in editable data object files separate and apart from hard-coded software.
As implied by its name, database server 104 is a computing server that uses a database application, e.g., SQL (Structured Query Language), to manage data on one or more databases 106. The data management (by database server 104) may include storing, retrieving and authenticating end-user access to all of the data stored on database 106. Database 106 may also store customer records (of a financial entity, for example).
Application server 102 may include computing software or code to execute web or desktop applications for use by system 100. Application server 102 may also include runtime libraries and connectors to database 106. As shown, application server 102 may be behind a web server 108 (including a processor 109).
Web server 108 may be a combination of software and/or hardware that accepts HTTP requests initiated via a webpage 112. Any one of end user 120 and end user 128 may initiate communication via webpage 112 by making a request for a specific resource using HTTP. Then the web server 108 can respond with either the content of that resource or with an error message.
In one implementation, end user 128 may request via webpage 112 to add, edit or delete customer records; responsively, web server 108, in conjunction with application server 102 and database server 104, may fulfill the user request. Similarly, an administrator 124 may be tasked to implement risk model changes (via webpage 112 or other internal user interfaces within the enterprise data network).
As used in the present disclosure, a risk model is a list of risk rules that can be applied to a pool of customers to generate risk assessment scores. An example of such a risk rule is “V:politically-exposed=“Yes” OR V:client-country-codes in C:high-risk-countries.”
In
API 110 may be a set of communication protocols to receive user requests to analyze the impact of risk model changes on customers as will be further described below. Such requests may then be delivered to logic engine 114 for execution. Similarly, for some examples, API 110 may receive customer scoring requests from other applications and then deliver the customer scoring requests to logic engine 114 for execution.
As shown in
Specifically, for some examples, the present disclosure combines customer records into a customer data pool to achieve compression of large amounts of data and to facilitate the generation of risk assessment scores and the corresponding impact analysis. Here, a customer data pool, as used herein, is composed of values from across a plurality of customer records (e.g., R1, R2 . . . Nth of
Based on the above, a first customer data pool for above records may include the names: John Doe, Jane Doe, and Peter Doe. In other words, a customer data pool includes values from a row of a plurality of customer records. Another example of a customer data pool based on the above records may include the datapoints: doing-business-in-country=NZ; doing-business-in-country=CA; naic-code=441221; and doing-business-in-country=US. Further yet, another example of a customer data pool includes the values: naic-code=115112, naic-code=441221.
As further described below with reference to
In one implementation, the present disclosure achieves aggressive data compression resulting in a 100× (one hundred-fold) magnitude increase in data compression by restructuring customer records from a data structure where each customer record has its own individual dataset to a data structure where customer records are combined into a customer data pool.
Briefly, in operation, end user 128 may be an internal end user from a line of business (LOB) of a financial entity. End user 128 may desire a financial risk assessment score for a new customer. End user 128 begins by using webpage 112 to send a financial risk assessment score request to API 110 and web server 108.
In turn web server 108 and/or application server 102 may include one or more processors to cause the logic engine 114 to apply logic rules to the customer data pool (having restructured and compressed customer data) to generate a risk assessment score. Specifically, logic engine 114 may request the latest risk model from cloud storage 107. Logic engine 114 then uses the risk model to score the customer or collection of customers identified in the request.
End user 120 may also employ system 100 to view the impact of changes to risk models. End user 120 may send a request to view the impact of changes that have been made to a particular risk model by end user 120. System 100 receives the request and causes logic engine 114 to request the target customer pool from database 106. Logic engine 114 then applies logic rules based on the modified risk model to the customer data pool (having restructured compressed customer data) and then displays the impact change results to end user 120.
The impact change results might include the level of risk (high, medium or low) or a risk assessment score. Such a level of risk or risk assessment score may reveal that the change to the modified risk model has inadvertently misclassified a low risk customer into a higher risk category (for example). In such cases, end user 120 may discard the modified risk model and restart the risk model revision process. The impact change results may also include evaluations of the risk assessment rules used to score the customer records that may indicate the relative importance of each rule. Additionally, impact change results may be further summarized by their associated risk category.
In
The risk model 200 may include a list 210 interface that implements multiple rules such as rule 212. The rule 212 may itself be based on a logical combination of expressions 214 such as “domicile-country-code in [US, CA] AND (industry=[ ] OR money-service-business=Y) as in
Two additional keys, namely politically-exposed-person 310 and naic-code 314, also facilitate risk assessment of a customer. Here, politically-exposed-person 310 has a value N for “no” as shown at 312 and naic-code 314 has a value of 115112 as shown at 316. Note also that if customer 308 were operating in the motorcycle dealership industry (North American Industry Code (NAIC) 441221), object-oriented syntax 300 would include the following key (or datapoints or questions):
class DataPoint {(“naic-code”, “441221”).
To successfully execute the above lines of code, each and every customer record has its own customer 308 object, and its own data set. In other words, for each customer, all of the data including responses to the above questions are stored in a customer 308 object for the customer. As such, if a financial institution has 100 million customers, then 100 million customer objects are stored in memory so that memory consumption by the data structure is a substantial and sizeable 4 TB of memory. The data structure for such a syntax can be very unwieldy and inefficient.
Moreover, scoring 100 million customer objects in this manner takes about 21 days even though memory consumption is low because customers are scored one by one. This object-oriented syntax 300 can also be very inefficient, analyzing risk model impacts by scoring customers one by one and then aggregating the data.
Unlike the system of
Specifically, in
As noted above, in
The arrays A1, A2 . . . AN are all in the same order and also have the same length. Thus, it can be assumed that the first index of each of the arrays A1, A2 . . . AN is all the same customer. The second index is all the same customer, and so forth. As noted, the arrays are the same length. If there are 100 million customers in the first array A1, the next array A2 also has 100 million customers, and the ANth array has 100 million customers.
An aspect of the present disclosure is that each key (or question) K1, K2 . . . KN is respectively mapped to the data pool of each array A1, A2 . . . AN (as will be further discussed with reference to
For example, a typical question may be: which country are you doing business in? The corresponding answer may be a two-letter country code such as US, CA, NZ, etc. This format requires data storage of questions/responses for each customer. Data compression is facilitated by restructuring such a question to include the country code as follows: “doing-business-in-countries=US.” The answer can then be a 1 if a customer is doing business in the US or a 0 if they are not. Thus, the response for each one of 100 million customers (for example) can be represented by either a 1 or a 0. The result is an array of integers of 1s and 0s as shown in
Referring now to
K1[R11, R12 . . . R1N], K2[R21, R22 . . . R2N], . . . KN[RN1, RN2 . . . RNN], where
K1=“doing-business-in-countries=ZW,” R11=1, R12=1 and R1N=0;
K2=“politically-exposed-person=Y, R21=0, R22=1 and R2N=0;
K3=“naic-code=115112”, R31=1, R32=0 and R3N=1 and
KN=“doing-business-in-country=US, RN1=0, RN2=1 and RNN=1.
As can be seen, the plurality of keys K1, K2, K3 . . . KN are questions, and the data pool values are corresponding Boolean responses to the questions. Thus, for key (question) K1 “doing-business-in-countries=ZW,” the response “1” indicates that the customer does business in ZW while a “0” indicates that the customer does not do business in ZW. As another example, for key (question) K3 “naic-code=115112,” a “1” indicates that customer operates in the agriculture industry, and a “0” indicates that customer does not operate in that industry. In this manner, responses are compressed into BitSet of 1s and 0s such that for 100 million customers for example, a data compression goes from 4 TB for the syntax of
Moreover, the restructured data format also plays a role in latency. Because the present data has been compressed into an array of 1s and 0s, questions can be answered quickly sometimes in as little as 5 milliseconds by applying a logical OR to each of the questions. For example, if the question that is answered is “Is the customer doing business in the US or CA or CN or NZ?” that answer can be recorded efficiently by taking doing a logical OR of the compressed array of 1's and 0's so that the result is either a 0 or a 1. The result is a fast, efficient risk assessment scoring and updating particularly for big data.
A logical risk expression may be a combination of risk queries joined by a Boolean operator. For some examples, the Boolean operator may be an AND. For other examples, the Boolean operator may be an OR. In another example, a logical risk expression is a combination of risk queries that can be linked using AND, OR, and grouped using parentheses “0.”
A risk rule contains some number of risk queries that produce a final, single output of an array of 0s and 1s. The risk rule also has a mapping of AML (Anti Money Laundering) Customer Type (e.g. FIB (bank), PHS (small business), etc.) to the number of points to assign to the customer if the output is true (value in array=1). Otherwise, the rule adds zero points because the output was false (value in array=0)
In the example of
Each risk query 408, 412, 416 may also be composed of an operation such as “=” 411. Although not shown, other examples of operations are “not in,” “in past X days.” Each risk query 408, 412, 416 may also be composed of a target such as “USA,” “MX” and “30 days” (now shown).
For some examples, a risk query may be a single-string query such as:
- V:some-variable=“target-1” |Does the customer's values for some-variable contain target-1?
For other examples, a risk query may be a multi-string query such as:
V:some-variable in [“target-1”, “target-2”] |Does the customer's values for some-variable contain target-1 or target-2?
For some examples, a risk query may be a date-query such as:
V:some-variable in past 7 days |Is the customer's value for some-variable in the past 7 days (including current date)?
Although examples of queries have been provided herein, other examples of queries may be used. For example, a risk query may be a rule-query such as:
R:some-existing-rule=True |When the customer was evaluated by the Risk Rule some-existing-rule, was the result true?
Note that the syntax for logical risk expression 400 may employ Boolean-logic (e.g. true AND false-->false), and the syntax may follow the order-of-operations for math so that risk queries inside parentheses are evaluated first. As can be seen, logical risk expression 400 involves the use of plain English rules such that the expressions are easily modifiable by a business user without a software development background.
For some examples, risk model user interface 502 can be used to enter plain English changes to the risk model/impact analysis platform 500. And an impact analysis corresponding to the risk model changes may be performed. The impact analysis results may then be presented as a graphical representation, such as bar charts 504.
The risk model user interface 502 will now be described with reference to
Referring to
As used here, the terms “risk model” and “risk model utility” represent a collection of logical risk expressions based on rules, components and/or customer risk factors with applicable points and weights for generating a risk assessment score to evaluate an entity. The entity may be an individual customer of a financial institution. As another example, the entity may be a business customer of an organization.
In the examples of
Referring now to
Here, as shown on the “Release Risk Model” webpage 800, the elements of a release risk model are customer risk factors 804 and components 806 collectively referred to as logical classifying elements. The other elements are variables 808, constants 810 and thresholds 812 that are used to form logical risk expressions.
For some examples, all of the elements are easily editable via “Release Risk Model” webpage 800. Once the Release Risk Model is edited, the logical element edits may be saved as data objects for communication to a backend engine for parsing and execution of the risk model to facilitate editing and expedite the turnaround time for risk model changes.
Referring now to
As another example, amlCustomerTypeCode 908 may take on the value IMM (Individual Mass Market) that indicates that a customer is an individual. A further example of variable 808 is assetCountryCode 910 (
Constants 810 (
Thresholds 812 (
Another element that is accessible via the “Release Risk Model” webpage 800 is components 806. As discussed below, components 806 are a tier above the rules, and they categorize the rules. Components 806 may include one or more rules that relate to similar attributes/transactions, etc., of a customer.
Here, the value of amlStrategicDeficiencyIndicator is editable by a user and may take on the value “Y” for yes or “N” for no. Such editable plain-English values adapt the present disclosure for use by both business users that have no software knowledge as well as software engineers/developers.
Referring now to
In use, as noted above, each of the above logical elements may be edited by business users, and such business users need not have a software or coding background. Moreover, software engineers may also edit logical elements without coding resulting in much faster turnarounds. Changes to a selected risk model may be saved via a save button (not shown). The changes may be saved to one or more data object files that can then be communicated to a backend engine for parsing and execution without the need to modify hard coded software to enter changes.
In
As used herein, risk items are the variables that an end user can use or reference to write risk queries. Examples are “domicile-country-code”, “politically-exposed-person”. The variable names are used as keys to lookup/query binary/compressed data discussed above. So, if a Risk Query is “domicile-country-code in [“US”, “CN”]”, the system retrieves the compressed arrays of 0s and 1s for the keys “domicile-country-code=“US””, and “domicile-country-code=“CN””, and performs a bitwise logical OR on the arrays, because the Risk Query should evaluate to True if the customer is living in the US or China.
Points may also be similarly assigned if the other rules 1410 are true. If rule 1410B is true, for example, 7 pts are assigned. If rule 1410C is true, the customer rating is set to auto-high. If rule 1410D is true, 150 pts are assigned to the customer; and if rule 1410E is true, 500 pts are assigned. Note here that for some examples, rules may automatically force a customer to be considered HIGH risk, no matter how many points they accumulate. In other examples, some rules may force a customer to automatically be considered LOW or MEDIUM risk regardless of their points.
The tier immediately above rules 1410 is occupied by components 1408. Components 1408 may group and then sum up those rules 1410 that are related. For example, component 1408A (PEP Customer) groups rule 1410A and the sum is 500 pts. Component 1408B (Money Service Business) groups together both of rules 1410B and 1410C. The sum of both rules is auto-high. Component 1408C (Expected Wire Activity above Threshold) may group rule 1410D for which the sum is 150 pts. And component 1408D (High Risk Nationality) may group rule 1410E for a sum of 500 pts.
The tier immediately above components 1408 is occupied by customer risk factors 1406. Here, customer risk factors 1406 categorize components 1408 and obtains the sum of all components associated with a particular customer risk factor. The sum is then weighted by weights 1407 to control the relative importance of each customer risk factor 1406.
Specifically, customer risk factor 1406A categorizes components that relate to customer attributes including component 1408A that relates to a PEP (politically exposed persons) customer and component 1408B that relates to a money service business. The sum of component 1408A and component 14088 is then weighted by 35% as shown.
Customer risk factor 14068 categorizes components that relate to transactions: expected activity including component 1408C that relates to expected wire activity above a threshold. The sum resulting from component 1408C is weighted by 20%.
Customer risk factor 1406C categories components according to a customer's geography including component 1408D relating to whether the customer has a high risk nationality. As shown, the resulting sum from component 1408D is weighted by 15%. The total risk score 1404 is the sum of the customer risk factors 1406A, 1406B and 1406C each multiplied by its applicable weight.
In an example operation, assume that a customer triggers rule 1410A, 14108, 1410D and 1410E so that the rules are true. Then the score for component 1408A is 500 pts based on rule 1410A, the score for component 1408B is 7 pts based on rule 14108 and 1410C (not true), the score for component 1408C is 150 pts based on rule 1410D and the score for component 1408D is 500 pts based on rule 1410E.
Thus, the customer risk factor 1406A score is 500 pts+7 pts based on components 1408A and 1408B. This score is then weighted by 35% for a total of 177.45 pts. The customer risk factor 1406B score is 150 pts based on component 1408C, this score is then weighted by 20% for a total of 30 pts. And the customer risk factor 1406C score is 500 pts based on component 1408D. This score is weighted by 15% for a total of 75 pts. Thus, the total risk score 1404 for the customer is 177.45 pts+30 pts+75 pts=282.5 pts.
Parsing/Compiling Risk Expressions
The structure below illustrates an example data object structure of a Risk Model. Although the structure is illustrated in JSON, any comparable data format may be utilized.
The Risk Model name and version are used to create a new RiskModelId class (value object, no behavior). For each Risk Item in the list, a new RiskItem class object (value object, has no behavior) is created. For each Risk Parameter in the list, a new RiskParameter class object (value object, has no behavior) is created. Here, Risk Parameters are constants that can be referenced in risk queries, for example, in “doing-business-in-country-code in C:high-risk-country-codes,” the values of the constant C (i.e. high-risk-country-codes) can be edited through the user interface, and users can remove or add new constants as well.
For each Customer Risk Factor in the list, a new CustomerRiskFactor class object (value object, has no behavior) is created. For each Risk Component in the list, a new RiskComponent class object (value object, has no behavior) is created. For each Risk Rule in the Risk Component's list of rules: a new RiskRule class object (has behavior, like ‘BitSet evaluate(CustomerPool) { . . . }’) is created. Risk Queries are parsed here, and an error is thrown if the syntax is invalid.
For each Risk Rating in the list, a new RiskRating class object (value object, has no behavior) is created. Finally, a new RiskModel class object (has behavior) is created and the following are passed to it:
The RiskModel object then validates that: There are no duplicate Risk Items, Risk Parameters, Customer Risk Factors, Risk Components, Risk Rules, or Risk Ratings. The Risk Items (variables), Risk Parameters (constants), and Risk Rules referenced by Risk Queries are all present in the RiskModel object. The Customer Risk Factor weights and Risk Rating thresholds are found for all customer types. The RiskModel object may then be used to score and analyze Customer Pools.
The structure below illustrates an example data object structure of a Customer Risk Factor. Although the structure is illustrated in JSON, any comparable data format may be utilized.
The operation begins at block 1502, wherein method 1500 executes, based on one or more data objects (such as a JSON file), a selected risk model utility 602 (
At block 1504, the executing may be by: generating for display a risk model modification user interface “Select a Risk Model to Edit” webpage 600 (
At block 1506, executing of the selected risk model utility 602 may also be by using the one or more data objects to store the selected one 602 of the plurality of risk model utilities 602, 604, 606, 608 and modifications of the logical risk expressions 400 associated with the selected risk model utility 602.
In an example, method 1500 may include one or more logical classifying elements 804, 806 (
Code instructions 1602 may cause processor 109 (
Code instructions 1604 cause the processor 109 to use the one or more data objects having the logical risk expressions 400 and the logical classifying elements 804, 806 associated with the risk model utility 602 to generate a risk assessment score 1404 (
The present disclosure may employ a software stack to enlist the underlying tools, frameworks, and libraries used to build and run example applications of the present disclosure. Such a software stack may include PHP, React, Cassandra, Hadoop, Swift, etc. The software stack may include both frontend and backend technologies including programming languages, web frameworks servers, and operating systems. The frontend may include JavaScript, HTML, CSS, and UI frameworks and libraries. In one example, a MEAN (MongoDB, Express.js, AngularJS, and Node.js) stack may be employed. In another example, a LAMP (Linux, Apache, MySQL, and PHP) stack may be utilized.
Any suitable programming language can be used to implement the routines of particular examples including Java, Python, JavaScript, C, C++, assembly language, etc. Different programming techniques can be employed such as procedural or object oriented. The routines may execute on specialized processors.
The specialized processor may include memory to store a set of instructions. The instructions may be either permanently or temporarily stored in the memory or memories of the processing machine. The processor executes the instructions that are stored in the memory or memories in order to process data. The set of instructions may include various instructions that perform a particular task or tasks, such as those tasks described above. Such a set of instructions for performing a particular task may be characterized as a software program.
As used in the description herein and throughout the claims that follow, “a”, “an”, and “the” include plural references unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.
While the above is a complete description of specific examples of the disclosure, additional examples are also possible. Thus, the above description should not be taken as limiting the scope of the disclosure which is defined by the appended claims along with their full scope of equivalents.
Claims
1. A method for modifying a risk model utility, the method comprising:
- executing, based on one or more data objects, a selected risk model utility to generate a risk assessment score, wherein said executing is by:
- generating for display a risk model modification user interface to display a plurality of risk model utilities or representations thereof, wherein each one of the plurality of risk model utilities includes one or more logical risk expressions to generate said risk assessment score, wherein each one of the logical risk expressions is modifiable; and
- using the one or more data objects to store the selected one of the plurality of risk model utilities and modifications of the logical risk expressions associated with the selected risk model utility.
2. The method of claim 1 wherein each logical risk expression is comprised of risk rules.
3. The method of claim 1 further comprising one or more logical classifying elements for generating said risk assessment score and wherein each one of the logical classifying elements is selectable for editing and storage in said one or more data objects.
4. The method of claim 2 wherein the risk rules are comprised of a combination of queries that return a true or false value and are based on Boolean logic.
5. The method of claim 3 wherein the logical classifying elements are comprised of components to categorize risk rules.
6. The method of claim 3 wherein the logical classifying elements are comprised of customer risk factors to categorize the components.
7. The method of claim 1 wherein a structure of the one or more data objects is based on JSON.
8. The method of claim 1 further comprising parsing the one or more data objects to execute the selected risk model utility.
9. The method of claim 1 further comprising, receiving from a website the one or more data objects for execution by a backend server.
10. A computer program product for modifying a risk model utility, the computer program product embodied in a non-transitory computer-readable storage medium embodied having stored thereon code instructions which, when executed by a processor, cause the processor to:
- execute a risk model utility associated with one or more logical risk expressions and one or more logical classifying elements, the logical risk expressions and logical classifying elements stored in one or more data objects; and
- use the one or more data objects having the logical risk expressions and the logical classifying elements associated with the risk model utility to generate a risk assessment score and wherein each one of the logical risk expressions and the logical classifying elements is selectable for editing and storage in the one or more data objects.
11. The computer program product of claim 10 further comprising generating for display a risk model modification user interface displaying a plurality of risk model utilities or representations thereof, wherein said risk model utility is selected from the plurality of risk model utilities.
12. The computer program product of claim 10 wherein the logical risk expression is based on a combination of variables and constants that return a true or false value.
13. The computer program product of claim 10 wherein the logical classifying elements include components which categorize risk rules to generate the risk assessment score.
14. The computer program product of claim 10 wherein the logical classifying elements are comprised of customer risk factors to apply weighted values to the risk assessment score.
15. The computer program product of claim 10 wherein the risk rules are comprised of a combination of queries that return a true or false value and are based on Boolean logic.
16. The computer program product of claim 10 further comprising causing the processor to: parse the one or more data objects to execute the selected risk model utility.
17. The computer program product of claim 10 further comprising causing the processor to: generate the risk assessment score based on a hierarchy.
18. The computer program product of claim 17 wherein the hierarchy is based on evaluating risk rules in a lower tier and then evaluating components on a higher tier.
19. The computer program product of claim 10 wherein the risk utility model is structured on a hierarchy having risk rules on a bottom tier, components on a middle tier and customer risk factors on a top tier.
Type: Application
Filed: Feb 23, 2022
Publication Date: Aug 24, 2023
Applicant: JPMorgan Chase Bank, N.A. (New York, NY)
Inventor: Logan MALLORY (Chicago, IL)
Application Number: 17/678,542