About the RIPA Stop Data
What is RIPA?
The Racial and Identity Profiling Act of 2015 (AB 953) requires California law enforcement agencies to collect and report data on every stop they conduct (California Penal Code 13519.4). Officers record who they stopped, why, what actions they took, and the outcome — all linked to the officer’s perception of the stopped person’s race, gender, age, and other identity characteristics.
The data is submitted to the California Department of Justice, which publishes it through the OpenJustice Data Portal. An independent RIPA Board, housed within the DOJ, analyzes the data and publishes annual reports with findings and policy recommendations.
This dataset covers 2018–2024 and contains approximately 26.3 million person-stop records from 555 law enforcement agencies across California.
Data collection
How agencies report
Agencies submit stop data to the DOJ’s Stop Data Collection System (SDCS) through one of three methods: a DOJ-hosted web application, a local database connected via web services or SFTP, or batch file upload. Records must pass logic checks (e.g. age is non-negative) before acceptance.
Phased rollout
Not all agencies reported from the start. RIPA required agencies to begin reporting based on their size:
| Wave | Agency size | Collection start | First report due | Agencies |
|---|---|---|---|---|
| 1 | 1,000+ officers | July 1, 2018 | April 1, 2019 | ~8 |
| 2 | 667–999 officers | January 1, 2019 | April 1, 2020 | ~7 |
| 3 | 334–666 officers | January 1, 2021 | April 1, 2022 | ~10 |
| 4 | 1–333 officers | January 1, 2022 | April 1, 2023 | ~500 |
The 2018 data covers only July through December and only the largest agencies. The 2019 data adds Wave 2. Wave 3 joined in 2021, and by 2022 all agencies were reporting. Comparisons across years must account for this expanding coverage.
Instances of data fabrication or intentional misreporting
In 2022, the Los Angeles Office of the Inspector General (OIG) published an investigation into the LA Sheriff’s Department, comparing stop data from CAD logs to data recorded in the Sheriff’s Automated Contact Reporting System (SACRS) that feeds into RIPA. They found the SACR system underreported stops by at least 50,731 stops, and underreported arrests by at least 71,462, between July 2018 and June 2019. They further found:
the practice of not entering data into the SACR system may be pervasive and widespread throughout all of the Sheriff’s Department’s patrol divisions. In addition, the Office of Inspector General found significant differences between CAD system and SACR system totals relating to backseat detentions, consent searches, and reasonable suspicion stops.
The Sacramento Observer reported on the story
In June of 2024, the San Francisco Department of Police Accountability found one of the department’s top ticket writers was systematically misreporting the race of the people he stopped, causing “irreparable harm to the integrity of SFPD’s RIPA reporting”. The story was covered in the SF Standard
Other known data quality issues
The 2018 report included a note that “a relatively small amount of data with errors that should have been identified and corrected reached completed status.” These errors included:
- 28,148 records in the 2018 data were coded as “consensual encounter resulting in search” but did not indicate a search occurred
- 5,404 cases where officers listed “incident to arrest” as the basis for search, and no arrest was indicated.
The readme reports additional errors in the 2018 data affecting small numbers of records.
Important limitations - what’s not collected
-
No fine-grained location: The statewide data includes only
LOC_CLOSEST_CITY— no address, latitude/longitude, or beat/district. Some jurisdictions publish more detailed location data through their own open data portals. -
No officer identifiers: The statewide data does not include officer badge numbers or other identifiers, preventing analysis of individual officer patterns
-
Complaint data limitations: The RIPA Board collects civilian complaint data alongside stop data, but the complaint system has significant limitations. The sustained rate for profiling complaints has been extremely low — reaching 0.19% in the 2024 data (3 out of 2,282 profiling complaints sustained). Until November 2025, Penal Code section 148.6 imposed criminal sanctions for filing a “false” complaint, which the California Supreme Court found unconstitutional. The Board documented this as a deterrent to filing complaints for years before the ruling.
Unit of observation
Each row in the dataset is a person-stop: one person involved in one stop.
A single stop event (identified by DOJ_RECORD_ID) can produce multiple rows
if the officer stopped more than one person. The composite key is
(DOJ_RECORD_ID, PERSON_NUMBER).
How demographics are recorded
All demographic data reflects the officer’s perception of the stopped person. From the RIPA Board’s 2018 report:
With respect to the person stopped, the officer must report his/her own perception, based upon personal observation only (and not through any other means, such as asking the person or referring to identification), regarding the following:
- Perceived race or ethnicity of the person stopped
- Perceived age of the person stopped
- Perceived gender of the person stopped
- Whether the person stopped is perceived to be lesbian, gay, bisexual or transgender
- Whether the person stopped is perceived to have limited or no English fluency
- Whether the person stopped is perceived or known to have a disability
For a detailed reference covering every variable group in the dataset — and how the schema changed over time — see Variable groups and schema changes.
Additional resources
- Variable-level documentation: Variable groups and schema changes
- RIPA Board: About the RIPA Board
- RIPA Board annual reports: Attorney General’s AB 953 page
- RIPA stop data downloads: CA DOJ OpenJustice Data Portal
- AB 953 statute: California Legislative Information
- California Penal Code 13519.4: CA Legislative Information