Custom credit models for US online lenders

A cash flow underwriting model
trained on your own loans

Built for online installment and payday lenders. Clairevue trains a custom scorecard on your loan history and your applicants’ bank transactions, with reasons for every decline. It runs inside your loan management system, and you own it. Proven in production with alternative lenders in Canada, and every engagement starts with a backtest on your own loans, so you see how it would have decided your past applications before it makes a live decision.

Proven on 10,000 to 20,000 applications a month of $500 to $1,500 loans, for alternative lenders in Canada. Built to scale beyond that.

Sample file · $750 installment loan

Rule-based ensemble
Debt pressure
3 active loan payments, 41.6% of income
High
Distress events
2 returned payments in the last 60 days
High
Free cash flow
$186.40 a month after obligations
Low
Payday behavior
$23.17 end of day balance on payday
Weak

Decision

Decline

Reasons for the adverse action notice

  1. 1Excessive obligations in relation to income
  2. 2Insufficient income
Illustrative file. Not real applicant data.

Custom credit scorecard development

A model that learns only from your own loans

Off the shelf cash flow scores are trained on data pooled across many lenders. Clairevue never pools: your model is trained only on your own data, which is never used for anyone else. Your book has its own products, pay cycles and repeat customers, and your scorecard starts from your approvals, your denials and what actually repaid.

Off the shelf score compared with a custom Clairevue model
QuestionOff the shelf scoreYour Clairevue model
Trained onPooled data from many lendersYour loan history and your applicants’ bank data
Who owns itThe vendorYou: the model, its code and its documentation
Why a file was declinedThe vendor’s generic reason listReasons tied to the factors your model actually used

Payday and small dollar installment loan underwriting

Cash flow underwriting proven on 10,000 to 20,000 applications a month

Proven with alternative lenders in Canada. The backtest results below come from several of them: private lenders that make loans of $500 to $1,500, in the payday and small dollar installment range, at volumes of 10,000 to 20,000 applications a month. The models ran at that volume in production and are built to scale beyond it. Smaller books work too. Both results below come from backtests on those lenders’ historical data.

Backtest · historically approved loans

No underwriting loss

We ran the model on loans these lenders had already approved. The loans it would have declined were, taken together, unprofitable, so declining them would not have cost the lenders any profit on that history.

Backtest · historically denied loans

Above 95% agreement

On loans these lenders had denied, the model also declined more than 95% of them.

Automated decisions · every hour of the week

Decisions 24/7, without hiring more underwriters

The model decides at night and on weekends, when no underwriter is on shift. You stop losing the weekend applicants who would not wait until Monday and took a loan elsewhere. And as your volume grows, the model handles the extra files, so you don’t need to hire more underwriters to keep up.

Where this was done. This work was for Canadian lenders, on Flinks bank data. Plaid and other US aggregators deliver the same kind of transaction data, so the method transfers. Our production models so far are Canadian, and results on those lenders’ own data do not predict results on yours. That is why every engagement starts with a backtest on your own data.

Your loan history already
shows who repays.
We turn it into
a model you own.

Two model types

Two ways to build it, chosen for your data

Both read the same bank data and both come with decline reasons. The difference is how much history you have and how you want scores explained.

Machine learning

A two-layer XGBoost credit risk model

A refusal model learns your historical approve and deny decisions. A default and profitability model learns from approved loans only, because those are the loans with repayment outcomes. Together they score each new application.

  • Layer 1: refusal model
  • Layer 2: default and profitability model
Best when
You have a solid loan history with known outcomes
Why pick it
Stability: it evolves smoothly as your data grows

Rule-based ensemble

An explainable credit scorecard from a team of algorithmic underwriters

Each underwriter reads the file from a different angle, and their views combine into one score. Every view maps to the adverse action reason codes you send on declines, so a decline points to the factor behind it.

  • Debt pressure
  • Distress events
  • Free cash flow
  • Payday behavior
Best when
You are early, or have little loan history
Why pick it
Explainability, and you can start before you have years of data

Bank transaction data underwriting

Underwriting that reads bank data down to the payday balance

The model reads the transactions your applicants already share through Plaid or any bank data feed. It was proven on Flinks, the Canadian equivalent of Plaid. We have built it two ways.

On your aggregator’s attributes

The quicker route. The model uses the fields your bank data provider already computes for each applicant.

On our own transaction categorization for underwriting

An LLM, regex rules and fuzzy matching sort every transaction. Then we build attributes your provider doesn’t give you, for example:

  • End of day balance on paydayhow much is left once pay lands
  • Stop payment on a prior loana past lender’s payment was stopped

How the engagement works

A fixed-scope build sprint of about 3 to 4 full-time weeks

