{"ok": true, "database": "opsnap", "query_name": "disposal-breakdown-by-month", "rows": [["2025-01", 1647, 261, 239, 816, 118, 189, 89.0], ["2025-02", 2070, 289, 385, 1003, 132, 244, 88.0], ["2025-03", 2395, 486, 513, 930, 128, 308, 87.0], ["2025-04", 2024, 109, 141, 230, 21, 1506, 26.0], ["2025-05", 1820, 331, 433, 200, 47, 789, 57.0], ["2025-06", 2172, 391, 468, 215, 95, 977, 55.0], ["2025-07", 2123, 216, 793, 137, 81, 878, 59.0], ["2025-08", 1847, 277, 721, 110, 71, 641, 65.0], ["2025-09", 1847, 241, 701, 154, 72, 633, 66.0], ["2025-10", 1731, 229, 664, 151, 48, 615, 64.0], ["2025-11", 1592, 230, 540, 160, 75, 577, 64.0], ["2025-12", 1311, 147, 419, 171, 38, 516, 61.0], ["2026-01", 1409, 432, 245, 223, 51, 406, 70.0], ["2026-02", 1639, 460, 360, 242, 74, 443, 72.0]], "truncated": false, "columns": ["Month", "Total", "Education", "Warning letter", "Fixed penalty", "Court", "NFA", "Action rate %"], "query": {"sql": "select month as Month, count(*) as Total, sum(case when disposal = 'Education' then 1 else 0 end) as Education, sum(case when disposal = 'Warning Letter' then 1 else 0 end) as [Warning letter], sum(case when disposal = 'Fixed Penalty' then 1 else 0 end) as [Fixed penalty], sum(case when disposal = 'Court' then 1 else 0 end) as Court, sum(case when disposal = 'NFA' then 1 else 0 end) as NFA, round(100.0 * sum(case when disposal not in ('NFA', 'Duplicate Submission') then 1 else 0 end) / count(*), 0) as [Action rate %] from reports group by month order by month", "params": {}}, "error": null, "private": false, "allow_execute_sql": true, "query_ms": 32.23613277077675, "source": "West Midlands Police", "source_url": "https://www.westmidlands.police.uk/police-forces/west-midlands-police/areas/campaigns/campaigns/operation-snap/", "license": "ODbL", "license_url": "https://openstreetmap.org/copyright"}