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'}

7 rows where offence = "Drive on hard shoulder" and vehicle_make = "Toyota" sorted by month descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

month 5

  • 2025-08 2
  • 2025-09 2
  • 2025-02 1
  • 2025-12 1
  • 2026-01 1

disposal 4

  • Fixed Penalty 3
  • Education 2
  • Court 1
  • NFA 1

council_area 4

  • Birmingham 4
  • 6B Itromwianrgdhsa Smalford C 1
  • Out of Force Area 1
  • Sandwell 1

vehicle_make 1

  • Toyota · 7 ✖

reporter_transport_mode 1

  • Car 7

offence 1

  • Drive on hard shoulder · 7 ✖
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
11112 op-snap---monthly-publication-january-2026.pdf   573 2026-01 Car Toyota Noah Voxy ZWR80 White Drive on hard shoulder None M5 NB approaching M6 (S) slip M5 Northbound approaching M6 (S) slip Sandwell Sandwell Fixed Penalty N/A      
4908 op-snap---monthly-publication-december-2025.pdf   1036 2025-12 Car Toyota Prius White Drive on hard shoulder None M42 separates to M6 Toll M42 separates to M6 Toll Out of Force Area Out of Force Area NFA Out of Force      
23922 op-snap---monthly-publication-september-2025.pdf   141 2025-09 Car Toyota Yaris Red Drive on hard shoulder None m42 M42 Birmingham Birmingham Fixed Penalty N/A      
24418 op-snap---monthly-publication-september-2025.pdf   637 2025-09 Car Toyota Corolla Grey Drive on hard shoulder None M5 Southbound jn 3-4 M5 Southbound jn 3-4 Birmingham Birmingham Fixed Penalty N/A      
2510 op-snap---monthly-publication-august-2025.pdf   485 2025-08 Car Toyota Yaris Grey Drive on hard shoulder None M5 approaching Jct 8 M6 M5 approaching Junction 8 M6 Birmingham Birmingham Education N/A      
2743 op-snap---monthly-publication-august-2025.pdf   718 2025-08 Car Toyota Avensis Black Drive on hard shoulder None M6 North Jct 4A M6 North Junction 4A Birmingham Birmingham Education N/A      
5485 op-snap---monthly-publication-february-2025.pdf   302 2025-02 Car Toyota Corolla White Drive on hard shoulder None M6 Southbound (exit slip at Junction M6 Southbound (exit slip at Junction 6B itromwianrgdhsa Smalford C 6B Itromwianrgdhsa Smalford C Court N/A Yes - Via Email    

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