ic_001 · Industry: Healthcare — 90-day readmission prediction
Status: ✓ Passing · Last run: 2026-06-07T06:00:33 · Pipeline: v2
· History: 1/2 runs passed (50%)
What was tested
Canonical healthcare ML problem: predict whether each patient will be hospitalized again within 90 days, using patient demographics + diagnoses + encounters + medications + lab results, with a quarterly observation panel for the target. Mirrors the actual customer shape Yifan was iterating on for 6 days. Six tables (5 entities/events + 1 labels panel). Planted signal: high-comorbidity patients with frequent ER encounters + abnormal labs have higher readmission probability.
What we planted in the data
- 300 entities
- Signal strength: 0.70 (sigmoid slope multiplier)
What the system did
- Training rows built: 1,200
- Features used in model: 25
- Model selected:
RandomForestClassifier - CV AUC: 0.745
Top features by importance:
diagnoses_count_365d(0.150)diagnoses_count_180d(0.141)bnp_avg_90d(0.123)all_encounters_count_180d(0.113)inpatient_visits_count_365d(0.109)
What we checked — all assertions passed
| Status | Assertion | Detail |
|---|---|---|
| ✓ | no_pipeline_errors |
clean run |
| ✓ | feature_survival_rate_above |
25/60 features survived (42% ≥ 40%) |
| ✓ | source_tables_contributing_above |
13 distinct source-table prefixes in surviving features (['abnormal', 'age', 'all', 'bnp', 'diagnoses', 'er', 'gender', 'inpatient', 'ins… |
| ✓ | auc_in_band |
AUC = 0.745 inside band [0.55, 0.95] |
How this could have gone wrong
- If
no_pipeline_errorsfailed: Pipeline must run cleanly end-to-end through 6 tables. - If
feature_survival_rate_abovefailed: At least 40% of generated features must survive dry-run. - If
source_tables_contributing_abovefailed: At least 3 of the 5 source tables must contribute surviving features. - If
auc_in_bandfailed: AUC at least meaningfully above random.
Why this case matters
This shape (entity + multiple event streams + panel labels) is THE canonical healthcare ML problem. If we can do this end-to-end the buyer-facing pitch is concrete: "we just trained a 90-day readmission model from 6 tables in 10 minutes."
Reproducing
# from auto_insight_api/
python -m validation.v2 run ic_001 --pipeline v2 -v
- Case config:
validation/v2/cases/ic_001_healthcare_readmission.yaml - Data shape:
industry_healthcare_readmission - Analytics type:
ml_binary