London Crime Data

MPS open datasets as Parquet files. Updated monthly. GitHub

These figures are crimes recorded by the Metropolitan Police Service. Unreported crimes are not included.
...
Latest data month
Stop and search records (Jun 2020–present)
...
VAWG offence records (Jan 2014–present)
...
Homicide records (from 2003)
Charts

Monthly recorded crime

Total offences across all MPS boroughs, Aug 2023–Jul 2025

Knife crime

Monthly knife crime offences, last 3 years

Crime by category

Top 10 major offence categories, Aug 2023–Jul 2025

Stop and search by ethnicity

Officer-defined ethnicity, records where field is populated

Crime by borough

Total recorded offences by MPS borough, Mar 2024–Feb 2026
Data preview

Sample rows from recorded-crime-borough.parquet — violence against the person, selected boroughs, last 3 months. The full file has 1,015 rows and 27 columns (3 key columns + 24 monthly count columns).

Datasets
recorded-crime-borough.parquet
Borough-level crime counts, last 24 months. Major + minor offence categories.
~1K rows (wide)Aug 2023–Jul 2025
Download
recorded-crime-borough-historical.parquet
Same as above, from April 2010.
~950 rows (wide)Apr 2010–Jul 2023
Download
recorded-crime-ward.parquet
Ward-level crime counts with major + minor categories, last 24 months.
~18K rows (wide)Aug 2023–Jul 2025
Download
recorded-crime-ward-historical.parquet
Ward-level, from April 2010.
~19K rows (wide)Apr 2010–Jul 2023
Download
recorded-crime-lsoa.parquet
LSOA-level crime counts, last 24 months.
~101K rows (wide)Aug 2023–Jul 2025
Download
stop-search.parquet
Individual stop and search records. Ethnicity, legislation, object of search, outcome.
1.35M rowsJun 2020–Feb 2026
Download
monthly-crime-dashboard.parquet
Knife crime, domestic abuse, hate crime, gun crime — monthly totals by borough.
472K rows
Download
vawg-offences.parquet
Violence against women and girls offence counts by type, borough, month.
411K rowsJan 2014–present
Download
vawg-victims.parquet
VAWG victim demographics by offence type and borough.
411K rowsJan 2014–present
Download
homicide.parquet
Homicide records: method, demographics, borough, proceedings date.
4.5K rowsfrom 2003
Download
custody.parquet
Custody suite records: arrests by ethnicity, disposal type, strip searches.
33K rows
Download
thorough-searches.parquet
More thorough and intimate part searches (MTIPS). Ethnicity, age, outcome.
44K rowsJan 2019–present
Download
business-crime-offences.parquet
Business crime offence counts by type, borough, month.
291K rows~3.5 years
Download
business-crime-outcomes.parquet
Business crime outcomes by type, borough, month.
407K rows~3.5 years
Download
stolen-animals.parquet
Stolen animal reports by species, borough, month.
5.7K rowsApr 2010–present
Download
recorded-crime-lsoa-historical.parquet
LSOA-level crime counts from April 2010.
~113K rows (wide)Apr 2010–Jul 2023
Download
Usage
import polars as pl REPO = "https://raw.githubusercontent.com/fenneh/london-crime-data/main/data" # Direct download — no clone needed df = pl.read_parquet(f"{REPO}/recorded-crime-borough.parquet") # Geographic breakdown files are in wide format. # Unpivot to get one row per (borough, category, month). month_cols = [c for c in df.columns if c.isdigit()] long = df.unpivot( on=month_cols, index=["majortext", "minortext", "boroughname"], variable_name="month", value_name="count", ) # Knife crime by borough knife = long.filter(pl.col("minortext").str.contains("KNIFE|BLADE|WEAPON")) print(knife.group_by("boroughname").agg(pl.col("count").sum()).sort("count", descending=True))