{"ok":true,"model":"loophole-risk-gbm-v1","kind":"gradient boosting + isotonic calibration; the rug number is recalibrated on live calls","sklearn":"1.8.0","fitted_on":"our own feature snapshots joined to resolved outcomes; discovery = launches before 2026-09-04, validation = launches on/after it (out of time)","generated_at":"2026-09-11T14:32:20Z","features":["dev_share","insider_share","bundle_wallets","rep_n","rep_rug","rep_grad","rs","n_buys","age","mayhem"],"horizon_s":300.0,"shipping_rule":"a probability is published only inside the age range whose validation ECE (10 bins) is <= 0.05; brier_lift is the improvement over predicting the base rate","targets":{"rug_within_300s":{"n_train":17935,"n_test":163242,"base_rate_test":0.7569,"brier_model":0.13162,"brier_base":0.18488,"brier_lift":0.2881,"auc":0.8105,"ece":0.0395,"calibration_table":[{"bin":"0.0-0.1","n":8310,"predicted":0.0126,"observed":0.0999},{"bin":"0.1-0.2","n":3812,"predicted":0.1638,"observed":0.1445},{"bin":"0.2-0.3","n":1506,"predicted":0.2664,"observed":0.2138},{"bin":"0.3-0.4","n":2901,"predicted":0.3873,"observed":0.3957},{"bin":"0.4-0.5","n":477,"predicted":0.4359,"observed":0.4486},{"bin":"0.5-0.6","n":6934,"predicted":0.516,"observed":0.4841},{"bin":"0.6-0.7","n":6271,"predicted":0.6601,"observed":0.5859},{"bin":"0.7-0.8","n":11858,"predicted":0.7339,"observed":0.6569},{"bin":"0.8-0.9","n":50186,"predicted":0.8393,"observed":0.8058},{"bin":"0.9-1.0","n":70987,"predicted":0.9508,"observed":0.9189}],"by_age":[{"age_s":[0,5],"n":110912,"base":0.7632,"brier_lift":0.349,"ece":0.0387},{"age_s":[5,30],"n":30116,"base":0.8399,"brier_lift":0.06,"ece":0.0324},{"age_s":[30,120],"n":16057,"base":0.7033,"brier_lift":0.0832,"ece":0.074},{"age_s":[120,null],"n":6149,"base":0.3762,"brier_lift":0.4612,"ece":0.0916}],"published_age_range_s":[0.0,30],"population_note":"research-harness validation: launches traded inside 3 s, about half of them mayhem, base rate about 0.76; it is not the live population. The live calibration of the published rug number is under production."},"true_graduation":{"n_train":17935,"n_test":163242,"base_rate_test":0.0268,"brier_model":0.01747,"brier_base":0.02631,"brier_lift":0.3359,"auc":0.9192,"ece":0.0044,"calibration_table":[{"bin":"0.0-0.1","n":156965,"predicted":0.0094,"observed":0.0125},{"bin":"0.1-0.2","n":2868,"predicted":0.1405,"observed":0.1499},{"bin":"0.2-0.3","n":671,"predicted":0.2732,"observed":0.2161},{"bin":"0.3-0.4","n":135,"predicted":0.3391,"observed":0.2444},{"bin":"0.4-0.5","n":518,"predicted":0.462,"observed":0.3591},{"bin":"0.5-0.6","n":137,"predicted":0.5228,"observed":0.4526},{"bin":"0.6-0.7","n":948,"predicted":0.6655,"observed":0.692},{"bin":"0.7-0.8","n":33,"predicted":0.762,"observed":0.6667},{"bin":"0.8-0.9","n":55,"predicted":0.8766,"observed":0.8909},{"bin":"0.9-1.0","n":912,"predicted":0.9539,"observed":0.9002}],"by_age":[{"age_s":[0,5],"n":110912,"base":0.0162,"brier_lift":0.4739,"ece":0.0023},{"age_s":[5,30],"n":30116,"base":0.0381,"brier_lift":0.1029,"ece":0.0085},{"age_s":[30,120],"n":16057,"base":0.0419,"brier_lift":0.2409,"ece":0.0083},{"age_s":[120,null],"n":6149,"base":0.1215,"brier_lift":0.4271,"ece":0.0217}],"published_age_range_s":[0.0,null]}},"caveats":["probabilities are statistical estimates on public on-chain data, not guarantees and not financial advice","the model is refit as history grows; the validation shown is for the model currently serving","rug = the launch's price collapsed by our documented rug rule within the horizon after the check","the live rug map is refit on the radar's own logged calls; the before/after tables are under production"],"docs":"https://api.loopholetape.com/llms.txt","production":{"status":"serving","recalibration":"loophole-risk-gbm-v1+prod-iso-20261001","generated_at":"2026-10-01T02:25:08Z","summary":"out-of-time validation (map fitted on radar first calls 2026-09-24..2026-09-29 (published numbers), scored on 2026-09-30, n=7271): ECE 0.0599 served -> 0.0318 recalibrated, Brier lift 0.266 -> 0.2788, AUC 0.8038 -> 0.8037, mean published 0.4176 -> 0.4463 vs realized 0.4775. The serving map is refit on 2026-09-24..2026-09-30 (n=50604); first check on 2026-09-30 first calls (the validation day, out of time for the correction): ECE 0.0599 served -> 0.0318 recalibrated (n=7271).","applies_to":"non-mayhem mints with no rug/close flag observed at check time, age under 30 s (the radar population)","method":"isotonic regression of the realized rug-within-300-s label on the served model score, one map per age bucket, fitted on the radar's logged first calls joined to outcomes (data/tape_api/radar_log.jsonl x data/edge/reputation.sqlite) | REFIT 20261001 (chainstack/risk_recal_refit.py): the map of 2026-09-23 composed with an isotonic correction of the realized label on the PUBLISHED number, fitted on first calls 2026-09-24..2026-09-30; validated out of time on 2026-09-30.","published_age_range_s":[0,30],"older_ages":"no rug number is published at 30 s and older until a production refit covers those ages; the radar logs features and model scores at every age for that refit","mayhem":"mayhem (2B-supply) launches get the production base rate for mayhem launches alive at the same age, labelled rug_within_300s_basis = mayhem_base_rate; the model has no working mayhem feature","flagged":"a mint with a documented rug or close flag already observed gets no rug number (null with a reason)","withdrawal_rule":"the rug number is withdrawn (published as null with a reason starting recalibration_unavailable) when its live 10-bin ECE exceeds 0.05 on 3 of 7 scored days after a refit; each day's live ECE is published at /v1/track-record","validation":{"fit_window":"radar first calls 2026-09-24..2026-09-29 (published numbers)","validate_window":"2026-09-30","n_fit":43333,"n_val":7271,"served_raw":{"ece":0.0599,"brier":0.18313,"brier_lift":0.266,"auc":0.8038,"mean_p":0.4176},"recalibrated":{"ece":0.0318,"brier":0.17993,"brier_lift":0.2788,"auc":0.8037,"mean_p":0.4463},"realized_val":0.4775,"by_age":[{"age_s":[0,10],"n_val":2656,"ece":0.0416,"ece_published":0.0684,"ece_corrected":0.0416,"realized":0.5467,"n_fit":17372},{"age_s":[10,20],"n_val":2279,"ece":0.027,"ece_published":0.0482,"ece_corrected":0.027,"realized":0.4568,"n_fit":13721},{"age_s":[20,30],"n_val":2336,"ece":0.0459,"ece_published":0.0643,"ece_corrected":0.0459,"realized":0.4191,"n_fit":12240}],"note":"served_raw here = the number PUBLISHED by the previous map (not the raw model score); recalibrated = after this correction"},"serving_fit_window":"2026-09-24..2026-09-30 (n=50604)","serving_sanity":{"window":"2026-09-30 first calls (the validation day, out of time for the correction)","n":7271,"served_ece":0.0599,"recal_ece":0.0318},"base_rate_same_age":{"non_mayhem":{"age_s":[1,5,10,15,20,25,29],"p":[0.4436,0.4092,0.3735,0.344,0.3209,0.3019,0.2888]},"mayhem":{"age_s":[1,5,10,15,20,25,29],"p":[0.8511,0.8361,0.8106,0.7853,0.7609,0.7363,0.717]},"source":"all resolved launches 2026-09-13..22 alive (not rugged by the rule) at that age; reputation.sqlite; mayhem = 2B-supply create (s2)"},"graduation_production":{"first_call":{"ece":0.0279,"brier_lift_vs_base":0.3004,"auc":0.8581,"mean_p":0.0501,"n_val":5203,"realized":0.0765,"table":[{"bin":"0.0-0.1","n":4730,"predicted":0.0135,"observed":0.0347},{"bin":"0.1-0.2","n":156,"predicted":0.1382,"observed":0.2244},{"bin":"0.2-0.3","n":65,"predicted":0.2727,"observed":0.4769},{"bin":"0.3-0.4","n":11,"predicted":0.3346,"observed":0.3636},{"bin":"0.4-0.5","n":42,"predicted":0.4621,"observed":0.4286},{"bin":"0.5-0.6","n":5,"predicted":0.5243,"observed":0.6},{"bin":"0.6-0.7","n":183,"predicted":0.6665,"observed":0.7377},{"bin":"0.8-0.9","n":3,"predicted":0.8721,"observed":1.0},{"bin":"0.9-1.0","n":8,"predicted":0.9284,"observed":0.625}]},"every_call":{"ece":0.0318,"brier_lift_vs_base":0.3844,"auc":0.8935,"mean_p":0.0844,"n_val":21181,"mints":5207,"realized":0.1118,"table":[{"bin":"0.0-0.1","n":17945,"predicted":0.0153,"observed":0.0379},{"bin":"0.1-0.2","n":743,"predicted":0.1449,"observed":0.2221},{"bin":"0.2-0.3","n":368,"predicted":0.2728,"observed":0.4103},{"bin":"0.3-0.4","n":115,"predicted":0.3347,"observed":0.1652},{"bin":"0.4-0.5","n":371,"predicted":0.4621,"observed":0.4259},{"bin":"0.5-0.6","n":118,"predicted":0.5268,"observed":0.4576},{"bin":"0.6-0.7","n":1398,"predicted":0.6645,"observed":0.7425},{"bin":"0.7-0.8","n":41,"predicted":0.7542,"observed":0.8049},{"bin":"0.8-0.9","n":34,"predicted":0.858,"observed":0.8824},{"bin":"0.9-1.0","n":48,"predicted":0.9277,"observed":0.7917}]},"note":"served graduation odds pass the ECE <= 0.05 rule in production (validation 2026-09-19..22); left unrecalibrated"},"monitoring":"recompute daily from the radar log; publish the day's ECE; refit the map weekly; withdraw the rug number (null + reason) if the live ECE exceeds 0.05 on 3 of 7 days after a refit","verdict_live_outcomes":{"window":"radar first calls 2026-09-19..22: 28,325 non-mayhem launches under 30 s with no documented flag at call time, one call per mint","odds":"the recalibrated rug number, out of time (map fitted on 2026-09-13..18 calls); words assigned by the odds thresholds alone, the concentrated and stalled caution labels not applied in this table","outcome":"rugged_within_300s = our documented rug rule fired within 300 s after the call; graduated = true graduation","all_calls_rugged_within_300s":0.366,"words":{"avoid":{"n":10456,"share_of_calls":0.369,"rugged_within_300s":0.685,"graduated":0.009},"caution":{"n":8684,"share_of_calls":0.307,"rugged_within_300s":0.348,"graduated":0.01},"no_flags_observed":{"n":9185,"share_of_calls":0.324,"rugged_within_300s":0.018,"graduated":0.09}},"before_recalibration":{"note":"the same calls under the uncalibrated rug number served before this recalibration","avoid":{"n":18235,"share_of_calls":0.644,"rugged_within_300s":0.55,"graduated":0.01},"caution":{"n":3259,"share_of_calls":0.115,"rugged_within_300s":0.083,"graduated":0.248},"no_flags_observed":{"n":6831,"share_of_calls":0.241,"rugged_within_300s":0.007,"graduated":0.004}}},"why":"the model was fitted on research-harness snapshots whose rug base rate was about 0.76 (launches traded inside 3 s, about half of them mayhem); live checks see about 0.37, so the raw score overstated every band; the live map restores calibration while keeping the model's ranking"}}