{ "rows": 5523, "enterprises": 263, "as_of_dates": 21, "date_min": "2024-08-31", "date_max": "2026-04-30", "positives": 242, "positive_rate": 0.0438, "features": [ "feed_cost_change", "output_price_change", "margin_squeeze", "price_z_score", "rainfall_anomaly", "heat_anomaly", "cash_flow_change", "emi_delay", "inventory_days", "upi_inflow_change", "feed_staleness_days", "days_since_last_entry", "emi_to_inflow" ], "excluded": { "dscr_p10": "reads forecast_point with no as-of filter \u2014 present leaks into past", "dscr_p50": "same" }, "horizon_months": 3, "dpd_threshold": 30, "label_source_split": { "SEEDED": 273, "SEEDED_HISTORY": 6039 }, "synthetic_label_share": 1.0, "feature_coverage": { "feed_cost_change": 84.1, "output_price_change": 97.7, "margin_squeeze": 83.4, "price_z_score": 90.3, "rainfall_anomaly": 100.0, "heat_anomaly": 100.0, "cash_flow_change": 100.0, "emi_delay": 100.0, "inventory_days": 100.0, "upi_inflow_change": 0.0, "feed_staleness_days": 100.0, "days_since_last_entry": 100.0, "emi_to_inflow": 100.0 }, "caveats": [ "Feature rows are reconstructed by fact date, not knowledge date \u2014 the archive was ingested in one pass, so a past row uses a value a live run of that date would not yet have had.", "Labels are generated DPD history (SEEDED_HISTORY). Metrics computed on this dataset measure the generator as much as the borrowers, and must be reported as computed on synthetic history.", "dscr_p10 and dscr_p50 are excluded: both read the current forecast at every as-of date." ] }