โ† Back to Overview

Welcome to the Credit Scoring Simulator

This interactive simulator demonstrates the WIA-FIN-020 Credit Scoring Standard capabilities. Explore different scoring scenarios, test applicant profiles, and understand how modern AI-powered credit assessment works.

Key Capabilities

๐ŸŽฏ

Traditional Scoring

Classic credit bureau-based scoring using payment history, credit utilization, length of credit history, and account mix.

๐Ÿค–

AI-Enhanced Scoring

Machine learning models analyzing 1000+ features including alternative data, behavioral patterns, and real-time financial indicators.

๐ŸŒ

Alternative Data

Incorporate non-traditional credit data: utility payments, rent history, telecom bills, and open banking transaction analysis.

โš–๏ธ

Fairness Testing

Built-in bias detection and fairness metrics ensuring equal credit opportunity across all demographic groups.

๐Ÿ“ˆ

Model Performance

Real-time model monitoring with AUC-ROC, precision-recall curves, and population stability index tracking.

๐Ÿ”

Explainability

SHAP-based model interpretability providing clear factor analysis and adverse action reasons for consumers.

How It Works

1๏ธโƒฃ
Data Collection

Gather applicant information from credit bureaus, alternative data sources, and open banking APIs

2๏ธโƒฃ
Feature Engineering

Transform raw data into 500+ predictive features using domain expertise and automated ML

3๏ธโƒฃ
Score Calculation

Run ensemble models (XGBoost + Neural Networks) to generate credit score and risk grade

4๏ธโƒฃ
Decision Making

Apply credit policy rules and generate approve/decline recommendation with confidence level

5๏ธโƒฃ
Explanation

Generate consumer-friendly explanations using SHAP values and regulatory-compliant adverse action notices

Supported Use Cases

๐Ÿ’ณ
Credit Cards
๐Ÿ 
Mortgages
๐Ÿš—
Auto Loans
๐Ÿ’ฐ
Personal Loans
๐Ÿข
Business Loans
๐ŸŽ“
Student Loans

Test Credit Scoring Scenarios

Input applicant information to see real-time credit score calculation and risk assessment.

Personal Information

Employment & Income

Credit History

Loan Request

Model Validation & Performance

Comprehensive model performance metrics and validation results for the credit scoring system.

Classification Metrics

0.85
AUC-ROC
0.82
Precision
0.78
Recall
0.80
F1 Score

Model Stability

0.023
PSI (Population Stability)

โœ… Stable

0.018
CSI (Characteristic Stability)

โœ… Stable

45.2
Gini Coefficient

โœ… Good Discrimination

2.8%
KS Statistic

โœ… Optimal Separation

Fairness Metrics

โš–๏ธ
Demographic Parity

Approval rates are consistent across protected classes (ยฑ3% variance)

โœ… Pass
๐ŸŽฏ
Equal Opportunity

True positive rates are balanced across demographic groups

โœ… Pass
๐Ÿ“Š
Calibration

Predicted probabilities match observed default rates across all segments

โœ… Pass
๐Ÿ”
Disparate Impact

No adverse impact detected (ratio > 0.80 for all protected classes)

โœ… Pass

Validation Results

=== Model Validation Report ===
Date: 2025-01-15
Model Version: v2.3.1
Validation Dataset: 50,000 applications (2024-Q4)

Performance Metrics:
- AUC-ROC: 0.8523 (ยฑ0.0012)
- Precision: 0.8245
- Recall: 0.7801
- F1 Score: 0.8016
- Accuracy: 85.3%

Calibration Analysis:
- Brier Score: 0.089 (Excellent)
- Log Loss: 0.324
- Calibration Slope: 0.98 (Well-calibrated)

Stability Analysis:
- PSI: 0.023 (Stable - No significant drift)
- CSI: 0.018 (Stable)
- Feature Importance Shift: < 5% (Stable)

Regulatory Compliance:
โœ… FCRA (Fair Credit Reporting Act)
โœ… ECOA (Equal Credit Opportunity Act)
โœ… GDPR (General Data Protection Regulation)
โœ… Model Risk Management SR 11-7