About 3 to 4 weeks of full-time work, delivered over roughly 6 to 8 calendar weeks because of client back-and-forth. We agree the exact scope with you before we start.

  1. Review your data

    Loan history, decisions, repayments and the bank data you already collect. We choose the ML model or the rule-based ensemble with you.

  2. Build and backtest

    We build the scorecard and its decline reasons, then backtest it on your history so you can see how it would have decided your past applications.

  3. Hand off into your LMS

    We deliver the model into your loan management system, whether that is LoanPro, Infinity, LendSuite or your own stack, with documentation your team can run.

Day rate · full-time equivalent

$1,500 per day

  • Engagements are scoped to the work needed
  • About 3 to 4 weeks of full-time work, over roughly 6 to 8 calendar weeks
  • Exact scope set after an intro call

What a typical sprint covers

Build sprint · about 3 to 4 full-time weeks

  • Custom cash flow scorecard trained on your loans
  • Decline reasons you map to adverse action reason codes
  • Backtest on your own history
  • Handoff into your loan management system, including LoanPro scorecard integration
  • Optional monitoring after handoff: we watch how the model performs as new loans repay, and retrain or adjust when your data moves
  • First call needs no data
  • Scope agreed before we start
  • You own the model at the end

Who builds it

The person who builds your model

Karim Lahrichi, underwriting model consultant

Clairevue is a consulting firm in Montréal that builds data and AI systems. In lending, we have built cash flow scorecards for alternative lenders in Canada: both model families on this page, and a transaction categorizer written from scratch.

You work directly with the person who builds your model, from the first data review to the handoff.

  • Python
  • Postgres (Supabase, then Neon)
  • Fly.io, then Railway
  • XGBoost
  • Flinks

Karim Lahrichi · LinkedIn

Questions heads of credit ask

FAQ

ML vs rule-based underwriting: which should we choose?

ML (two-layer XGBoost) suits lenders with a solid history of approvals and repayments: it is stable and evolves smoothly as data grows. The rule-based ensemble suits lenders with little history, or who want every score explained factor by factor. Some lenders start rule-based and move to ML as data builds up. We recommend one after reviewing your data.

How is cash flow underwriting different from a credit bureau score?

A credit bureau score is shared across lenders: every lender who pulls it sees the same score for the same applicant.

A cash flow underwriting model from Clairevue is trained on your own loans and your applicants’ bank transactions, so it learns from your approvals, your denials and what actually repaid. Its decline reasons are specific to your book, because they trace to the factors your model actually used.

How much loan history do I need?

There is no fixed minimum. The ML model needs enough approved loans with known outcomes to learn from. With less history, the rule-based ensemble can start right away, because its underwriters encode credit logic instead of learning all of it from data. We give you a straight answer after the scoping call.

Does this work with Plaid?

Yes. The model works with Plaid or any bank data feed that provides transaction level data. Our production work used Flinks, the Canadian equivalent of Plaid, and Plaid provides the same kind of transactions and balances.

What data do you need from us?

Your historical applications and decisions, repayment outcomes for approved loans, and the bank transaction data or attributes captured at application. Nothing is needed for the first call.

How long does it take?

A typical build is about 3 to 4 weeks of full-time work, delivered over roughly 6 to 8 calendar weeks because of client back-and-forth. The exact timeline depends on how quickly your data can be exported and how your loan management system takes in a new score, and is set after an intro call.

What does a custom underwriting model cost?

Clairevue bills at $1,500 per full-time day. A typical build is about 3 to 4 weeks of full-time work, delivered over roughly 6 to 8 calendar weeks because of client back-and-forth. Exact scope is set after an intro call.

Will the model give adverse action reason codes?

The models are built to support explainable decline reasons: each decline traces to specific factors that you map to the reason codes on your adverse action notices.

Your compliance counsel should review the reasons and the notice process. We don’t provide legal advice or guarantee compliance.

Who owns the model?

You do. The model is trained on your data and delivered to you with its code and documentation.

Is our data used for other lenders?

No. We never pool data across lenders. Your model is trained only on your own loans and your applicants’ bank data, and your data is never used to train or improve a model for anyone else.

Does it work with LoanPro or our LMS?

Handoff into your loan management system is part of the sprint, whether you run LoanPro, Infinity, LendSuite or your own stack. On the scoping call we look at how your system takes in an external score.

Have you worked with US lenders?

Our production models were built for alternative lenders in Canada, and we are now taking on US lenders. The loan sizes and underwriting questions are the same kind US installment and payday lenders face, and Plaid supplies the same kind of transaction data. You don’t have to take that on faith: every engagement starts with a backtest on your own loan history, so you see how the model would have decided your past applications before it touches a live decision.

Find out which model
your data supports

On a short call we look at your volume, your loan products and the data you already collect. You leave knowing whether the ML model or the rule-based ensemble fits, and what a sprint would cover. You don’t need to send any data first.