creditctl
v0.1.3
Published
Credit report analysis and scoring for lending operations - part of the LendCtl Suite
Downloads
371
Maintainers
Readme
creditctl
Credit report analysis and scoring for lending operations. Part of the LendCtl Suite.
Features
- Score Analysis — Tier classification, mortgage eligibility, rate impact
- Report Analysis — Full tradeline analysis, risk flags, recommendations
- Rapid Rescore — Simulate score improvement from paydowns
- Tradeline Summary — Account breakdown by type and status
- Utilization Optimization — Find optimal paydown strategies
Installation
npm install -g creditctlOr use directly with npx:
npx creditctl --helpQuick Start
Analyze a Score
creditctl score 720Output:
═══════════════════════════════════════════════════════════════
CREDIT SCORE ANALYSIS
═══════════════════════════════════════════════════════════════
Score: 720
Tier: NEARPRIME
Good credit - standard rates, most programs available
MORTGAGE ELIGIBILITY
───────────────────────────────────────────────────────────────
✓ Conventional Good rates
✓ FHA 3.5% down payment
✓ VA Most lenders require 580-620 minimum
✓ USDA Automated approval requires 640+
✓ Jumbo Most lenders
RATE IMPACT
───────────────────────────────────────────────────────────────
Your bracket: 720-739
Est. rate impact: +0.25% vs best rate
💡 Improving 20 points would reach the next tier.
═══════════════════════════════════════════════════════════════Analyze a Full Credit Report
creditctl analyze -f credit_report.jsonSimulate Rapid Rescore
# How much would paying $5,000 toward balances improve my score?
creditctl rescore -f credit_report.json --paydown 5000
# What if I target 10% utilization?
creditctl rescore -f credit_report.json --target-util 10
# Include paying off collections
creditctl rescore -f credit_report.json --paydown 5000 --pay-collectionsList Tradelines
# All tradelines
creditctl tradelines -f credit_report.json
# Summary only
creditctl tradelines -f credit_report.json --summary
# Only derogatory accounts
creditctl tradelines -f credit_report.json --derogatory
# Filter by type
creditctl tradelines -f credit_report.json --type revolvingCredit Report Format
creditctl expects a JSON credit report in this format:
{
"consumer": {
"name": "John Smith",
"addresses": ["123 Main St, Anytown, CA 90210"],
"dateOfBirth": "1985-03-15"
},
"bureau": "experian",
"reportDate": "2026-02-26",
"scores": [
{
"score": 720,
"model": "fico8",
"bureau": "experian",
"date": "2026-02-26",
"factors": [
{ "code": "14", "description": "Length of credit history", "impact": "positive" }
]
}
],
"tradelines": [
{
"creditor": "Chase Sapphire",
"accountNumber": "****1234",
"accountType": "revolving",
"status": "current",
"dateOpened": "2020-05-15",
"creditLimit": 10000,
"balance": 2500,
"monthlyPayment": 100
}
],
"publicRecords": [],
"inquiries": [
{
"inquirer": "Mortgage Lender",
"date": "2026-02-01",
"type": "hard"
}
]
}Programmatic Usage
import { analyzeCreditReport, simulateRescore, getScoreTier } from 'creditctl';
// Analyze a report
const analysis = analyzeCreditReport(creditReport);
console.log(`Score: ${analysis.representativeScore}`);
console.log(`Tier: ${analysis.scoreTier}`);
console.log(`Utilization: ${analysis.utilizationRatio}%`);
// Simulate rescore
const simulation = simulateRescore(creditReport, {
payDownAmount: 5000,
payOffCollections: true,
});
console.log(`Projected score: ${simulation.projectedScore} (+${simulation.scoreChange})`);
// Quick score tier check
const tier = getScoreTier(720);
console.log(`Tier: ${tier}`); // 'nearprime'Score Tiers
| Tier | Score Range | Description | |------|-------------|-------------| | Superprime | 800+ | Exceptional credit, best rates | | Prime | 740-799 | Very good credit, excellent rates | | Near-prime | 670-739 | Good credit, standard rates | | Subprime | 580-669 | Fair credit, limited options | | Deep Subprime | <580 | Poor credit, very limited options |
Mortgage Eligibility by Score
| Program | Minimum Score | Notes | |---------|---------------|-------| | Conventional | 620 | 740+ for best rates | | FHA | 500 | 580+ for 3.5% down | | VA | 580 | Lender-specific | | USDA | 640 | Automated approval | | Jumbo | 700+ | Lender-specific |
Risk Flags Detected
creditctl automatically identifies:
- Low credit scores
- High utilization
- Derogatory marks
- Collections
- Public records (bankruptcy, foreclosure)
- Thin credit files
- Excessive inquiries
- Short credit history
- Fraud alerts
- Credit freezes
Part of LendCtl Suite
creditctl is designed to work with other LendCtl tools:
# Full lending workflow
creditctl analyze -f credit.json --format json | \
finctl analyze --stdin | \
mortctl eligible --stdinLicense
Apache-2.0 © Satyan Avatara
