Skip to main content

How the decisioning works

Reference page with details on our decisioning logic, fetching data, and coming to a decision

πŸš€ In this section, you will...​

  • Review the app's decisioning logic,
  • Understand how we fetch the required data,
  • See how the app makes a decision based on that data.

Review the app's decisioning logic​

Each lender usually has their own set of data points they use to review an application.

The loan qualification model we use as our example in the LoanUnderwriter service is a rules-based model that requires certain thresholds to be passed for gross profit margin, revenue, and gearing ratio. The threshold values for these data points are maintained in appsettings.json.

It also requires validated application details and the company's fully categorized accounts.

Gross profit margin uses Income.Operating values and Expense.CostOfSales values returned by Lending' profitAndLoss endpoint. It is calculated by subtracting the cost of sales from net sales and dividing the resulting gross profit by net sales. It is then expressed by a ratio and indicates a business’s profitability.

Its threshold is maintained as MinGrossProfitMargin in appsettings.json. In the demo app, the value is set to 0.4.

Understand how we generate an automatic decision​

Once the demo app fetches the data, it uses the results to calculate the data points we use in our loan qualification model: gross profit margin, revenue, and gearing ratio. In the loan qualification industry, there are other models and data points that can be used to make a decision. The selection depends on the needs of your business.

The LoanUnderwriter service then checks how these values compare to the thresholds set in the app:

  1. Gross profit margin must be more than MinGrossProfitMargin threshold set to 0.4,
  2. Revenue must exceed the RevenueThreshold set to 0.3, and
  3. Gearing ratio must be below the MaxGearingRatio threshold set to 0.5.

Only if all the thresholds are met or surpassed by the applicant, the app updates the loan request automatically with an Accepted status. Otherwise, the application is updated with a Rejected status. The app also caters for a scenario of programmatic errors that means a decision could not be made with a UnderwritingFailure status.

Access additional resources​

πŸ—οΈ You may want to enhance this simple working guide with some UI elements - why not use Link to seamlessly include our authorization journey into your app?

πŸ“Š If you are interested in loan qualification models used by lenders in the industry, you can read through Bigfoot Capital's blog on revenue-based finance or Workweek's article on unlocking loan qualification innovation.

🧠 See what else Codat recommends to build your loan qualification process effectively.

πŸ—£οΈ Anything unclear in this guide? Got feedback? We're working on a whole host of new content for you, so let us know.


In this reference section, you have learned and understood in detail the data points we chose for our loan qualification model, how we fetched the data used in the calculation of these data points, and how all of this influenced the decision on the loan made automatically.

Next, you can find out more about Lending API, or explore other use cases.

Was this page useful?