{"model":"repurchase","model_version":"repurchase_v3.0.0","calibrated":true,"target":"ever_repurchased","n_train":8464245,"n_calib":2821415,"n_test":2821415,"n_iters":233,"test_auc":0.8110518679364755,"true_positive_rate":0.0018147631596202615,"score_thresholds":{"p99":0.0107811786203746,"p95":0.005221932114882506,"p90":0.0032700232933166097,"p50":0.0009333823193557676},"feature_order":["borrower_fico","co_borrower_fico","original_ltv","original_cltv","dti","mi_percent","original_upb","original_interest_rate","original_loan_term_months","number_of_units","number_of_borrowers","max_dq_status_1_6","dq_months_1_6","ever_60dq_1_6","ever_90dq_1_6","ever_modified_1_6","upb_decline_pct_1_6","obs_months_1_6","source","loan_purpose","channel","property_type","occupancy","first_time_homebuyer","product_type","property_valuation_method","origination_year","origination_month","property_state","seller_name"],"n_features":30,"expected_inputs":{"numeric":["borrower_fico","co_borrower_fico","original_ltv","original_cltv","dti","mi_percent","original_upb","original_interest_rate","original_loan_term_months","number_of_units","number_of_borrowers","max_dq_status_1_6","dq_months_1_6","ever_60dq_1_6","ever_90dq_1_6","ever_modified_1_6","upb_decline_pct_1_6","obs_months_1_6"],"categorical":["source","loan_purpose","channel","property_type","occupancy","first_time_homebuyer","product_type","property_valuation_method","origination_year","origination_month","property_state","seller_name"]},"vintages_trained_on":["2020","2021","2022","2023"],"test_brier_raw":0.14565125065667356,"test_brier_calibrated":0.0017461812797306437,"test_ece_raw":0.3248592407376612,"test_ece_calibrated":2.2185968269784866e-05,"reliability_calibrated":[{"bin_lo":0.0,"bin_hi":0.1,"n_loans":2818779,"predicted_mean":0.0016160074854337622,"actual_rate":0.0016170121886107424},{"bin_lo":0.1,"bin_hi":0.2,"n_loans":1956,"predicted_mean":0.13960379863843037,"actual_rate":0.15593047034764826},{"bin_lo":0.2,"bin_hi":0.30000000000000004,"n_loans":232,"predicted_mean":0.2930656505961295,"actual_rate":0.2672413793103448},{"bin_lo":0.30000000000000004,"bin_hi":0.4,"n_loans":266,"predicted_mean":0.3537170288784566,"actual_rate":0.34962406015037595},{"bin_lo":0.5,"bin_hi":0.6000000000000001,"n_loans":99,"predicted_mean":0.5437299508359712,"actual_rate":0.4444444444444444},{"bin_lo":0.6000000000000001,"bin_hi":0.7000000000000001,"n_loans":43,"predicted_mean":0.6388888888888888,"actual_rate":0.7209302325581395},{"bin_lo":0.7000000000000001,"bin_hi":0.8,"n_loans":35,"predicted_mean":0.7202052673397673,"actual_rate":0.6857142857142857},{"bin_lo":0.9,"bin_hi":1.0,"n_loans":5,"predicted_mean":0.9866818953383879,"actual_rate":0.6}],"cross_vintage_check":{"split":"train 2020-2021, calib 2022, test 2023","test_auc_calibrated":0.7125,"test_brier_calibrated":0.002341,"test_ece_calibrated":0.0006,"interpretation":"Honest cross-vintage performance. The random-split AUC (0.81) is an upper bound that assumes future macro context resembles the past. Realized 2024+ performance will be closer to this vintage-holdout number than to the random-split number."}}