Police discipline in British Columbia · the published record, 2010–2025
1,243 allegations · 727 cases · 15 municipal agencies · 576 adjudication documents · 2010–2025
Every file, the R script, and a way to run it in the browser.
Everything behind this site can be downloaded: the OPCC's export as published, the analysis table, every hand-coding sheet with its supporting quotes, and the scripts behind every number. The archive is 4.2 MB. The 576 adjudication PDFs (569 MB) stay at opcc.bc.ca, and the index in the archive lists every URL.
The README maps its five folders: the source as published, the coded tables, the hand-coding sheets, the passage corpora, and the results with their scripts. Each hand-coded sheet opens with a provenance header naming who or what coded it, when, and with which script.
| Column | What it holds |
|---|---|
| allegation_id | Row number, 1 to 1,243. |
| file_number | The OPCC file number; one case per file. |
| agency | The municipal police agency. |
| year_concluded | The year the case concluded. |
| incident_year | The year of the incident, where the digest records it. |
| statutory_heading | The Police Act heading the allegation was filed under, as published. |
| opcc_sublabel | The OPCC's own keyword sub-label. |
| conduct_category | The machine-coded conduct category, one of fourteen; checks on the methods page. |
| is_gbv | The wide gender-based violence flag: any of the four rules. |
| is_gbv_narrow | Rules 1 and 2 only: conduct an officer committed. |
| is_gbv_reviewed | Rule 1: flagged on review and upheld by the refuting pass. |
| is_gbv_deferred | Rule 2: deference to the OPCC's own sexualized-conduct label. |
| is_gbv_hand_added | Rule 3: the single hand-added allegation. |
| is_gbv_neglect | Rule 4: neglect or mistreatment of a woman who reported violence. |
| dismissed | A dismissal is recorded on this allegation. |
| job_level_measure | A measure reaching the officer's job is recorded; the exact rule is stated in reproduce.R. |
| suspension_days | Suspension length in days, where recorded. |
| months_to_decision | Months from incident to conclusion, where both dates exist. |
| appealed | The digest records an appeal or review. |
| pathway | How the case entered: OI ordered investigation, PC public complaint, ID internal discipline, SH serious harm. |
| criminal_process | The digest records a parallel criminal process. |
| no_charge_approved | The digest records that Crown counsel approved no charge. |
| criminal_process_probe | The machine probe behind criminal_process; kept so the column can be audited. |
| no_charge_approved_probe | The machine probe behind no_charge_approved; kept so the column can be audited. |
| trust_language | The published text uses public-trust language. |
| allegation_members | Members named on this allegation, as published. |
| members_in_file | Members named anywhere in the file. |
| measure_members_named | Members the recorded measure names. |
| measure_is_member_split | The measure line assigns different measures to different members. |
| text_length | Character length of the published summary. |
| msr_* | One column per statutory measure (suspension, written reprimand, training, dismissal, advice as to future conduct, verbal reprimand, close supervision, counselling, program or activity, reduction in rank, transfer or reassignment): 1 where that measure is recorded on the allegation. |
A real R session, running in your browser through
webR.
Nothing is sent anywhere. The table is loaded as
allegations, one row per allegation. The first
run downloads R itself, about 30 MB.
Press Run. The first run takes a moment while R downloads.