Reading Jail Booking Reports Is Harder Than It Looks
If you are digging into daily incarceration data from a county jail system, the first thing you need to understand is that the numbers on screen rarely match reality without some serious digging. I spent roughly three years pulling and cleaning booking reports from multiple jurisdictions across the state, and the gap between what the dashboard shows and what actually happened inside those walls is where most people get tripped up. When I say shocking data, I am not talking about dramatic headlines. I am talking about the fact that in many West Virginia counties, daily intake reports will show a booking at 3 AM that does not actually represent a new arrest. It represents a holdover transfer from a neighboring facility that was processed late due to staffing shortages or a broken booking station. The system logs it as a new admission. The data analyst who does not know that will write an entire article about a spike in nightlife-related arrests when the real story is a broken printer at the intake desk. I learned this the hard way during a project in 2019. I was tracking daily occupancy trends across five counties and noticed a consistent pattern. Every Wednesday, one particular jail would show a spike of twenty-two new bookings between midnight and 6 AM. I wrote a draft article about a supposed Wednesday night crime wave. Then I called the jail administrator and asked him directly what was happening. He told me they had a court order that required them to accept transport holdovers from two regional facilities every Tuesday evening. Those transports were arriving late, sometimes past midnight, and because the booking system only logged the time the paperwork was actually entered and not the time of original arrest, every single one of those arrivals registered as a Wednesday midnight booking.
The spike was not a crime trend. It was a logistics issue. My draft went in the trash.
How the Data Actually Flows Through a Short-term Jail System
Most municipal and county jails in West Virginia operate with a combination of legacy booking software and whatever modular systems the county administration approved during the last budget cycle. The typical flow goes like this. An arrest happens. The arresting officer completes a paper or electronic report. That report moves to a booking clerk who enters the arrest details into the jail management system. A mugshot and fingerprints are taken. The person is assigned a cell or cot. If they are being held for court, a hold is placed. If they post bail, they are released and the system logs an discharge timestamp. That sounds straightforward. It is not. Here is where it gets complicated. A single person can have multiple interactions with the system in one day. They can be arrested, released on personal recognizance, re-arrested three hours later for a probation violation, held for seventy-two hours, transferred to a state facility, and then returned forty-eight hours later for a different charge. The daily incarceration count will show three separate admissions and two discharges, but the actual number of human beings behind those bars at any given moment is one. Most public reporting simply sums the admissions without deduplication. That inflates the perceived scale of short-term jail populations by forty to sixty percent in my experience, depending on the county.
Get the Full Details

Where the Data Breaks Down
Discharge timestamps are the weakest data point in any jail report. When a person is released, the officer or clerk entering the discharge information will often record the time the paperwork was completed rather than the time the person actually walked out the door. In a facility where processing an release can take anywhere from forty-five minutes to two hours depending on shift staffing, that discrepancy compounds across hundreds of releases per month. Mixed populations skew occupancy reports. Many small West Virginia jails house both pretrial detainees and sentenced misdemeanor offenders in the same facility. The daily count usually combines both groups into a single occupancy number. If you are trying to understand the true length of stay for short-term incarcerations, you need to separate these populations. Pretrial detainees typically average between three and fourteen days. Misdemeanor sentenced inmates serving time for things like drunk driving or disorderly conduct will often cycle through in under forty-eight hours. Blending them together produces a median stay that looks oddly normal and tells you almost nothing useful. Transfers are invisible to the public. When a jail transfers someone to the Division of Corrections for a longer sentence, that person disappears from the daily report. But they are not free. They are just no longer in your dataset. This is a structural blind spot that makes it look like incarceration numbers are dropping when they are simply moving to a different storage facility.
How I Actually Pull and Clean This Data
I do not trust the exported CSV files. The export functions in most jail management systems include formatting quirks that introduce errors. Dates will sometimes appear as integers in European format and sometimes in US format depending on the browser. Names with hyphens or apostrophes will break if you assume a simple delimiter. I pull the raw data and then run it through a cleaning routine that standardizes the date columns first, deduplicates admissions within a four-hour window by matching full name plus date of birth, and flags any discharge timestamp that is earlier than the admission timestamp as a system error. This takes about twenty minutes per county report. Doing it by hand takes roughly three hours and you will miss at least half the errors. For the deduplication step, I use a simple script that matches on name and DOB and collapses multiple admissions within a four-hour window into a single entry with the earliest admission timestamp and the latest discharge timestamp. This prevents the same person cycling through the system from artificially inflating daily counts. It does not catch everyone. People with common names and rounded dates of birth can still get matched incorrectly, but the error rate drops from something like eight percent down to under two percent.
What the Numbers Actually Reveal About Short-term Jails
Once you clean the data properly, the picture that emerges is not particularly pretty but it is clearer than the raw numbers suggest. Short-term jails in rural and small urban West Virginia counties are cycling people through at a rate that overwhelms their limited medical and mental health resources. The average stay for a pretrial detainee in these facilities runs about five days. During that five days, most of them will have at least one interaction with jail medical staff, and the complaints are almost always the same. Inadequate mental health screening at intake, insufficient medication management for people being held on substances, and a discharge process that hands people back onto the street with no follow-up care appointments scheduled. The human cost behind the daily numbers is not a abstract concept. It shows up as repeated arrests for the same underlying issues. I pulled data from one county over an eighteen-month period and found that approximately twenty-three percent of all admissions were individuals who had been booked at least four times during that window. The vast majority of those repeat admissions were for low-level offenses. Substance possession, trespassing, failure to appear. These are people whose problems are not getting solved by incarceration. They are cycling through the system because there is nowhere else for them to go.

Limitations You Need to Accept
No dataset from a county jail is going to give you a complete picture. The data is collected for operational purposes, not research. The fields that matter most to an analyst, like the underlying charge history beyond the current arrest, the reason for a hold, and the specific circumstances of release, are often incomplete or inconsistently recorded. Some counties do not track mental health flags at all. Others flag every mentally ill person as a high-risk inmate, which makes the flag meaningless. If you need richer data, you have to request it through a public records request. That process takes between thirty and sixty days depending on the county. The responses are never complete. There will always be redactions, missing fields, and records that the county claims do not exist. I have learned to budget my time around that reality. You will not get everything you want. You will get enough if you know what questions to ask and which fields to drop because they are unreliable. The alternative to digging into jail daily reports is to use state-level aggregated data from the West Virginia Public Defender Services or the DOJ bureau of justice statistics. Those sources are cleaner and more consistent but they lack the granularity that tells you what is actually happening inside a specific facility on a specific day. Aggregated state data smooths over the outliers and the patterns that matter most for understanding the human cost. There is no perfect trade-off. You pick the level of detail you need and you accept the imperfections that come with it.
A Practical Workflow That Actually Works
Request the daily jail population and booking reports for the time period you are studying. Do not accept a summary report. You need the raw transactional data. Run the deduplication script. Separate pretrial holds from sentenced inmates. Flag any records with invalid timestamps. Cross-reference repeat admissions against the full dataset to identify the cycling population. Calculate true average length of stay for each population segment separately. Report the cleaned numbers with a clear note about what was adjusted and what assumptions were made. This is slow work. A six-month dataset for a mid-sized county will take me roughly four hours from request to cleaned analysis. It is not fast but it is honest. The uncleaned version of the same data will produce headlines about crime waves and population surges that do not exist. Cleaning it takes effort but it is the only way the numbers mean anything.