Core API Reference
Metrics
cranalytics.metrics
Core risk and portfolio metrics.
calculate_classification_metrics(y_true, y_prob, threshold=0.5)
Calculate accuracy, precision, recall, and F1 score.
calculate_gini(y_true, y_prob)
Calculate the Gini coefficient.
calculate_ks(y_true, y_prob)
Calculate the Kolmogorov-Smirnov statistic.
calculate_wal(schedule)
Calculate Weighted Average Life (WAL) in months.
Finance
cranalytics.finance
Basic financial math utilities used in credit analytics.
calculate_irr(cash_flows, initial_investment, periods_per_year=12)
Calculate the annualized Internal Rate of Return (IRR) as a decimal.
calculate_npv(cash_flows, initial_investment, discount_rate, periods_per_year=12)
Calculate Net Present Value (NPV).
generate_amortization_schedule(principal, annual_rate, term_months)
Generate a standard monthly amortization schedule.
Portfolio
cranalytics.portfolio
Portfolio transforms and loss calculation utilities.
assign_fico_band(fico_score, bands=None)
Assign a FICO band based on score.
assign_risk_grade(fico_score, cutoffs=None)
Assign a risk grade based on descending FICO score cutoffs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fico_score
|
int
|
The FICO score. |
required |
cutoffs
|
list[int] | None
|
A descending list of thresholds. If None, it defaults to [800, 750, 700, 650, 600], producing grades 1-6. |
None
|
calculate_fico_mix(df, group_by=None)
Calculate the FICO mix (distribution) for a portfolio or vintage.
calculate_lgd(loan_data, haircuts=None)
Calculate Loss Given Default (LGD) based on collateral.
LGD = 1 - (Recovery Value / Exposure) Recovery Value = Collateral Value * (1 - Haircut)
estimate_recovery(loan_data, haircuts=None)
Estimate recovery amount based on collateral value and haircuts.
segment_fico(df, fico_column='fico_score', bands=None, risk_cutoffs=None)
Add FICO band and risk grade columns to a portfolio DataFrame.