A decision model allows you to apply predefined rules and criteria to evaluate loan applications efficiently. For instance, it can automatically decline applications that don’t meet minimum income or age requirements, while instantly approving those that meet all criteria. This not only speeds up the approval process but also ensures fairness and consistency across all decisions, helping you manage risk more effectively and scale operations with confidence.
Types of decision model
This section gives you a clear view of the available decision model modules so you can better understand how your lending decisions are currently being handled.
The available decision model settings (aka modules or services) are as follows:
Module | Status | Description | Model Settings Configuration | Sample JSON Payload/snippet | |
---|---|---|---|---|---|
1 | Karma | REQUIRED | Typically and advisably the first module in the sequence. Checks against the Karma engine. If a user is flagged, they are deemed ineligible. Fields that are checked include BVN, email, phone number etc.continue_on_failure should be false for this module. | 1... 2 "karma": { 3 "required": true, 4 "sequence": 1, 5 "continue_on_failure": false 6 }, 7... | 1{ 2 "id": 1, 3 "version_id": 1, 4 "decision_model_id": 1, 5 "decision_type": "karma", 6 "setting": { 7 "check_IP": { 8 "value": false 9 }, 10 "check_bvn": { 11 "value": true 12 },... |
2 | Whitelist | OPTIONAL | This checks if the user has been whitelisted if so, the whitelist offer is immediately presented to them. All other checks are bypassed.continue_on_failure is always true as most users will not be whitelisted. | 1... 2 "whitelist": { 3 "required": true, 4 "sequence": 2, 5 "offer_on_success": true, 6 "continue_on_failure": true 7 }, 8... | 1{ 2 "id": 2, 3 "version_id": 0, 4 "decision_model_id": 1, 5 "decision_type": "whitelist", 6 "setting": {} 7} |
3 | Ecosystem | REQUIRED | The ecosystem module is another Lendsqr internal check. It checks a user against various fields from all organisations housed on the Lendsqr ecosystem.Typical fields checked include past-due loans, running loans, delayed payments, age etc.continue_on_failure should be false.Please note that user data is not shared across organisations. | 1... 2"ecosystem": { 3 "required": true, 4 "sequence": 3, 5 "continue_on_failure": false 6 }, 7... | 1{ 2 "id": 5, 3 "version_id": 4, 4 "decision_model_id": 1, 5 "decision_type": "ecosystem", 6 "setting": { 7 "age": { 8 "type": "integer", 9 "description": "Age of the borrower", 10 "minimum": 23, 11 "maximum": 55 12 }, 13 "unique_phone_numbers": { 14 "type": "integer", 15 "description": "Number of unique phones", 16 "minimum": 0, 17 "maximum": 2 18 }, 19 "lenders": { 20 "type": "integer", 21 "description": "Lendsqr Apps that user has signed up to", 22 "minimum": 0, 23 "maximum": 5 24 },... |
4 | ML | OPTIONAL | Our ML model, predicts the outcome of a user’s loan using various user properties. It has an accuracy of about 80%.We implemented the ML module to provide lenders with insights. Hence, continue_on_failure is typically true. If a prediction is 2, it means the user will repay. If it is 5, it means the user will not repay. It also has a confidence score to rate the level of confidence in the prediction made. | 1... 2 "ml": { 3 "required": true, 4 "sequence": 4, 5 "continue_on_failure": true 6 }, 7... | 1{ 2 "id": 3, 3 "version_id": 1, 4 "decision_model_id": 1, 5 "decision_type": "ml", 6 "setting": { 7 "prediction": { 8 "type": "integer", 9 "maximum": 2, 10 "minimum": 2 11 }, 12 "confidence_score": { 13 "type": "integer", 14 "maximum": 100, 15 "minimum": 50 16 } 17 } 18} |
5 | Scoring | REQUIRED | Scoring is a subjective service that rates user attributes and collates the different ratings to form a credit score.This is very important in determining the eligibility of a user. Fields that are rated include age, gender, marital status, employment status, location etc.continue_on_failure is typically set to false for this module. | 1... 2 "scoring": { 3 "minimum": 50, 4 "required": true, 5 "sequence": 5, 6 "continue_on_failure": false 7 }, 8... | 1{ 2 "id": 4, 3 "version_id": 4, 4 "decision_model_id": 1, 5 "decision_type": "scoring", 6 "setting": { 7 "gender": { 8 "type": "string", 9 "weight": "10", 10 "attributes": [ 11 { 12 "key": "female", 13 "score": 10 14 }, 15 { 16 "key": "male", 17 "score": 5 18 } 19 ], 20 "description": "Gender", 21 "maximum_score": "10" 22 }, 23 "location": { 24 "type": "string", 25 "weight": "5", 26 "attributes": [ 27 { 28 "key": "Abia", 29 "score": 8 30 }, 31 { 32 "key": "Adamawa", 33 "score": 1 34 },... |
6 | Credit Bureau | OPTIONAL EXT. PROVIDER | The data used in the Credit Bureau module is sourced from one of the three Credit Bureaus in Nigeria (CRC, CreditRegistry or First Central).The fields checked include past-due loans, loan history, active loans etc.it is advisable to set the continue_on_failure is typically set to false for this module.contact support for more information | 1... 2 "credit_bureau": { 3 "provider": "CRC", 4 "required": false, 5 "sequence": 6, 6 "continue_on_failure": false 7 }, 8... | 1{ 2 "id": 169, 3 "version_id": 0, 4 "decision_model_id": 1, 5 "decision_type": "credit_bureau", 6 "setting": { 7 "loan_history": { 8 "type": "integer", 9 "description": "Number of loans ever gotten", 10 "minimum": 0, 11 "maximum": 100 12 }, 13 "past_due_loans": { 14 "type": "integer", 15 "description": "Number of loans past due", 16 "minimum": 0, 17 "maximum": 0 18 }, 19 "active_loans": { 20 "type": "integer", 21 "description": "Number of loans active and performing", 22 "minimum": 0, 23 "maximum": 1 24 }, 25 "last_reported_days": { 26 "type": "integer", 27 "description": "The number of days since the latest report", 28 "minimum": 0, 29 "maximum": 9999 30 } 31 } 32} |
7 | Balance | OPTIONAL EXT. PROVIDER | The data used in the Balance check is sourced from external providers that deliver Financial data for customers.This module are optional and continue_on_failure can be set to true.contact support for more information | 1... 2 "balance": { 3 "provider": "mono", 4 "required": true, 5 "sequence": 6, 6 "continue_on_failure": false 7 }, 8 ... | 1{ 2 "id": 80, 3 "version_id": 0, 4 "decision_model_id": 15, 5 "decision_type": "balance", 6 "setting": { 7 "balance": { 8 "type": "float", 9 "maximum": 99999999, 10 "minimum": 1000, 11 "description": "Balance on the borrower''s account" 12 } 13 } 14} |
8 | Statement | OPTIONAL EXT. PROVIDER | The data used in the Statement check is sourced from external providers that deliver Financial data for customers.This module are optional and continue_on_failure can be set to true.contact support for more information | 1... 2 "statement": { 3 "provider": "mono", 4 "required": true, 5 "sequence": 7, 6 "duration": 180, 7 "continue_on_failure": true 8 }, 9... | 1{ 2 "id": 82, 3 "version_id": 3, 4 "decision_model_id": 15, 5 "decision_type": "statement", 6 "setting": { 7 "days_in_debit": { 8 "type": "integer", 9 "maximum": 2, 10 "minimum": 0, 11 "description": "Number of days in which the account has been in debit" 12 },... |
9 | Income | OPTIONAL EXT. PROVIDER | The data used in the Income check is sourced from external providers that deliver Financial data for customers.This module are optional and continue_on_failure can be set to true.contact support for more information | 1... 2"income": { 3 "provider": "mono", 4 "required": true, 5 "sequence": 8, 6 "continue_on_failure": true 7 } 8... | 1{ 2 "id": 81, 3 "version_id": 3, 4 "decision_model_id": 15, 5 "decision_type": "income", 6 "setting": { 7 "income": { 8 "type": "float", 9 "maximum": 100000000, 10 "minimum": 50000, 11 "description": "Estimated income that the borrower's over a stated period" 12 } 13 } 14} |
10 | Loci | OPTIONAL | The data used in the Loci check is used to regulate the number of loans on individual lenders’ platformcontact support for more information | { "id": 260, "version_id": 7, "decision_model_id": 1, "decision_type": "loci", "setting": { "loan_requests": { "type": "integer", "description": "Total number of loan request made", "minimum": 0, "maximum": 150 }, |
For fields such as id
, version_id
, decision_model_id
, decision_type
and setting
please note that these are auto-generated and do not require modification. You can only tweak the values of the different variables checked within the settings.

Want to learn more about how our decision model works? Click here.
Also read: How we built Oraculi to help lenders make informed decision