Data source
All data displayed on CrimeMapsUK is sourced from data.police.uk, the official open-data platform maintained by the Home Office. The data is published under the Open Government Licence v3.0.
We collect two types of record:
- Street-level crime: individual crime records published by police forces across England and Wales, categorised by type (for example, violent crime, burglary, or anti-social behaviour). Each record includes an approximate location, a crime category, and an outcome status where available.
- Stop and search: records of stop-and-search encounters, including the date, approximate location, legislation used, object of the search, and the outcome of the encounter.
We do not create, modify, or interpret police records. We do not blend in third-party datasets, composite scores, or AI-generated analysis. The service reshapes published data so it can be searched, summarised, and compared — nothing more.
How data is collected
Data is ingested from the data.police.uk API using an automated pipeline. The pipeline runs for each monthly release:
- The list of active police forces is fetched from the API.
- For each force, stop-and-search records are downloaded by force identifier. Street-crime records are downloaded by geographic area using polygon coordinates that cover each force's jurisdiction.
- Larger force areas (for example, the Metropolitan Police area and Surrey) are split into smaller geographic tiles to avoid exceeding the API's response limits.
- Requests are rate-limited to 15 per second, with automatic retry and exponential backoff for failed or throttled requests.
- Records are inserted into the database using PostgreSQL bulk operations. Street crime data for a given month is replaced atomically — the existing month's records are deleted and new records are inserted within a single database transaction, so a failed import cannot leave the table empty.
Deduplication
Each record is assigned a SHA-256 hash derived from all of its data fields. This hash is used to identify duplicate records. If the same record appears in overlapping API responses (for example, where force area tiles overlap), the duplicate is detected and only one copy is stored.
For stop-and-search data, a unique constraint on the hash column prevents duplicate insertion at the database level. For street crime data, each monthly import replaces the full month, so duplicates within a month are naturally eliminated.
Location data
Coordinates published by data.police.uk are not exact incident locations. Before publication, the Home Office snaps each coordinate to a nearby anonymous map point — typically the centre of a street or a local landmark. This means that multiple incidents may share the same published coordinate, and no individual address can be identified from the data.
Coordinates are stored using the WGS 84 coordinate reference system (SRID 4326). Where PostGIS is available, spatial indexes and geography columns are used for efficient radius and bounding-box queries. Where PostGIS is not available, the service falls back to bounding-box filtering with haversine distance calculations in Python.
Maps and hex grid summarisation
The interactive maps display crime and stop-and-search density using a hexagonal grid rather than showing individual incident markers. This approach protects the approximate nature of the location data and provides a clearer picture of geographic patterns.
Hex grids are pre-computed using the PostGIS ST_HexagonGrid function at two zoom levels:
- Overview level: hexagons with a 1,100-metre edge length, used when the map is zoomed out. Each hexagon shows the total count of incidents and a breakdown by outcome category.
- Detail level: hexagons with a 275-metre edge length, used when the map is zoomed in past a threshold. This provides finer geographic resolution while still aggregating multiple incidents per cell.
For each hexagon, incidents are classified by their published outcome. Street crime outcomes are grouped into police-recorded action (such as a charge, caution, or penalty notice), local resolution, and other or unresolved (such as no suspect identified or investigation incomplete). Stop-and-search outcomes are grouped into find or arrest, other action taken, and nothing found.
Hex summaries are rebuilt automatically after each monthly data ingest.
Dashboard calculations
Dashboards present grouped totals, rates, and comparisons calculated directly from stored records. Available filters vary by dashboard but typically include police force, time period, crime category, and age range.
All dashboard queries are cached for 15 minutes. This means that the figures shown may lag slightly behind the most recent database update, but will never be more than 15 minutes out of date during normal operation.
Neighbourhood reports
Neighbourhood PDF reports are scoped to a postcode and a fixed search radius. The report process works as follows:
- The postcode is geocoded to a latitude and longitude representing the postcode centroid.
- A search radius of 0.5 kilometres is applied. All street crime records with published coordinates within this radius are selected. The radius query uses PostGIS
ST_DWithinon geography columns for accurate distance measurement, with a bounding-box pre-filter for efficiency. - The search radius is fixed at 0.5 km for every neighbourhood report. The time window depends on the product: 12 months for the 12-month report, or 60 months for the 5-year report (including prepaid pack vouchers).
- Selected crimes are aggregated by category, month, outcome status, and location. The report includes a breakdown of crime types, a month-by-month trend, the most frequently occurring locations, and an outcome resolution rate.
- Local crime category shares are compared against the wider police force area and against England and Wales as a whole. The national benchmark is built from the published dataset itself: national aggregates of all published incidents for the same month window as the report.
- The report includes a static density map showing where published incidents are concentrated within the search radius, with the 0.5 km boundary drawn on the map. It does not use exact-looking incident pins.
Every report documents its postcode, search radius, time window, and the comparison method used, so readers can assess exactly what area and period the figures cover. For a walkthrough, see How to read a neighbourhood report.
National comparison method
National comparisons appear in neighbourhood reports, where the local area is benchmarked against England and Wales. The benchmark uses the published dataset itself: national aggregates of all published incidents for the same month window as the report. If no same-window national aggregates are available, the report omits the England and Wales comparison and says so — we do not substitute figures from another source.
Category-mix benchmarking compares the share of each crime type in the local area against the share nationally. For example, if violent crime makes up 35% of local incidents but 28% nationally, that difference is reported as a percentage-point deviation. This method compares the composition of crime rather than the absolute volume, because population data is not available at the small-area level needed for per-capita rates.
Police-area comparison follows the same method but uses the full set of published incidents for the relevant constabulary in the same time window as the baseline.
Important limitations
The source data has known limitations. We document these rather than hiding them.
- Approximate locations. Published coordinates are snapped to anonymous map points by the Home Office before publication. They should not be treated as exact incident addresses. Multiple incidents may share the same published coordinate.
- Recorded crime only. The data represents crimes recorded by police, not all crime experienced. Under-reporting varies by crime type — for example, fraud and domestic abuse are significantly under-reported relative to their true prevalence.
- Force-to-force variation. Recording practices differ between police forces. Changes in recording standards (such as the 2014 uplift in violence recording) can cause apparent increases or decreases that reflect policy changes rather than real changes in crime levels.
- Outcome labels are not court results. Outcome categories shown are those published by police forces at the time of recording. They are not the same as court verdicts, sentences, or the full case history. Outcomes may be updated or revised after initial publication.
- Recent months may be revised. Police forces can revise or backfill published records after the initial release. Figures for recent months may change as forces update their submissions.
- No population-based rates at small areas. Neighbourhood reports and maps show incident counts and category shares rather than per-capita rates. Reliable small-area population denominators are not available at the resolution needed, so direct rate comparisons between areas of different sizes or populations should be made with care.
Force area pages
Indexable place pages such as Crime in London use the same monthly force rollups as the dashboards. The public URL may use a familiar city name, but the figures remain police-force totals — not city-council or postcode boundaries. Browse the full list at crime by police force area.
Open data and licensing
The policing data used by this service is published by the Home Office under the Open Government Licence v3.0. National comparison figures are derived from the same published dataset; no other data source is used.
For shorter answers to common questions, see the FAQ. Guides for buyers include how to check crime rates before buying a house and crime checks vs conveyancing searches. If you believe something on this page is inaccurate, please get in touch.