Name: Stop Data 2019 - 2022
Display Field: CCN_ANONYMIZED
Type: Table
Geometry Type: N/A
Description: In July 2019, the Metropolitan Police Department (MPD) implemented new data collection methods that enabled officers to collect more comprehensive information about each police stop in an aggregated manner. More specifically, these changes have allowed for more detailed data collection on stops, protective pat down (PPDs), searches, and arrests. (For a complete list of terms, see the glossary on page 2.) These changes support data collection requirements in the Neighborhood Engagement Achieves Results Amendment Act of 2016 (NEAR Act).The accompanying data cover all MPD stops including vehicle, pedestrian, bicycle, and harbor stops for the period from July 22, 2019 to December 31, 2022. A stop may involve a ticket (actual or warning), investigatory stop, protective pat down, search, or arrest.If the final outcome of a stop results in an actual or warning ticket, the ticket serves as the official documentation for the stop. The information provided in the ticket include the subject’s name, race, gender, reason for the stop, and duration. All stops resulting in additional law enforcement actions (e.g., pat down, search, or arrest) are documented in MPD’s Record Management System (RMS). This dataset includes records pulled from both the ticket (District of Columbia Department of Motor Vehicles [DMV]) and RMS sources. Data variables not applicable to a particular stop are indicated as “NULL.” For example, if the stop type (“stop_type” field) is a “ticket stop,” then the fields: “stop_reason_nonticket” and “stop_reason_harbor” will be “NULL.” Each row in the data represents an individual stop of a single person, and that row reveals any and all recorded outcomes of that stop (including information about any actual or warning tickets issued, searches conducted, arrests made, etc.). A single traffic stop may generate multiple tickets, including actual, warning, and/or voided tickets. Additionally, an individual who is stopped and receives a traffic ticket may also be stopped for investigatory purposes, patted down, searched, and/or arrested. If any of these situations occur, the “stop_type” field would be labeled “Ticket and Non-Ticket Stop.” If an individual is searched, MPD differentiates between person and property searches. The “stop_location_block” field represents the block-level location of the stop and/or a street name. The age of the person being stopped is calculated based on the time between the person’s date ofbirth and the date of the stop.There are certain locations that have a high prevalence of non-ticket stops. These can be attributed to some centralized processing locations. Additionally, there is a time lag for data on some ticket stops as roughly 20 percent of tickets are handwritten. In these instances, the handwritten traffic tickets are delivered by MPD to the DMV, and then entered into data systems by DMV contractors. On August 1, 2021, MPD transitioned to a new version of its current records management system, Mark43 RMS.Due to this transition, the data collection and structures for the period between August 1, 2021 – December 31, 2021 were changed. The list below provides explanatory notes to consider when using this dataset.New fields for data collection resulted in an increase of outliers in stop duration (affecting 0.98% of stops). In order to mitigate the disruption of outliers on any analysis, these values have been set to null as consistent with past practices.Due to changes to the data structure that occurred after August 1, 2021, six attributes pertaining to reasons for searches of property and person are only available for the first seven months of 2021. These attributes are: Individual’s Actions, Information Obtained from Law Enforcement Sources, Information Obtained from Witnesses or Informants, Characteristics of an Armed Individual, Nature of the Alleged Crime, Prior Knowledge. These data structure changes have been updated to include these attributes going forward (as of April 23, 2022).Out of the four attributes for types of property search, warrant property search is only available for the first seven months of 2021. Data structure changes were made to include this type of property search in future datasets.The following chart shows how certain property search fields were aligned prior to and after August 1, 2021. A glossary is also provided following the chart. As of August 2, 2022, these fields have reverted to the original alignment.https://mpdc.dc.gov/sites/default/files/dc/sites/mpdc/publication/attachments/Explanatory%20Notes%202021%20Data.pdfIn October 2022 several fields were added to the dataset to provide additional clarity differentiating NOIs issued to bicycles (including Personal Mobility Devices, aka stand-on scooters), pedestrians, and vehicles as well as stops related specifically to MPD’s Harbor Patrol Unit and stops of an investigative nature where a police report was written. Please refer to the Data Dictionary for field definitions.In March 2023 an indicator was added to the data which reflects stops related to traffic enforcement and/or traffic violations. This indicator will be 1 if a stop originated as a traffic stop (including both stops where only a ticket was issued as well as stops that ultimately resulted in police action such as a search or arrest), involved an arrest for a traffic violation, and/or if the reason for the stop was Response to Crash, Observed Moving Violation, Observed Equipment Violation, or Traffic Violation.Between November 2021 and February 2022 several fields pertaining to items seized during searches of a person were not available for officers to use, leading to the data showing that no objects were seized pursuant to person searches during this time period. Finally, MPD is conducting on-going data audits on all data for thorough and complete information. For more information regarding police stops, please see: https://mpdc.dc.gov/stopdataFigures are subject to change due to delayed reporting, on-going data quality audits, and data improvement processes.
Copyright Text: Metropolitan Police Department
Default Visibility: false
MaxRecordCount: 1000
MaxSelectionCount: 0
Supported Query Formats: JSON, geoJSON, PBF
Supports Advanced Queries: true
Supports Statistics: true
Use Standardized Queries: true
Supports ValidateSQL: true
Supports Calculate: true
Extent:
Drawing Info:
Feature Draw Order:
Advanced Query Capabilities:
Supports Statistics: true
Supports OrderBy: true
Supports Distinct: true
Supports Pagination: true
Supports TrueCurve: false
Supports Returning Query Extent: true
Supports Query With Distance: true
Supports Sql Expression: true
Supports Query With ResultType: true
Supports Returning Geometry Centroid: false
Supports Binning LOD: false
Supports Query With LOD Spatial Reference: false
Supports Percentile Statistics: true
Supports Having Clause: true
Supports Count Distinct: true
Supports Time Relation: false
Supports Sql Format: false
Supports Query Analytic: true
Supports Query With Current User: true
HasZ: false
HasM: false
Has Attachments: false
HTML Popup Type: esriServerHTMLPopupTypeNone
Type ID Field:
Fields:
-
CCN_ANONYMIZED
(
type: esriFieldTypeString, alias: CCN Anonymized, editable: true, nullable: true, length: 255, defaultValue: null, modelName: CCN_ANONYMIZED
)
-
STOP_TYPE
(
type: esriFieldTypeString, alias: Stop Type, editable: true, nullable: true, length: 400, defaultValue: null, modelName: STOP_TYPE
)
-
DATETIME
(
type: esriFieldTypeDate, alias: Stop Date/Time, editable: true, nullable: true, length: 8, defaultValue: null, modelName: DATETIME
)
-
STOP_LOCATION
(
type: esriFieldTypeString, alias: Stop Location, editable: true, nullable: true, length: 400, defaultValue: null, modelName: STOP_LOCATION
)
-
STOP_DISTRICT
(
type: esriFieldTypeString, alias: Stop District, editable: true, nullable: true, length: 400, defaultValue: null, modelName: STOP_DISTRICT
)
-
STOP_DURATION_MINS
(
type: esriFieldTypeDouble, alias: Stop Duration Minutes, editable: true, nullable: true, defaultValue: null, modelName: STOP_DURATION_MINS
)
-
STOP_REASON_NONTICKET
(
type: esriFieldTypeString, alias: Stop Reason Nonticket, editable: true, nullable: true, length: 400, defaultValue: null, modelName: STOP_REASON_NONTICKET
)
-
STOP_REASON_HARBOR
(
type: esriFieldTypeString, alias: Stop Reason Harbor, editable: true, nullable: true, length: 400, defaultValue: null, modelName: STOP_REASON_HARBOR
)
-
STOP_REASON_TICKET
(
type: esriFieldTypeString, alias: Stop Reason Ticket, editable: true, nullable: true, length: 400, defaultValue: null, modelName: STOP_REASON_TICKET
)
-
PERSON_SEARCH_PAT_DOWN
(
type: esriFieldTypeDouble, alias: Person Search or Protective Pat Down, editable: true, nullable: true, defaultValue: null, modelName: PERSON_SEARCH_PAT_DOWN
)
-
PROPERTY_SEARCH_PAT_DOWN
(
type: esriFieldTypeDouble, alias: Property Search or Protective Pat Down, editable: true, nullable: true, defaultValue: null, modelName: PROPERTY_SEARCH_PAT_DOWN
)
-
PERSON_SEARCH_CONSENT
(
type: esriFieldTypeDouble, alias: Person Search Consent, editable: true, nullable: true, defaultValue: null, modelName: PERSON_SEARCH_CONSENT
)
-
PERSON_SEARCH_PROB_CAUSE
(
type: esriFieldTypeDouble, alias: Person Search Probable Cause, editable: true, nullable: true, defaultValue: null, modelName: PERSON_SEARCH_PROB_CAUSE
)
-
PERSON_PROT_PAT_DOWN
(
type: esriFieldTypeDouble, alias: Person Protective Pat Down, editable: true, nullable: true, defaultValue: null, modelName: PERSON_PROT_PAT_DOWN
)
-
PERSON_SEARCH_WARRANT
(
type: esriFieldTypeDouble, alias: Person Search Warrant, editable: true, nullable: true, defaultValue: null, modelName: PERSON_SEARCH_WARRANT
)
-
PROPERTY_SEARCH_CONSENT
(
type: esriFieldTypeDouble, alias: Property Search Consent, editable: true, nullable: true, defaultValue: null, modelName: PROPERTY_SEARCH_CONSENT
)
-
PROPERTY_SEARCH_PROB_CAUSE
(
type: esriFieldTypeDouble, alias: Property Search Probable Cause, editable: true, nullable: true, defaultValue: null, modelName: PROPERTY_SEARCH_PROB_CAUSE
)
-
PROPERTY_PROT_PAT_DOWN
(
type: esriFieldTypeDouble, alias: Property Protective Pat Down, editable: true, nullable: true, defaultValue: null, modelName: PROPERTY_PROT_PAT_DOWN
)
-
PROPERTY_SEARCH_WARRANT
(
type: esriFieldTypeDouble, alias: Property Search Warrant, editable: true, nullable: true, defaultValue: null, modelName: PROPERTY_SEARCH_WARRANT
)
-
PERSON_SEARCH_REA_CONSENT
(
type: esriFieldTypeString, alias: Person Search Reason Consent, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_SEARCH_REA_CONSENT
)
-
PERSON_SRCH_PROB_CAUSE
(
type: esriFieldTypeString, alias: Person Search Reason Probable Cause, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_SRCH_PROB_CAUSE
)
-
PERSON_PAT_DOWN_REASON
(
type: esriFieldTypeString, alias: Person Protective Pat Down Reason, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_PAT_DOWN_REASON
)
-
PERSON_SRCH_REASON_WARRANT
(
type: esriFieldTypeString, alias: Person Search Reason Warrant, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_SRCH_REASON_WARRANT
)
-
PROP_SRCH_REASON_CONSENT
(
type: esriFieldTypeString, alias: Property Search Reason Consent, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_REASON_CONSENT
)
-
PROP_SRCH_PROB_CAUSE
(
type: esriFieldTypeString, alias: Property Search Reason Probable Cause, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_PROB_CAUSE
)
-
PROP_PAT_DOWN_REASON
(
type: esriFieldTypeString, alias: Property Protective Pat Down Reason, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_PAT_DOWN_REASON
)
-
PROP_SRCH_REASON_WARRANT
(
type: esriFieldTypeString, alias: Property Search Reason Warrant, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_REASON_WARRANT
)
-
PROPERTY_SRCH_OBJ_CONSENT
(
type: esriFieldTypeString, alias: Property Search Object Consent, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROPERTY_SRCH_OBJ_CONSENT
)
-
PROP_SRCH_OBJ_PROB_CAUSE
(
type: esriFieldTypeString, alias: Property Search Object Probable Cause, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_OBJ_PROB_CAUSE
)
-
PROP_PAT_DOWN_OBJ
(
type: esriFieldTypeString, alias: Property Protective Pat Down Object, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_PAT_DOWN_OBJ
)
-
PROP_SRCH_OBJ_WARRANT
(
type: esriFieldTypeString, alias: Property Search Object Warrant, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_OBJ_WARRANT
)
-
PERSON_SRCH_OBJ_SEIZED_CON
(
type: esriFieldTypeString, alias: Person Search Object Seized Consent, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_SRCH_OBJ_SEIZED_CON
)
-
PERSON_SRCH_OBJ_PROB_CAUSE
(
type: esriFieldTypeString, alias: Person Search Object Seized Probable Cause, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_SRCH_OBJ_PROB_CAUSE
)
-
PER_PRO_PAT_DOWN_OBJ_SEIZE
(
type: esriFieldTypeString, alias: Person Protective Pat Down Object Seized, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PER_PRO_PAT_DOWN_OBJ_SEIZE
)
-
PERSON_SRCH_OBJ_SEIZED_WAR
(
type: esriFieldTypeString, alias: Person Search Object Seized Warrant, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PERSON_SRCH_OBJ_SEIZED_WAR
)
-
PROP_SRCH_OBJ_SEIZE_CON
(
type: esriFieldTypeString, alias: Property Search Object Seized Consent, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_OBJ_SEIZE_CON
)
-
PROP_SRCH_OBJ_SEIZE_CAUSE
(
type: esriFieldTypeString, alias: Property Search Object Seized Probable Cause, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SRCH_OBJ_SEIZE_CAUSE
)
-
PROP_PAT_DOWN_OBJ_SEIZED
(
type: esriFieldTypeString, alias: Property Protective Pat Down Object Seized, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_PAT_DOWN_OBJ_SEIZED
)
-
PROP_SEARCH_OBJ_WARRANT
(
type: esriFieldTypeString, alias: Property Ssearch Object Seized Warrant, editable: true, nullable: true, length: 400, defaultValue: null, modelName: PROP_SEARCH_OBJ_WARRANT
)
-
TICKETS_ISSUED
(
type: esriFieldTypeString, alias: Tickets Issued, editable: true, nullable: true, length: 255, defaultValue: null, modelName: TICKETS_ISSUED
)
-
WARNINGS_ISSUED
(
type: esriFieldTypeString, alias: Warnings Issued, editable: true, nullable: true, length: 255, defaultValue: null, modelName: WARNINGS_ISSUED
)
-
VOIDED_TICKETS
(
type: esriFieldTypeString, alias: Voided Tickets, editable: true, nullable: true, length: 255, defaultValue: null, modelName: VOIDED_TICKETS
)
-
TICKET_COUNT
(
type: esriFieldTypeDouble, alias: Ticket Count, editable: true, nullable: true, defaultValue: null, modelName: TICKET_COUNT
)
-
WARNING_COUNT
(
type: esriFieldTypeDouble, alias: Warning Count, editable: true, nullable: true, defaultValue: null, modelName: WARNING_COUNT
)
-
VOID_COUNT
(
type: esriFieldTypeDouble, alias: Void Count, editable: true, nullable: true, defaultValue: null, modelName: VOID_COUNT
)
-
ARREST_CHARGES
(
type: esriFieldTypeString, alias: Arrest Charges, editable: true, nullable: true, length: 2000, defaultValue: null, modelName: ARREST_CHARGES
)
-
GENDER
(
type: esriFieldTypeString, alias: Gender, editable: true, nullable: true, length: 255, defaultValue: null, modelName: GENDER
)
-
ETHNICITY
(
type: esriFieldTypeString, alias: Race Ethnicity, editable: true, nullable: true, length: 255, defaultValue: null, modelName: ETHNICITY
)
-
AGE
(
type: esriFieldTypeString, alias: Age, editable: true, nullable: true, length: 255, defaultValue: null, modelName: AGE
)
-
ARREST_DATE
(
type: esriFieldTypeDate, alias: Arrest Date, editable: true, nullable: true, length: 8, defaultValue: null, modelName: ARRESTDATE
)
-
VEHICLE
(
type: esriFieldTypeSmallInteger, alias: Vehicle Involved, editable: true, nullable: true, defaultValue: null, modelName: VEHICLE
)
-
BICYCLE_PMD
(
type: esriFieldTypeSmallInteger, alias: Bicycle/Personal Mobility Device Involved, editable: true, nullable: true, defaultValue: null, modelName: BICYCLE_PMD
)
-
PEDESTRIAN
(
type: esriFieldTypeSmallInteger, alias: Pedestrian Involved, editable: true, nullable: true, defaultValue: null, modelName: PEDESTRIAN
)
-
HARBOR
(
type: esriFieldTypeSmallInteger, alias: Initiated By Harbor Patrol, editable: true, nullable: true, defaultValue: null, modelName: HARBOR
)
-
INVESTIGATIVE
(
type: esriFieldTypeSmallInteger, alias: Temporary Investigative Detention, editable: true, nullable: true, defaultValue: null, modelName: INVESTIGATIVE
)
-
TRAFFIC_INVOLVED
(
type: esriFieldTypeSmallInteger, alias: Traffic Involved, editable: true, nullable: true, defaultValue: null, modelName: TRAFFIC_INVOLVED
)
-
GIS_ID
(
type: esriFieldTypeString, alias: GIS Identifier, editable: true, nullable: true, length: 50, defaultValue: null, modelName: GIS_ID
)
-
CREATED
(
type: esriFieldTypeDate, alias: CREATED, editable: true, nullable: true, length: 8, defaultValue: null, modelName: CREATED
)
-
EDITED
(
type: esriFieldTypeDate, alias: EDITED, editable: true, nullable: true, length: 8, defaultValue: null, modelName: EDITED
)
-
OBJECTID
(
type: esriFieldTypeOID, alias: OBJECTID, editable: false, nullable: false, defaultValue: null, modelName: OBJECTID
)
-
GLOBALID
(
type: esriFieldTypeGlobalID, alias: GLOBALID, editable: false, nullable: false, length: 38, defaultValue: null, modelName: GLOBALID
)
Templates:
-
Name: Stop Data 2019 - 2022
Description:
Prototype:
EDITED: null
CCN_ANONYMIZED: null
STOP_TYPE: null
DATETIME: null
STOP_LOCATION: null
STOP_DISTRICT: null
STOP_DURATION_MINS: null
STOP_REASON_NONTICKET: null
STOP_REASON_HARBOR: null
STOP_REASON_TICKET: null
PERSON_SEARCH_PAT_DOWN: null
PROPERTY_SEARCH_PAT_DOWN: null
PERSON_SEARCH_CONSENT: null
PERSON_SEARCH_PROB_CAUSE: null
PERSON_PROT_PAT_DOWN: null
PERSON_SEARCH_WARRANT: null
PROPERTY_SEARCH_CONSENT: null
PROPERTY_SEARCH_PROB_CAUSE: null
PROPERTY_PROT_PAT_DOWN: null
PROPERTY_SEARCH_WARRANT: null
PERSON_SEARCH_REA_CONSENT: null
PERSON_SRCH_PROB_CAUSE: null
PERSON_PAT_DOWN_REASON: null
PERSON_SRCH_REASON_WARRANT: null
PROP_SRCH_REASON_CONSENT: null
PROP_SRCH_PROB_CAUSE: null
PROP_PAT_DOWN_REASON: null
PROP_SRCH_REASON_WARRANT: null
PROPERTY_SRCH_OBJ_CONSENT: null
PROP_SRCH_OBJ_PROB_CAUSE: null
PROP_PAT_DOWN_OBJ: null
PROP_SRCH_OBJ_WARRANT: null
PERSON_SRCH_OBJ_SEIZED_CON: null
PERSON_SRCH_OBJ_PROB_CAUSE: null
PER_PRO_PAT_DOWN_OBJ_SEIZE: null
PERSON_SRCH_OBJ_SEIZED_WAR: null
PROP_SRCH_OBJ_SEIZE_CON: null
PROP_SRCH_OBJ_SEIZE_CAUSE: null
PROP_PAT_DOWN_OBJ_SEIZED: null
PROP_SEARCH_OBJ_WARRANT: null
TICKETS_ISSUED: null
WARNINGS_ISSUED: null
VOIDED_TICKETS: null
TICKET_COUNT: null
WARNING_COUNT: null
VOID_COUNT: null
ARREST_CHARGES: null
GENDER: null
ETHNICITY: null
AGE: null
ARREST_DATE: null
VEHICLE: null
BICYCLE_PMD: null
PEDESTRIAN: null
HARBOR: null
INVESTIGATIVE: null
TRAFFIC_INVOLVED: null
GIS_ID: null
CREATED: null
Drawing Tool: esriFeatureEditToolNone
Capabilities: Query,Extract
Sync Can Return Changes: false
Is Data Versioned: false
Supports Rollback On Failure: true
Supports ApplyEdits With Global Ids: true
Supports Query With Historic Moment: false
Supports Coordinates Quantization: false
Child Resources:
Supported Operations:
Query
Query Analytic
Append
Validate SQL
Generate Renderer
Return Updates
Iteminfo
Thumbnail
Metadata