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

6 rows where month = "2026-02", reporter_transport_mode = "Car" and vehicle_make = "Mg" sorted by month descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: vehicle_model, vehicle_colour, council_area_raw, nfa_rationale

council_area 5

  • Out of Force Area 2
  • Birmingham 1
  • Dudley 1
  • Walsall 1
  • Wolverhampton 1

disposal 4

  • Education 2
  • NFA 2
  • Other Action Taken 1
  • Warning Letter 1

offence 2

  • Driving without Due Care and Attention 5
  • Stop a vehicle within pelican pedestrian crossing limits 1

vehicle_make 1

  • Mg · 6 ✖

reporter_transport_mode 1

  • Car · 6 ✖

month 1

  • 2026-02 · 6 ✖
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
7272 op-snap---monthly-publication-february-2026.pdf   19 2026-02 Car Mg HS Black Driving without Due Care and Attention None Russelsheim Way, Rugby Russelsheim Way, Rugby Out of Force Area Out of Force Area NFA Out of Force      
7289 op-snap---monthly-publication-february-2026.pdf   36 2026-02 Car Mg 6 S GT Red Stop a vehicle within pelican pedestrian crossing limits None Alcester Road Alcester Road Birmingham Birmingham Education N/A   52.4470686 -1.8880749
7614 op-snap---monthly-publication-february-2026.pdf   361 2026-02 Car Mg HS Red Driving without Due Care and Attention None Dudley Road Dudley Road Dudley Dudley Warning Letter N/A   52.4881161 -2.1199108
7877 op-snap---monthly-publication-february-2026.pdf   624 2026-02 Car Mg 3 White Driving without Due Care and Attention None out of force Out Of Force Out of Force Area Out of Force Area NFA Out of Force      
8007 op-snap---monthly-publication-february-2026.pdf   754 2026-02 Car Mg HS Trophy White Driving without Due Care and Attention None Stafford Road Stafford Road Wolverhampton Wolverhampton Education N/A   52.6291998 -2.126312
8493 op-snap---monthly-publication-february-2026.pdf   1240 2026-02 Car Mg ZS Trophy White Driving without Due Care and Attention None Fisher Street Fisher Street Metropolitan Borough of Walsall Walsall Other Action Taken N/A   52.5847585 -2.0437296

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