{
  "status": "ok",
  "summary": "Random CV is invalidated by location memorization. Spatial/purged/city holdouts are the defensible accuracy view.",
  "feature_status": {
    "district_join_share": 0.9921752738654147,
    "district_nightlights": "ok",
    "education_points_in_bbox": 3290,
    "police_points_in_bbox": 5609,
    "airport_points_in_bbox": 735,
    "energy_points_in_bbox": 174,
    "cells_with_mumbai_slum_overlap": 294
  },
  "feature_counts": {
    "coordinate_city_features": 20,
    "full_current_features": 42,
    "open_non_location_features": 21
  },
  "direct_target_column_scan": {
    "forbidden_feature_columns_present": [],
    "passed": true
  },
  "audits": {
    "full_features_random_5fold_invalidated": {
      "n": 7029,
      "pearson_r": 0.811151589795244,
      "spearman_r": 0.8340411676188406,
      "wmape": 0.4342084512444196,
      "top_10_overlap": 0.6401137980085349
    },
    "coordinate_city_only_random_5fold": {
      "n": 7029,
      "pearson_r": 0.8458469700424112,
      "spearman_r": 0.8560805236174053,
      "wmape": 0.4004227254602432,
      "top_10_overlap": 0.6657183499288762
    },
    "full_features_spatial_block_0_03deg": {
      "n": 7029,
      "pearson_r": 0.7523691489772608,
      "spearman_r": 0.7794267698273525,
      "wmape": 0.4974989692530782,
      "top_10_overlap": 0.5945945945945946
    },
    "coordinate_city_only_spatial_block_0_03deg": {
      "n": 7029,
      "pearson_r": 0.7292302742614928,
      "spearman_r": 0.769573916241467,
      "wmape": 0.5113422085933808,
      "top_10_overlap": 0.5462304409672831
    },
    "full_features_spatial_block_0_10deg": {
      "n": 7029,
      "pearson_r": 0.6668576278518135,
      "spearman_r": 0.6820540019812456,
      "wmape": 0.5802857248648852,
      "top_10_overlap": 0.5078236130867709
    },
    "open_non_location_features_city_holdout": {
      "n": 7029,
      "pearson_r": 0.4378207908187254,
      "spearman_r": 0.46708308828009637,
      "wmape": 0.7249870972190818,
      "top_10_overlap": 0.36415362731152207
    },
    "full_features_city_holdout": {
      "n": 7029,
      "pearson_r": 0.4487391826888528,
      "spearman_r": 0.5357960756879091,
      "wmape": 0.7004503004901912,
      "top_10_overlap": 0.32147937411095306
    },
    "full_features_purged_spatial_0_10deg_3km": {
      "n": 7029,
      "pearson_r": 0.6040869313129721,
      "spearman_r": 0.6257902619063396,
      "wmape": 0.637563536876208,
      "top_10_overlap": 0.45519203413940257,
      "mean_train_rows_after_purge": 4614.8,
      "purge_km": 3.0,
      "block_deg": 0.1
    },
    "full_features_purged_spatial_0_10deg_5km": {
      "n": 7029,
      "pearson_r": 0.5310941731134968,
      "spearman_r": 0.5759718252195779,
      "wmape": 0.6744761871200341,
      "top_10_overlap": 0.41109530583214793,
      "mean_train_rows_after_purge": 3791.4,
      "purge_km": 5.0,
      "block_deg": 0.1
    },
    "shuffled_label_random_5fold": {
      "n": 7029,
      "pearson_r": -0.04627399800470996,
      "spearman_r": -0.035544519359746334,
      "wmape": 0.8989857026545772,
      "top_10_overlap": 0.07681365576102418
    },
    "location_memorization_gap": {
      "random_spearman_full_minus_coordinate_only": -0.022039355998564658,
      "spatial_0_03_spearman_full_minus_coordinate_only": 0.009852853585885502
    }
  },
  "verdict": {
    "random_cv_allowed_as_accuracy_claim": false,
    "reason": "Coordinate+city alone nearly matches full-feature random CV, proving the split rewards local interpolation.",
    "current_defensible_spearman_range": "0.56 to 0.67 for conservative city/purged spatial transfer; 0.77 only for small 0.03 degree blocks.",
    "production_ready_0_80_claim": false
  }
}