Adverse Action Analysis:
- Top Reason 1: High credit utilization (32%)
- Top Reason 2: Limited credit history (28%)
- Top Reason 3: Recent delinquencies (18%)
- Top Reason 4: High debt-to-income (12%)
- Top Reason 5: Too many recent inquiries (10%)

Recommendation: Model approved for production deployment
Next Validation: 2025-04-15 (Quarterly review)
                    

Scoring Results Analysis

Detailed analysis of credit score distribution and portfolio performance.

Score Distribution

300-579
Poor (12%)
580-669
Fair (18%)
670-739
Good (25%)
740-799
Very Good (28%)
800-850
Excellent (17%)

Portfolio Performance (2024)

2.8%
Default Rate
4.2%
Delinquency Rate (30+ days)
68%
Approval Rate
$875M
Total Originations

Risk-Based Pricing

๐ŸŒŸ
Excellent (800-850)

Prime+ tier with best rates and terms

3.5-4.5% APR
โœจ
Very Good (740-799)

Prime tier with competitive rates

4.5-6.5% APR
๐Ÿ‘
Good (670-739)

Standard tier with favorable rates

6.5-9.5% APR
โš ๏ธ
Fair (580-669)

Subprime tier with higher rates

9.5-14.5% APR
โŒ
Poor (<580)

High-risk tier, often declined

14.5%+ APR

Feature Importance

Payment History
35%
Credit Utilization
30%
Length of Credit History
15%
New Credit Inquiries
10%
Credit Mix
10%

Sample Score Report

===============================================
         CREDIT SCORE REPORT
===============================================
Report Date: January 15, 2025
Reference ID: CS-2025-01-15-789456

Applicant: John Doe
Score: 745
Grade: GOOD
Decision: APPROVED โœ…

Risk Assessment:
- Default Probability: 2.3%
- Approval Confidence: 87%
- Recommended APR: 6.5%
- Credit Limit: $30,000

Score Factors (Positive Impact):
โœ… Excellent payment history (0 late payments)
โœ… Low credit utilization (25%)
โœ… Long credit history (8 years)
โœ… Stable employment (3 years)
โœ… Diverse credit mix

Score Factors (Negative Impact):
โš ๏ธ Recent credit inquiry (minor impact)

Alternative Data Insights:
โœ… Consistent rent payments (24 months)
โœ… Utility payments always on-time
โœ… Strong cash flow patterns
โœ… Stable banking relationship (5 years)

Recommendations for Improvement:
1. Maintain current payment behavior
2. Avoid new credit inquiries for 6 months
3. Consider increasing credit limits to lower utilization
4. Add an installment loan to credit mix

Next Review: Monthly monitoring active
Alerts: Score decrease, Delinquency, Fraud

===============================================
This report is for illustrative purposes only
Real credit reports may vary by bureau
===============================================
                    

API Integration Guide

Complete integration examples for the WIA-FIN-020 Credit Scoring API.

Quick Start

# Install SDK
npm install @wia/credit-scoring
# or
pip install wia-credit-scoring

# Set API credentials
export WIA_API_KEY="your-api-key"
export WIA_ENVIRONMENT="production"
                    

TypeScript Example

import { CreditScoringClient, Application } from '@wia/credit-scoring';

// Initialize client
const client = new CreditScoringClient({
  apiKey: process.env.WIA_API_KEY,
  environment: 'production',
  timeout: 5000
});

// Create application
const application: Application = {
  applicant: {
    firstName: 'Jane',
    lastName: 'Smith',
    ssn: '***-**-5678',
    dateOfBirth: '1985-03-20',
    email: 'jane.smith@example.com',
    phone: '+1-555-0200'
  },

  address: {
    street: '456 Oak Avenue',
    city: 'New York',
    state: 'NY',
    zipCode: '10001',
    residenceType: 'rent',
    monthsAtAddress: 24
  },

  employment: {
    employer: 'ABC Corporation',
    jobTitle: 'Marketing Manager',
    annualIncome: 95000,
    employmentStatus: 'full-time',
    monthsEmployed: 48
  },

  loanRequest: {
    amount: 15000,
    purpose: 'debt_consolidation',
    term: 36
  }
};

