Reading Snohomish County Jail Booking Data
Snohomish County maintains an online booking search portal at the sheriff's website. It is not an API. It is a standard web form that returns a table of recent arrests. The data covers the main Everett facility and the satellite locations in Arlington and Monroe. Most people look at the raw booking list and stop there. That is where they miss almost everything useful. The booking search page lets you filter by date range, charge type, and facility. You can export the results, but the export is a CSV with limited columns. Bond amount, race, age, and charge severity are all in there. The problem is that a single booking does not tell you how long someone actually stayed. The release date is often missing or shows a timestamp that does not match the actual discharge. I spent three months trying to calculate average length of stay by cross-referencing booking timestamps with court appearance records, and I gave up. The data simply is not linked in a usable way for that purpose. If you need length-of-stay metrics, you request them through a public records request to the sheriff's office. That takes about six to eight weeks, and they send you a spreadsheet that is still incomplete because some facilities do not record release times consistently. Here is what most people do not realize. The booking count is not a reliable indicator of crime rates. A spike in bookings on a given Saturday might mean more arrests happened, or it might mean the jail filled up and transferred people to other facilities, or it might mean the booking system was processing a backlog from the previous week. Snohomish County does not publish a separate jail census report, so you are working with partial information. What you can track reliably is the distribution of charge types over time. Felony drug possession, DUI charges, and domestic violence incidents show seasonal patterns that are fairly consistent year over year. Winter tends to push DUI numbers up. Summer brings more assault-related bookings. These are minor observations but they hold up across multiple years of data.
I ran into a specific problem last year where the booking data showed a sudden drop in misdemeanor filings in March. At first I thought enforcement had decreased. I checked the court docket system for the same period, and filing counts were flat. The real cause was a staffing shortage at the booking desk. Arrests still happened. They just sat in processing longer, and the data entry queue backed up. By April, the numbers caught up. This is why you should never draw conclusions from a single month of booking data without checking it against arrest reports or court filings from the same window. The booking log is a lagging indicator, sometimes by a week or two. If you want to build something useful out of this data, the best approach is to pull the CSV exports directly from the booking search and merge them with publicly available Superior Court case data. Snohomish County publishes criminal case records through their court website. You can match cases to bookings using the defendant's name and date of birth. It is tedious. Name matching fails when people use nicknames or middle initials. But if you filter to cases where theDOB matches and the arrest date falls within three days of the filing date, your accuracy climbs to around eighty five percent. The remaining fifteen percent is noise. Some bookings lead to dropped charges. Some charges get reclassified. That is normal. The county also releases an annual sheriff's report that includes summary statistics. It is not detailed enough for granular analysis, but it is the only place where they break down demographics by facility. The booking search page itself does not let you filter by facility in a way that gives you clean totals. You can select a facility from a dropdown, but the results include transfers in and out, which muddies the count. If you want facility-specific numbers, export each facility's data separately and subtract the overlap manually. I wrote a small Python script to handle this. It reads the three facility CSVs, matches records by booking number, and removes duplicates. The script runs in about forty seconds on a typical dataset of roughly twelve thousand bookings spanning a year. I can share it if anyone wants it.
Another thing worth noting. The bond amounts listed in the booking data are set at the time of arraignment, not at the time of booking. So a person arrested on a felony charge might show a bond of zero if they are held without bail pending a hearing. This skews any analysis that treats bond amount as a proxy for charge severity. You have to cross-reference with the actual charge list and the criminal code classification to understand what the bond figure actually represents. A seventy five hundred bond on a theft charge might look low until you realize it was reduced from an initial two thousand five hundred dollar setting after the defendant's attorney filed a motion. The booking record captures the final number, not the trajectory. The main limitation of this data is that it is self-reported at the point of intake. Corrections staff enter the information, and errors happen. Duplicate bookings for the same person appear regularly, especially when someone is arrested under an alias or when a name spelling varies between the arrest report and the system entry. I found about four percent of my cleaned dataset contained duplicate or near-duplicate records. Deduplication requires matching on multiple fields, and even then you will have edge cases. The workaround is to flag any records where the name, date of birth, and arrest date align but the booking numbers differ. Those are your duplicates. Remove them and move on. If you are looking for a more polished version of this data, there are third-party platforms that aggregate county jail records. They charge money for access. The raw data is free through the sheriff's website. The difference is convenience, not quality. You will pay fifty to two hundred dollars a month for a dashboard that does the deduplication and visualization for you. I built my own dashboard after about ten hours of work. It pulls fresh data weekly and updates a simple view of booking trends by offense type and month. It is not fancy. It works.
Get the Full Details

What to do if you need historical data beyond the last year. The booking search portal only retains roughly twelve to eighteen months of records before purging them. Older data is not archived in a public way. Your options are a public records request for prior years or scraping theWayback Machine for snapshots of the booking page from past dates. The Wayback approach is slower and less reliable. The public records request is the cleaner path, even though it takes time. File it early. Reference the specific date ranges you need. Cite RCW 42.56, the Public Records Act. They have to respond within a reasonable timeframe, and they usually do. One more thing. Do not trust any analysis of this data that does not account for changes in policy. Snohomish County changed its bail schedule in 2022. That shifted a significant number of misdemeanor cases out of the jail system entirely. Booking counts dropped. Crime did not necessarily drop. The policy change did. Any trend analysis that ignores this context will be wrong. Always check whether a shift in the data corresponds to a known policy or procedural change. The sheriff's office publishes meeting minutes and policy updates on their website. Read them. They matter.