Beyond Default Prediction: Building a Credit Risk Decision Engine for Approval, Pricing, and Limit Strategy
Introduction
Credit risk modelling is often framed as a prediction problem.
Given a borrower’s application data, can we predict whether they will default?
That question matters, but it is only the starting point. In a real lending business, the more important question is broader:
How should a lender approve, decline, price, and limit new applicants based on expected credit risk and profitability?
A model that predicts default but does not inform approval strategy, pricing, exposure limits, profitability, and portfolio risk appetite is incomplete from a business perspective. The real value of credit risk analytics is not just identifying risk. It is translating that risk into better lending decisions.
I recently completed an end-to-end credit risk decisioning project using LendingClub accepted and rejected loan data. The goal was not simply to build a probability of default model. The goal was to build a practical underwriting framework that connects credit risk modelling to approval decisions, risk-based pricing, credit limits, profitability, and policy guardrails.
The project covered probability of default modelling, calibration, WOE/IV scorecard development, expected loss analysis, profitability analysis, risk-based pricing, limit assignment, hard eligibility rules, and rejected applicant analysis.
This article walks through the project, the methodology, the key design decisions, and the lessons learned.
The Business Problem
A lender receives many loan applications and must make decisions before knowing which borrowers will repay. For each applicant, the lender needs to answer several connected questions:
- Should this applicant be approved or declined?
- Should the application go to manual review?
- What interest rate should the borrower receive?
- What loan amount or credit limit should be offered?
- Which segments are profitable after credit losses and costs?
- Which segments are too risky or underpriced?
- How should the lender treat previously rejected applicants?
These decisions are interconnected.
A borrower with a high probability of default may still be profitable if the loan is priced appropriately and the exposure is controlled. A low-risk borrower may be unprofitable if the loan is underpriced or too costly to serve. A simple score cut-off may be easy to implement, but it often fails to capture the economics of lending.
This project was built around one core idea:
Credit risk modelling should support credit policy design, not just default prediction.
Dataset and Scope
The project used LendingClub accepted and rejected loan data, focusing on loan cohorts issued between 2007 and 2014.
The accepted loan dataset contains applications that were approved and originated. These loans have observed repayment outcomes, which makes them suitable for supervised credit risk modelling. The accepted dataset includes borrower characteristics, loan terms, credit bureau variables, interest rates, loan status, recoveries, payments, and other performance-related fields.
The rejected loan dataset contains applications that were declined. It is useful because it provides visibility into the broader applicant funnel. However, rejected applicants do not have observed repayment outcomes. We do not know whether they would have repaid or defaulted if they had been approved.
That distinction shaped the project design.
Accepted loans were used for:
- Target definition
- Probability of default modelling
- Model validation
- Calibration analysis
- WOE/IV scorecard development
- Loss Given Default, expected loss, and profitability analysis
- Pricing and limit strategy
- Final policy engine development
Rejected loans were used for:
- Accepted vs rejected applicant comparison
- Scorable vs unscorable applicant analysis
- Reject-inference-style simulation using a common-feature model
The rejected applicant analysis was treated carefully. Since rejected applicants do not have repayment outcomes, that part of the project was not treated as validated default evidence. It was used for directional insight and policy review.
Target Definition
The modelling target was a binary default indicator created from accepted loan status.
Loans were classified as:
1 = Bad loan, for default-like outcomes such as charged-off or defaulted loans
0 = Good loan, for fully paid loans
Active or unresolved loans were excluded from the core modelling population because their final repayment outcome was not yet known.
This ensured that the PD model was trained only on loans with clear observed outcomes.
The target answers the core underwriting question:
At the time of application, how likely is this borrower to become a bad loan?
Feature Governance and Leakage Control
One of the most important parts of the project was feature governance.
A credit risk model should only use information that would be available at the time of underwriting. If a model uses information that is only known after origination, after repayment begins, or after default occurs, it may perform well in testing but fail as a real decisioning tool.
To avoid this, variables were grouped into categories:
- Application-time borrower and credit attributes
- LendingClub decision outputs
- Post-origination performance columns
- Target variables
- Identifiers and free-text columns
- Business metadata
Only application-time variables were used in the primary Probability of Default (PD)model.
Columns such as loan status, recoveries, total payments, principal received, interest received, and collection recovery fees were excluded from model training because they are only known after origination.
LendingClub’s grade, sub-grade, and interest rate were also excluded from the primary PD model. These are outputs of LendingClub’s own underwriting and pricing process. Including them would create decision leakage because the model would indirectly learn from a prior credit decision.
However, some of these fields were retained later as business metadata for profitability, pricing, and policy analysis.
This was a key design decision. The purpose of the model was to support new applicant decisions, not to learn from information that would not exist at the point of underwriting.
Feature Engineering
After leakage controls, application-time features were engineered to capture affordability, leverage, income capacity, credit utilization, and credit history.
These included variables such as:
- Loan-to-income ratio
- Installment-to-income ratio
- Revolving balance-to-income ratio
- Capped DTI
- Log-transformed income and loan amount
- FICO score
- Credit history length
- No-event flags for delinquency and public record variables
Caps and transformations were fitted using the training sample only to reduce leakage and make the process more realistic.
This step matters because financial variables are often skewed. Income, loan amount, balances, and ratios can contain extreme values. Caps and log transformations help reduce the influence of outliers and make the model more stable.
Train, Validation, and Test Split
The model was evaluated using an out-of-time split.
Rather than randomly splitting the data, earlier loan cohorts were used for training, a later period for validation, and the most recent period for testing.
This was important because credit models must generalize to future borrowers. Borrower mix, underwriting standards, pricing, macroeconomic conditions, and default rates can all shift over time.
An out-of-time split gives a more realistic view of how the model may perform on future originations.
Exploratory analysis confirmed that default rates and borrower characteristics varied across vintages. This reinforced the need for out-of-time validation, calibration checks, and ongoing monitoring.
Probability of Default Model Development
Get Ugwu Chukwuemeka’s stories in your inbox
Join Medium for free to get updates from this writer.
Several models were built and compared:
- Baseline logistic regression
- Class-weighted logistic regression
- Tuned logistic regression
- Gradient boosting challenger model
The models were evaluated using:
- AUC
- Gini
- KS statistic
- Brier score
The class-weighted logistic model was useful as a benchmark, but it distorted predicted default levels. This made it less suitable for expected loss, pricing, and profitability analysis. In credit risk, the probability estimate itself matters. A model that ranks borrowers well but produces unrealistic PD levels can create problems downstream.
The gradient boosting model produced slightly stronger discrimination, but the improvement was modest and the model was less interpretable.
The tuned logistic regression was selected as the primary PD model because it provided the best balance of discrimination, calibration, interpretability, policy usability, and ease of integration into pricing and limit decisions.
This was one of the most important lessons from the project:
The highest AUC model is not always the best credit policy model.
In lending, predicted probabilities must be usable for expected loss, pricing, profitability, approval strategy, and governance. Explainability and calibration matter.
Calibration and Risk Segmentation
After selecting the final Probability of Default (PD) model, various calibration methods were tested, such as isotonic calibration and logistic recalibration, to determine if the predicted PDs required adjustment.
Ultimately, the uncalibrated model was retained. The validation-based recalibration methods were too influenced by the 2013 validation cohort, which had a lower observed default rate than the 2014 test cohort. As a result, recalibration caused the model to underpredict risk in the test period.
Rather than forcing a calibration adjustment that did not generalize, the uncalibrated logistic model was retained, while conservatism was managed through profitability assumptions, LGD scenarios, and policy overlays.
To make the PD outputs more useful for policy design, final PD estimates were mapped into business-friendly risk segments ranging from A (Very Low Risk) to E (Very High Risk).
This segmentation was critical. Raw PD values are useful for modelling, but policy teams need practical borrower segments. Risk bands make it easier to design approval rules, pricing floors, limit caps, profitability analysis, and monitoring dashboards.
Approval Cut-off Analysis
I also explored whether there was an optimal credit score or PD cut-off for lending.
One statistical approach is Youden’s J statistic, which identifies the threshold that best balances sensitivity and specificity. This can be useful as a model diagnostic.
However, lending is not a standard classification problem. False positives and false negatives do not carry equal cost. Rejecting a good borrower means losing potential revenue. Approving a bad borrower can create a credit loss. The cost of each outcome depends on loan amount, interest rate, LGD, funding cost, operating cost, and risk appetite.
For that reason, cut-offs were evaluated using a broader lens that included approval rate, default rate, exposure, and profitability.
The conclusion was clear: a single cut-off is useful for benchmarking, but it is not enough for a robust underwriting policy.
The final framework therefore uses a policy engine that considers PD band, loan term, pricing adequacy, profitability, affordability, and eligibility.
WOE/IV Production Scorecard
Alongside the main PD model, I built a production-style WOE/IV scorecard. This was included because scorecards remain widely used in credit risk due to their interpretability and ease of governance.
The development process involved variable binning, calculating the Weight of Evidence (WOE) and Information Value (IV), and ensuring consistent monotonicity across all inputs. We finalized seven key variables, including FICO, loan-to-income, and revolving utilization. Notably, the transition from an unrounded model to an integer-based scorecard resulted in no material loss in performance. By providing a transparent view into how scores are generated, this scorecard serves as a vital tool for policy interpretation, governance, and stakeholder communication.
LGD and Expected Loss
Predicting default is only part of the credit risk problem. A lender also needs to estimate the size of the loss if default occurs.
Expected loss was calculated using the standard framework:
Expected Loss = PD × LGD × EAD
In this project:
- PD came from the final logistic regression model
- LGD was estimated using recovery experience on defaulted loans
- EAD was proxied by the original loan amount
Using the original loan amount as a proxy for EAD is a conservative simplifying assumption. LendingClub loans are fixed-term installment loans, so the original loan amount represents the initial principal exposure at origination. However, true EAD would ideally reflect the outstanding principal balance at the time of default. That would require more granular amortization and default timing analysis.
For this project, using the original loan amount as EAD made the expected loss framework simple, consistent, and conservative. A future version could refine EAD by incorporating amortization schedules, principal received before default, and timing of default.
LGD was reviewed by grade, term, and PD band, then a conservative base LGD assumption was selected for the policy framework. Optimistic, base, empirical, and stress LGD scenarios were also tested to understand how recovery assumptions affect financial outcomes.
Profitability, Pricing, and Limit Strategy
This section marked the project’s transition from theoretical risk modeling to credit strategy. For every loan, we estimated a full P&L profile:
- Costs: Funding, acquisition, and operating expenses.
- Risk: Expected loss and credit spread requirements.
- Profitability: Contribution and fully-loaded margins.
This analysis addressed a critical business question:
Is this loan profitable after accounting for all losses and expenses?
The results revealed that risk and profitability do not always move linearly. Some high-risk loans may remain profitable if priced appropriately and capped at lower exposure, while low-risk, short-term loans may require pricing floors to ensure they cover their operational costs.
We then calculated break-even APRs by risk band and term, identifying loans that were underpriced relative to their risk profile. Finally, we developed limit assignment rules using a combination of requested amounts, risk-based caps, and affordability-based caps.
Final Policy Engine
The final policy engine was the core output of the project.
It brought together the PD model, risk bands, profitability analysis, pricing floors, limits, and eligibility rules into applicant-level decisions.
Rather than using a blunt approve or decline threshold based only on PD, the policy engine assigned more nuanced decisions:
This mirrors how real credit policy works.
A low-risk borrower may still need a pricing floor if the loan is underpriced. A medium-risk borrower may be approved if the contribution margin is positive. A high-risk borrower may be considered only with a lower limit. A very high-risk borrower may be declined or restricted to exception-only approval. An applicant who triggers policy concerns may be routed to manual review even if the model score appears acceptable.
The policy engine therefore does not just measure risk. It manages risk in line with profitability and risk appetite.
Eligibility Criteria and Manual Review
A model should not be the only control in underwriting.
Hard eligibility rules and manual review triggers were added as policy guardrails. These included factors such as excessive DTI, very high loan-to-income, multiple recent inquiries, low FICO, and bankruptcy or public record indicators.
One important finding was that bankruptcy or public record flags were too broad to use as standalone hard decline rules. They captured some borrowers whose default rates were only moderately above the portfolio average. Instead, these flags were better treated as manual review triggers unless combined with high predicted PD.
This was a useful policy lesson:
Hard rules should be risk-sensitive. They should control risk without unnecessarily penalizing borrowers based on a single adverse marker.
Insights from Rejected Applicants
Rejected applicant analysis was handled separately because rejected borrowers do not have observed repayment outcomes.
To gain directional insight, I trained a common-feature model on accepted applicants using only variables available in both accepted and rejected datasets. I then applied that model to scorable rejected applicants.
The common-feature model was weaker than the main PD model, which was expected because the rejected dataset had fewer usable variables.
Most scorable rejected applicants fell into high-risk bands, which suggested that many historical declines were directionally consistent with risk-based screening. However, a small subset fell into low-risk bands. These applicants may represent potential missed opportunities, subject to additional verification, affordability checks, pricing review, and outcome validation.
This analysis should not be interpreted as proof that these rejected applicants would have performed well. It is a simulation for policy review, not a basis for automatic approval.
Strategic Takeaways and Recommendations
The main lesson from this project is that credit risk modelling should support credit policy, not stop at default prediction. A useful model must help answer who to approve, who to decline, what price to charge, what limit to assign, and whether the expected return justifies the risk.
Several takeaways stood out. First, the highest AUC model is not always the best credit policy model. Calibration, interpretability, stability, and usability in expected loss and pricing decisions are equally important. Second, a single PD or credit score cut-off is too limited because it ignores pricing, loan term, affordability, exposure, and profitability. Third, pricing and limits can materially change the lending decision. Some higher-risk borrowers may be acceptable if pricing is adequate and exposure is controlled, while some lower-risk borrowers may still need pricing floors or cost discipline.
The recommended strategy is therefore to use the tuned logistic regression as the primary PD model, supported by the WOE/IV scorecard for explainability and governance. Applicants should be segmented into PD bands and assessed through a policy engine that combines risk, pricing adequacy, contribution margin, fully loaded profitability, affordability, and eligibility rules.
In practice, this means approving well-priced low-risk borrowers, applying pricing floors where APR is below break-even levels, capping limits for higher-risk borrowers, sending borderline or policy-triggered cases to manual review, and declining or restricting very high-risk applicants to exception-only approvals.
Rejected applicant scoring should be used only as a directional policy review tool because rejected borrowers do not have observed repayment outcomes. The full framework should also be monitored over time using calibration, PSI, vintage default rates, pricing gaps, realized profitability, limit performance, and exception exposure.
Limitations
This project has several limitations.
First, it uses historical LendingClub data. The findings may not generalize to another lender, borrower population, or current market environment without recalibration.
Second, rejected applicants do not have observed repayment outcomes. The rejected applicant analysis is therefore directional and should not be treated as validated default evidence.
Third, profitability depends on assumptions around LGD, funding cost, operating cost, acquisition cost, interest realization, and default timing.
Fourth, EAD was proxied using original loan amount. This may differ from true exposure at default due to amortization and principal repayments before default.
Finally, a production deployment would require additional governance, fairness testing, compliance review, stress testing, monitoring, and approval from credit risk stakeholders.
Conclusion
This project began with a simple question:
How should a lender approve, price, and limit applicants based on expected credit risk and profitability?
The answer was not a single model, a single score, or a simple cut-off.
The answer was a decisioning framework.
By combining PD modelling, calibration, scorecards, expected loss, profitability analysis, pricing floors, limit assignment, eligibility rules, and rejected applicant analysis, the project translated technical risk modelling into an actionable underwriting strategy.
A model predicts risk.
A policy engine turns that risk into decisions.
For the full code, please refer to this GitHub repo.



