home / opsnap

reports

Each row is one public submission to Operation Snap. Includes the offence, vehicle details, location, and outcome.

Disposal outcomes: Education (driver awareness course), Warning Letter, Fixed Penalty (fine), Court (prosecution), NFA (no further action).

Data license: ODbL · Data source: West Midlands Police

id
{'label': 'ID'}
source_file
{'label': 'Source PDF'}
source_page
{'label': 'Page'}
source_row
{'label': 'Row'}
month
{'label': 'Month'}
reporter_transport_mode
{'label': 'Reporter'}
vehicle_make
{'label': 'Make'}
vehicle_model
{'label': 'Model'}
vehicle_colour
{'label': 'Colour'}
offence
{'label': 'Offence'}
second_offence
{'label': 'Second offence'}
offence_location_raw
{'label': 'Location (raw)'}
offence_location
{'label': 'Location'}
council_area_raw
{'label': 'Council (raw)'}
council_area
{'label': 'Council area'}
disposal
{'label': 'Outcome'}
nfa_rationale
{'label': 'NFA reason'}
witness_contacted
{'label': 'Witness contacted'}
latitude
{'label': 'Lat'}
longitude
{'label': 'Lng'}

15 rows where disposal = "Court", offence = "Contravening a Red Traffic Light" and vehicle_make = "BMW" sorted by month descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: source_file, vehicle_model, vehicle_colour, second_offence, council_area_raw

month 9

  • 2025-06 3
  • 2025-07 3
  • 2025-01 2
  • 2025-03 2
  • 2025-05 1
  • 2025-08 1
  • 2025-09 1
  • 2025-10 1
  • 2025-12 1

council_area 6

  • Birmingham 9
  • Dudley 2
  • Sandwell 1
  • Sutton Coldfield 1
  • Walsall 1
  • Wolverhampton 1

vehicle_make 1

  • BMW · 15 ✖

reporter_transport_mode 1

  • Car 15

offence 1

  • Contravening a Red Traffic Light · 15 ✖

disposal 1

  • Court · 15 ✖
id source_file source_page source_row month ▲ reporter_transport_mode vehicle_make vehicle_model vehicle_colour offence second_offence offence_location_raw offence_location council_area_raw council_area disposal nfa_rationale witness_contacted latitude longitude
5054 op-snap---monthly-publication-december-2025.pdf   1182 2025-12 Car BMW 330.. Grey Contravening a Red Traffic Light None Great Barr Interchange Great Barr Interchange Birmingham Birmingham Court N/A   52.544549 -1.9310678
22540 op-snap---monthly-publication-october-2025.pdf   490 2025-10 Car BMW X5 Black Contravening a Red Traffic Light No Insurance Lewisham Road Lewisham Road Sandwell Sandwell Court N/A   52.5007274 -1.9661248
24009 op-snap---monthly-publication-september-2025.pdf   228 2025-09 Car BMW 5 series Grey Contravening a Red Traffic Light None Northfield Road Northfield Road Birmingham Birmingham Court N/A   52.4167654 -1.9411244
3193 op-snap---monthly-publication-august-2025.pdf   1168 2025-08 Car BMW M3 Black Contravening a Red Traffic Light No Insurance Oxford Street Island at A463 Oxford Street Island at A463 Wolverhampton Wolverhampton Court N/A   52.5648968 -2.0708366
12045 op-snap---monthly-publication-july-2025.pdf   97 2025-07 Car BMW 3 Series Blue Contravening a Red Traffic Light None Duddeston Mill Road Duddeston Mill Road Birmingham Birmingham Court N/A   52.4884042 -1.8688885
12518 op-snap---monthly-publication-july-2025.pdf   570 2025-07 Car BMW 3 series Black Contravening a Red Traffic Light None Warwick Road Warwick Road Birmingham Birmingham Court N/A   52.4555288 -1.8613929
13203 op-snap---monthly-publication-july-2025.pdf   1255 2025-07 Car BMW M3 Blue Contravening a Red Traffic Light No Insurance New Johns Street West New Johns Street West Birmingham Birmingham Court N/A      
14751 op-snap---monthly-publication-june-2025.pdf   680 2025-06 Car BMW X6 Black Contravening a Red Traffic Light None Stratford Road Stratford Road Birmingham Birmingham Court N/A   52.4203897 -1.8338574
15246 op-snap---monthly-publication-june-2025.pdf   1175 2025-06 Car BMW M4 White Contravening a Red Traffic Light None NEW B-HAM ROAD New B-Ham Road Dudley Dudley Court N/A      
15617 op-snap---monthly-publication-june-2025.pdf   1546 2025-06 Car BMW 318D Grey Contravening a Red Traffic Light No Insurance Icknield St Icknield Street Sutton Coldfield Sutton Coldfield Court N/A   52.5709191 -1.8759339
19654 op-snap---monthly-publication-may-2025.pdf   1016 2025-05 Car BMW 116 Black Contravening a Red Traffic Light None WITTON ROAD Witton Road Birmingham Birmingham Court N/A   52.513336 -1.8833226
16268 op-snap---monthly-publication-march-2025.pdf   25 2025-03 Car BMW 2 series White Contravening a Red Traffic Light Use vehicle on a road without valid test certificate Hagley Road Hagley Road Birmingham Birmingham Court N/A Yes - Via Email 52.471632 -1.9456776
16984 op-snap---monthly-publication-march-2025.pdf   741 2025-03 Car BMW X3 Grey Contravening a Red Traffic Light No Insurance Brooklands Road Brooklands Road Birmingham Birmingham Court N/A Yes - Via Email 52.4368229 -1.8413396
9087 op-snap---monthly-publication-january-2025.pdf   195 2025-01 Car BMW 3 series Black Contravening a Red Traffic Light No Insurance Chase Road Chase Road Walsall Walsall Court N/A Yes - Via Email 52.6146822 -2.0143222
9668 op-snap---monthly-publication-january-2025.pdf   776 2025-01 Car BMW 430i White Contravening a Red Traffic Light VRM fails to conform to Regulations High Street, Quarry Bank High Street, Quarry Bank Dudley Dudley Court N/A Yes - Via Email 52.4576453 -2.1150716

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE reports (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            source_file TEXT NOT NULL,
            source_page INTEGER,
            source_row INTEGER,
            month TEXT NOT NULL,
            reporter_transport_mode TEXT,
            vehicle_make TEXT,
            vehicle_model TEXT,
            vehicle_colour TEXT,
            offence TEXT,
            second_offence TEXT,
            offence_location_raw TEXT,
            offence_location TEXT,
            council_area_raw TEXT,
            council_area TEXT,
            disposal TEXT,
            nfa_rationale TEXT,
            witness_contacted TEXT
        , latitude REAL, longitude REAL);
CREATE INDEX idx_month ON reports(month);
CREATE INDEX idx_council_area ON reports(council_area);
CREATE INDEX idx_offence ON reports(offence);
CREATE INDEX idx_disposal ON reports(disposal);
CREATE INDEX idx_location ON reports(offence_location);