\"Build credit scoring models to predict default probability from borrower characteristics. Use this skill when the user needs to assess creditworthiness, build a credit scorecard, or evaluate lending risk — even if they say 'predict default risk', 'credit scoring', or 'loan approval model'.\".
Scanned 9/6/2026
Install to Claude Code
npx -y skills add charlieviettq/awesome-agent-skill --skill algo-risk-credit --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Algo Risk Credit?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/charlieviettq-algo-risk-credit)More formats (shields.io, HTML) on the badges page.
---
name: "\"algo-risk-credit\""
description: "\"Build credit scoring models to predict default probability from borrower characteristics. Use this skill when the user needs to assess creditworthiness, build a credit scorecard, or evaluate lending risk — even if they say 'predict default risk', 'credit scoring', or 'loan approval model'.\"."
allowed-tools: Read, Glob, Grep
---
# Credit Scoring Model
## Overview
Credit scoring models predict the probability of default (PD) from borrower characteristics using logistic regression or gradient boosting. Output: a score (300-850 range) or PD (0-1). Used for loan approval, pricing, and portfolio risk management.
## When to Use
**Trigger conditions:**
- Building a scorecard for loan/credit approval decisions
- Predicting default probability for risk-based pricing
- Evaluating existing credit models for discriminatory power
**When NOT to use:**
- For corporate bankruptcy prediction (use Altman Z-Score)
- For market risk measurement (use VaR)
## Algorithm
```
IRON LAW: A Credit Model Must Discriminate AND Be Calibrated
Discrimination (AUC): correctly ranking good vs bad borrowers.
Calibration: predicted PD matches actual default rates.
A model with AUC=0.85 but predicted PD 2x actual default rate will
cause systematic over/under-pricing. Need BOTH properties.
```
### Phase 1: Input Validation
Collect: borrower features (income, debt ratio, credit history length, delinquency count, utilization), outcome variable (default within 12-24 months). Handle: missing values, class imbalance (typically 2-5% default rate).
**Gate:** Sufficient defaults (300+ events), features available at decision time.
### Phase 2: Core Algorithm
1. Feature engineering: WOE (Weight of Evidence) binning for logistic regression, or direct encoding for GBDT
2. Train model: logistic regression (interpretable, regulatory-preferred) or GBDT (higher accuracy)
3. Calibrate: Platt scaling on holdout, ensure predicted PD matches actual default rate by decile
4. Convert to score: Score = offset + factor × log(odds), scaled to 300-850 range
### Phase 3: Verification
Evaluate: AUC (>0.70 acceptable, >0.80 good), KS statistic, Gini coefficient. Population stability index (PSI) for monitoring drift.
**Gate:** AUC > 0.70, calibration acceptable, no discriminatory bias in protected attributes.
### Phase 4: Output
Return score, PD, and key risk drivers.
## Output Format
```json
{
"score": 680,
"pd": 0.035,
"risk_grade": "B",
"top_risk_factors": [{"factor": "high_utilization", "impact": -45}, {"factor": "short_history", "impact": -30}],
"metadata": {"model": "logistic_regression", "auc": 0.78, "vintage": "2024-Q3"}
}
```
## Examples
### Sample I/O
**Input:** Borrower: income=$60K, DTI=35%, 5yr credit history, 0 delinquencies, 60% utilization
**Expected:** Score ~680, PD ~3.5%, Grade B (some risk from high utilization)
### Edge Cases
| Input | Expected | Why |
|-------|----------|-----|
| No credit history (thin file) | High uncertainty, default to conservative | Insufficient data for scoring |
| All features identical | Same score regardless of outcome | Model can't differentiate — need more features |
| Major economy shift | PSI > 0.25, model needs recalibration | Population has shifted from training distribution |
## Gotchas
- **Reject inference**: Training data only includes approved applicants. Rejected applicants' outcomes are unknown, creating selection bias. Use reject inference techniques.
- **Fair lending**: Models must not discriminate by protected attributes (race, gender, age). Even proxy variables (zip code ≈ race) can create disparate impact. Test with fairness metrics.
- **Through-the-door vs on-the-books**: TTD samples include all applicants; OTB only approved ones. Model purpose determines which sample to use.
- **Vintage analysis**: Default rates vary by economic conditions. A 2019-trained model may not predict well in a recession. Track model performance by vintage.
- **Regulatory requirements**: Financial regulators (Basel, OCC, FDIC) have specific requirements for model validation, documentation, and fair lending testing.
## References
- For WOE binning methodology, see `references/woe-binning.md`
- For reject inference techniques, see `references/reject-inference.md`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!