probcal validation report — sample portfolio

Generated 2026-08-30 00:20:31 UTC (probcal 0.3.0)

Portfolio summary

Reliability

CORP (PAV) reliability diagram

reliability_corp

smECE-consistent kernel reliability curve

reliability_kernel

Metric report

metricvalueci_lowci_high
log_loss0.1609070.1594010.163031
brier0.03889980.03874710.03911
brier_skill0.03247370.02724630.0362735
ece0.01190410.0114570.0125929
ece_debiased0.01089960.01047380.0117169
mce0.03482020.02528140.0469443
ece_sweep0.01169660.0113910.0122127
smooth_ece0.01355760.01422890.0155732
ecce_max0.01173440.01142850.012073
ecce_mean0.003389490.002904040.00394186
ici0.01156240.01121290.0119149
e500.01013850.00804860.0126861
e900.02113540.01659180.0279877
emax0.1213160.03835520.196534
spiegelhalter_z11.999611.580912.4356
spiegelhalter_p000
intercept0.3508610.3401640.360986
slope0.9854150.9151111.04092

CORP decomposition

scorevaluemcbdscunc
brier0.03889980.0003416710.001647290.0402055
log_loss0.1609070.003050880.01628890.174145

score == mcb - dsc + unc (Dimitriadis, Gneiting & Jordan 2021).

Rating grades

Grades ordered best to worst by mean predicted probability: G1, G2, G3, G4, G5.

Per-grade backtest (Jeffreys)

grade_backtest
gradenkpdp_valuelightci_lowci_high
G12192140.003434420.0152669amber0.004043610.00969011
G24568410.007507960.126736green0.006903040.0115069
G377121550.01467538.30434e-05red0.01760120.0228618
G4103954900.03189616.19636e-17red0.04381150.0506507
G551335590.08212371.11519e-11red0.1019140.116218

Pluto-Tasche most-prudent PD

gradendn_pooledd_pooledpd_upper
G12192143000012590.0434891
G24568412780812450.0464023
G377121552324012040.0537199
G4103954901552810490.0702092
G5513355951335590.114684

Jeffreys upper masterscale bands

gradelohi
G100.00890364
G20.008903640.0109213
G30.01092130.0222365
G40.02223650.0498645
G50.04986450.114584

Grouped evaluation

groups_panel
groupmetricvalueci_lowci_high
pooledlog_loss0.1609070.1594010.163031
pooledbrier0.03889980.03874710.03911
pooledbrier_skill0.03247370.02724630.0362735
pooledece0.01190410.0114570.0125929
pooledece_debiased0.01089960.01047380.0117169
pooledmce0.03482020.02528140.0469443
pooledece_sweep0.01169660.0113910.0122127
pooledsmooth_ece0.01355760.01422890.0155732
pooledecce_max0.01173440.01142850.012073
pooledecce_mean0.003389490.002904040.00394186
pooledici0.01156240.01121290.0119149
poolede500.01013850.00804860.0126861
poolede900.02113540.01659180.0279877
pooledemax0.1213160.03835520.196534
pooledspiegelhalter_z11.999611.580912.4356
pooledspiegelhalter_p000
pooledintercept0.3508610.3401640.360986
pooledslope0.9854150.9151111.04092
corporatelog_loss0.2148330.2108460.218641
corporatebrier0.05421410.05378310.0545943
corporatebrier_skill0.02598340.01915360.0337272
corporateece0.02899870.02849890.0300633
corporateece_debiased0.02744790.02681070.0285614
corporatemce0.1011060.07588660.135339
corporateece_sweep0.02891860.02840040.0294975
corporatesmooth_ece0.0294870.02948390.0311959
corporateecce_max0.02900630.02847690.0294661
corporateecce_mean0.008271580.007255760.00928493
corporateici0.02876780.02818010.0295181
corporatee500.02394350.01970830.0286114
corporatee900.05771270.04744660.0689833
corporateemax0.22560.1048270.367017
corporatespiegelhalter_z17.105916.622117.5922
corporatespiegelhalter_p000
corporateintercept0.7306510.7129310.747035
corporateslope0.996410.9061631.0913
retaillog_loss0.1176640.1148930.120026
retailbrier0.0266470.02639220.0268791
retailbrier_skill0.02976390.02131270.0390429
retailece0.005129080.004743110.00884493
retailece_debiased0.002773370.001896530.00663166
retailmce0.01530940.01041330.0300122
retailece_sweep0.003143320.002072280.0055622
retailsmooth_ece0.01294730.01465310.0171585
retailecce_max0.002525720.002068080.00403459
retailecce_mean0.0007430980.0004548090.00144969
retailici0.002260730.002044950.00436172
retaile500.001416510.0003952510.00337377
retaile900.006242670.00341230.0130909
retailemax0.01744310.007110850.102299
retailspiegelhalter_z-1.32544-1.67913-0.927809
retailspiegelhalter_p0.1850260.0931270.353507
retailintercept-0.0786055-0.0975029-0.0580631
retailslope1.00970.8900441.16424
smelog_loss0.1505490.1474040.153586
smebrier0.03593090.03558480.0362606
smebrier_skill0.03130080.02241380.040632
smeece0.008548120.008423140.0113342
smeece_debiased0.005394170.00530020.00908197
smemce0.02477690.02112020.0459276
smeece_sweep0.008452660.008059750.00972799
smesmooth_ece0.01520540.01648710.0189925
smeecce_max0.008532090.008045640.00980573
smeecce_mean0.002520370.001751710.00349682
smeici0.008254570.007804510.0092684
smee500.00802450.003985370.00975059
smee900.01609310.01132620.0226448
smeemax0.08015540.01943870.188873
smespiegelhalter_z5.055074.601215.42155
smespiegelhalter_p4.30232e-075.90933e-084.20059e-06
smeintercept0.2646970.2468910.281646
smeslope0.9761160.8624441.10226

Calibration monitoring

monitor_trajectory

Appendix: calibrator

Fitted state (JSON)
{
  "probcal_schema": 1,
  "probcal_version": "0.3.0",
  "class": "BetaCalibrator",
  "params": {
    "variant": "abm"
  },
  "state": {
    "a_": 0.9230181543085806,
    "b_": 0.14248519964715528,
    "c_": -0.859897385009572,
    "constraint_active_": false,
    "converged_": true,
    "separation_fallback_": false
  },
  "fit_meta": {
    "n_obs": 8000,
    "n_events": 244.0,
    "weight_sum": 8000.0,
    "fitted_at_utc": "2026-08-30T00:20:29+00:00",
    "data_fingerprint": "d5570bacd0fba6b0e94aaa2ebe909cafbcab48760bbcbd70bb10b7e27e9d9149",
    "converged_": true,
    "separation_fallback_": false
  }
}