// Get credit score
try {
  const result = await client.score(application, {
    includeExplanation: true,
    includeBureauData: true,
    includeAlternativeData: true
  });

  console.log('Score:', result.score);
  console.log('Grade:', result.grade);
  console.log('Decision:', result.decision);
  console.log('Approval Probability:', result.approvalProbability);

  // Access score factors
  result.factors.forEach(factor => {
    console.log(`${factor.name}: ${factor.impact} (${factor.direction})`);
  });

  // Generate adverse action notice if needed
  if (result.decision === 'decline') {
    const notice = await client.generateAdverseActionNotice(result.id);
    await sendToApplicant(notice);
  }

} catch (error) {
  console.error('Scoring error:', error.message);
}
                    

Python Example

from wia_credit_scoring import CreditScoringClient, Application

# Initialize client
client = CreditScoringClient(
    api_key=os.getenv('WIA_API_KEY'),
    environment='production'
)

# Create application
application = Application(
    applicant={
        'first_name': 'Michael',
        'last_name': 'Johnson',
        'ssn': '***-**-9012',
        'date_of_birth': '1992-07-10',
        'email': 'michael.j@example.com'
    },
    employment={
        'employer': 'Tech Startup',
        'annual_income': 110000,
        'employment_status': 'full-time',
        'months_employed': 18
    },
    loan_request={
        'amount': 35000,
        'purpose': 'home_improvement',
        'term': 60
    }
)

# Score the application
result = client.score(
    application,
    include_explanation=True,
    include_alternative_data=True
)

print(f"Credit Score: {result.score}")
print(f"Risk Grade: {result.grade}")
print(f"Decision: {result.decision}")

# Access detailed factors
for factor in result.factors:
    print(f"{factor.name}: {factor.impact} ({factor.direction})")

# Monitor account
monitoring = client.monitor_account(
    account_id=result.account_id,
    frequency='monthly',
    alerts=['score_decrease', 'delinquency']
)
                    

REST API Example

# Score an application
curl -X POST https://api.wia.org/v1/credit-scoring/score \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "applicant": {
      "first_name": "Sarah",
      "last_name": "Williams",
      "ssn": "***-**-3456",
      "date_of_birth": "1988-11-25",
      "email": "sarah.w@example.com"
    },
    "employment": {
      "annual_income": 82000,
      "employment_status": "full-time"
    },
    "loan_request": {
      "amount": 20000,
      "purpose": "auto",
      "term": 48
    }
  }'

# Response
{
  "id": "score_abc123",
  "score": 725,
  "grade": "good",
  "decision": "approve",
  "approval_probability": 0.83,
  "default_probability": 0.031,
  "suggested_apr": 0.072,
  "factors": [
    {
      "name": "Payment History",
      "impact": "high",
      "direction": "positive"
    },
    {
      "name": "Credit Utilization",
      "impact": "medium",
      "direction": "positive"
    }
  ]
}
                    

Webhook Integration

// Set up webhook endpoint
app.post('/webhooks/credit-scoring', async (req, res) => {
  const event = req.body;

  switch (event.type) {
    case 'score.completed':
      await handleScoreCompleted(event.data);
      break;

    case 'score.updated':
      await handleScoreUpdated(event.data);
      break;

    case 'alert.score_decrease':
      await handleScoreDecrease(event.data);
      break;

    case 'alert.delinquency':
      await handleDelinquency(event.data);
      break;
  }

  res.json({ received: true });
});

// Register webhook
await client.registerWebhook({
  url: 'https://yourapp.com/webhooks/credit-scoring',
  events: [
    'score.completed',
    'score.updated',
    'alert.score_decrease',
    'alert.delinquency'
  ]
});
                    

SDK Features

โšก
Real-Time Scoring

Sub-100ms response time with automatic retries

๐Ÿ”
Secure Authentication

OAuth 2.0, API keys, and mTLS support

๐Ÿ“Š
Comprehensive Logging

Full audit trail with request/response logging

๐ŸŒ
Multi-Language SDKs

TypeScript, Python, Java, Go, Ruby, PHP