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 month = "2025-10", 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: vehicle_model, vehicle_colour, second_offence, council_area_raw, nfa_rationale

disposal 5

  • Education 7
  • NFA 4
  • Warning Letter 2
  • Court 1
  • Fixed Penalty 1

council_area 5

  • Birmingham 10
  • Dudley 2
  • Out of Force Area 1
  • Sandwell 1
  • Sutton Coldfield 1

reporter_transport_mode 3

  • Car 12
  • Lorry 2
  • Pedal Bike 1

vehicle_make 1

  • BMW · 15 ✖

offence 1

  • Contravening a Red Traffic Light · 15 ✖

month 1

  • 2025-10 · 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
22059 op-snap---monthly-publication-october-2025.pdf   9 2025-10 Lorry BMW X2 Black Contravening a Red Traffic Light None Castlegate Castlegate Out of Force Area Out of Force Area NFA Out of Force   52.5160683 -2.0715501
22126 op-snap---monthly-publication-october-2025.pdf   76 2025-10 Car BMW 320 White Contravening a Red Traffic Light None Calthorpe Road Calthorpe Road Birmingham Birmingham Education N/A   52.5142235 -1.9073557
22306 op-snap---monthly-publication-october-2025.pdf   256 2025-10 Car BMW 330d Blue Contravening a Red Traffic Light None Alcester Road Alcester Road Birmingham Birmingham Fixed Penalty N/A   52.4470686 -1.8880749
22404 op-snap---monthly-publication-october-2025.pdf   354 2025-10 Car BMW 116.. Orange Contravening a Red Traffic Light None Heartlands Parkway Heartlands Parkway Birmingham Birmingham NFA No Independent Evidence Available   52.5038363 -1.8432663
22461 op-snap---monthly-publication-october-2025.pdf   411 2025-10 Car BMW 120d Black Contravening a Red Traffic Light None Whitehouse Common Road Whitehouse Common Road Sutton Coldfield Sutton Coldfield Warning Letter N/A   52.574907 -1.8032902
22470 op-snap---monthly-publication-october-2025.pdf   420 2025-10 Lorry BMW 320i Black Contravening a Red Traffic Light None Summer Lane Summer Lane Birmingham Birmingham Education N/A   52.4948034 -1.8983555
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
22631 op-snap---monthly-publication-october-2025.pdf   581 2025-10 Car BMW 220d Black Contravening a Red Traffic Light None Bath Road Bath Road Dudley Dudley Education N/A   52.4552307 -2.1496182
22814 op-snap---monthly-publication-october-2025.pdf   764 2025-10 Pedal Bike BMW 520D Grey Contravening a Red Traffic Light None Bristol Road Bristol Road Birmingham Birmingham NFA No Independent Evidence Available   52.4543565 -1.9114004
22820 op-snap---monthly-publication-october-2025.pdf   770 2025-10 Car BMW 3 Series Black Contravening a Red Traffic Light None Queensbrodge Road Queensbrodge Road Birmingham Birmingham Warning Letter N/A      
22870 op-snap---monthly-publication-october-2025.pdf   820 2025-10 Car BMW 118i Black Contravening a Red Traffic Light None Pershore Road South Pershore Road South Birmingham Birmingham Education N/A   52.4150779 -1.930901
22914 op-snap---monthly-publication-october-2025.pdf   864 2025-10 Car BMW X5.. White Contravening a Red Traffic Light None Wheelers Lane Wheelers Lane Birmingham Birmingham Education N/A   52.4306504 -1.878052
22920 op-snap---monthly-publication-october-2025.pdf   870 2025-10 Car BMW 320i Blue Contravening a Red Traffic Light None Bromsgrove Street Bromsgrove Street Birmingham Birmingham Education N/A   52.4728322 -1.897536
22930 op-snap---monthly-publication-october-2025.pdf   880 2025-10 Car BMW 118i Black Contravening a Red Traffic Light None Green Lane Green Lane Birmingham Birmingham NFA No Independent Evidence Available   52.4618966 -1.9955421
22991 op-snap---monthly-publication-october-2025.pdf   941 2025-10 Car BMW M135I Grey Contravening a Red Traffic Light None Heath Lane Heath Lane Dudley Dudley Education N/A   52.4495524 -2.1459067

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);