# Enforcement-Bias Audit *Generated 2026-09-01 23:22 UTC ยท MargaDrishti Phase 9* ## Why this exists Finding F6: `corr(log patrol_hours, log total_captures) = 0.967`. Roughly **94% of the variance** in per-cell violation counts is explained by how much patrolling happened there โ€” not by how much illegal parking happened there. Violation records are **enforcement observations, not violation occurrences**. A model trained on them largely reconstructs the existing patrol roster. Deployed as a recommender, it sends officers where officers have been, generating more records there, confirming itself. This audit measures how close the system sits to that loop. **It does not issue a clearance.** The bias is known to exist and cannot be removed from this data; the honest output is a magnitude. ## Findings | Test | Statistic | Concern | Interpretation | |---|---|---|---| | feedback loop | `+0.613` | **MODERATE** | Spearman rho=+0.613 between score and historical patrol hours - recommendations substantially track past patrolling | | under-observation coverage | `+0.000` | **HIGH** | no recommendation reaches an under-observed cell, though 25.8% of cells are flagged - the system only looks where someone already looked | | station disparity | `+0.209` | **HIGH** | recommendation Gini 0.796 vs violation Gini 0.587 (excess +0.209) across 53 stations | | counterfactual patrol | `+0.300` | **MODERATE** | only 30% of the top-50 cells survive equalising patrol effort (full-ranking tau +0.318) | **Highest concern level: HIGH** ## Deployment-plan coverage - Cells assigned: **8** of 1,802 - Share of total city risk addressed: **10.43%** - Under-observed cells in the plan: **0** | rank | cell | rcri | parking_share | under_observed | reason | |-------:|:----------------|--------:|----------------:|:-----------------|:-------------------------------------------------------| | 1 | 8960145b427ffff | 0.98443 | 0.962 | False | highest remaining risk outside an already-covered area | | 2 | 8961892e9abffff | 0.88877 | 0.99 | False | highest remaining risk outside an already-covered area | | 3 | 89601690193ffff | 0.79073 | 0.992 | False | highest remaining risk outside an already-covered area | | 4 | 89618920babffff | 0.63428 | 0.878 | False | highest remaining risk outside an already-covered area | | 5 | 8960145b59bffff | 0.46944 | 0.939 | False | highest remaining risk outside an already-covered area | | 6 | 8960145b543ffff | 0.44005 | 0.96 | False | highest remaining risk outside an already-covered area | | 7 | 8961892e16bffff | 0.41807 | 0.895 | False | highest remaining risk outside an already-covered area | | 8 | 896016964b7ffff | 0.41304 | 1 | False | highest remaining risk outside an already-covered area | ## What this system does and does not claim **Does:** rank locations by predicted enforcement demand, conditioned on observed patrol effort, with under-observed cells flagged. **Does not:** claim to identify where illegal parking actually occurs. Phase 5 established that no Getis-Ord hotspot survives exposure adjustment โ€” the apparent spatial structure of violations is substantially a map of where officers went. **Never:** rank or profile an individual officer or vehicle owner. `device_id`, `created_by_id` and `vehicle_number` are used only in aggregate. ## Mitigations in force 1. Enforcement effort enters models as both features and a Poisson offset, so the target is a rate per unit effort rather than a raw count. 2. Under-observed cells (bottom patrol-coverage quartile) are flagged and surfaced, never silently dropped โ€” excluding them would entrench the existing patrol map. 3. Constructed indices (CIS, RCRI) are labelled as constructed wherever they appear, and CIS is **not externally validated** (F16). 4. Deployment plans carry a per-assignment reason so an inspector can overrule on visible grounds.