Accessing and Interpreting Horry County Police Call Data

I spent about three months last year pulling call-for-service data from Horry County and trying to make sense of what it actually shows. The short version is that the official records exist but they are a pain to work with, and if you assume the raw data tells the whole story you will be wrong. Here is how I went about it and what I learned along the way. The Horry County Sheriff's Office makes some of their activity data available through their public records portal and through the South Carolina State Law Enforcement Division's open data repository. The bulk of the useful stuff lives on the SLED website in CSV format, but the data refreshes with a lag that usually runs about 30 to 45 days. If you need current information you are going to be out of luck without filing a formal public records request directly with HCSD. I started by downloading quarterly CSV files from SLED's open data page. Each row represents a single dispatch event with fields like incident type, location coordinates, date-time stamp, and a few categorical codes. The problem is that the incident type codes are not standardized across years. They changed the classification system sometime around 2022, which means if you are comparing 2021 data to 2023 data directly, you will get garbage results without a mapping table. I built a simple crosswalk document that matched the old codes to the new ones, and I had to manually verify about 12 percent of them by calling the SLED help desk because the documentation was vague.

The coordinates are in geographic latitude and longitude, not UTM or any projected system, and the decimal precision is usually only to about four places. That puts you at roughly 100-meter resolution, which is fine for block-level analysis but useless if you are trying to pinpoint exact addresses. I ran into this when someone asked me to identify whether a particular corner on 17th Avenue North was a hotspot for suspicious vehicle calls. The data pointed to a half-block radius around that area, so I could confirm elevated activity but I could not say definitively that the intersection itself was the epicenter. I ended up just telling the person the limitation and moving on.

The practical workflow I used

I loaded the CSV files into a Python environment using pandas. The date parsing was the first obstacle because the timestamp format switches between YYYY-MM-DD and MM/DD/YYYY depending on which quarter file you are looking at. I wrote a small script to detect the format automatically based on column headers and convert everything to a uniform datetime object. That took about an hour to get right and saved me from making consistent mistakes later. From there I filtered to the incident types that mattered for my analysis. Horry County covers a wide area including Myrtle Beach, Garden City, Surfside Beach, and a lot of unincorporated territory. The residential calls look very different from the tourist corridor calls in July and August. If you aggregate everything together without separating by zone you will miss the seasonal swing entirely. I created a simple zone bucketing system based on the precinct numbers in the data: Precinct 1 and 2 cover the beach municipalities and the rest is inland residential. The seasonal variation in Precinct 1 during summer is massive compared to the flat line in Precinct 5 near Loris. One thing that trips people up is the difference between a call-for-service and an arrest or citation. The raw dispatch data includes both, and the ratio between them shifts depending on the incident type. Disorder calls have a low arrest rate, while drug-related calls have a much higher one. If you are trying to measure crime trends using only the arrest subset you will dramatically undercount the actual volume of incidents. I made that mistake in an early draft and had to go back and redo the analysis after a colleague pointed it out.

Get the Full Details

Horry County discusses merging sheriff's office and police department ...
Horry County discusses merging sheriff's office and police department ...

What the data actually shows

The trends in Horry County are fairly predictable if you know the area. Calls spike in the summer months due to tourism, with July and August showing increases of 30 to 40 percent over winter months in certain categories like disturbance and suspicious person. Traffic-related calls also climb in summer but more modestly, maybe 15 to 20 percent. Domestic violence calls do not follow the same seasonal pattern, which surprised me initially because I expected a correlation with vacation stress or family gatherings. The data did not support that assumption. Theft and larceny incidents track closely with the visitor population. Break-ins at rental properties are a recurring problem from May through September. This is not a surprise if you have lived here, but the data makes the pattern concrete. I found that the days with the highest theft volume clustered around holiday weekends when rental turnover is heaviest, specifically the Monday after Memorial Day and the Friday after Labor Day. That is when people leave for short trips or arrive for long weekends and properties are either unoccupied or newly occupied. One counter-intuitive finding was that violent crime calls did not show a strong seasonal signal the way property crime did. The numbers were relatively stable year-round with small fluctuations. People often assume violent crime tracks tourism or weather, but in Horry County the base rate is low enough and the events are infrequent enough that the seasonal pattern gets washed out by noise. If you are doing statistical testing on violent crime by month you need a much larger sample than you would for theft or disorder calls.

Limitations you need to account for

The biggest limitation with this data is that it is dispatch data, not crime data. Not every call results in a substantiated incident. A lot of the calls are resolved on scene with no further action, and the data does not always distinguish between dispatched units and units that were sent but found nothing. I ran into a case where a neighborhood reported a spike in burglary calls, but when I dug into the follow-up reports most of them had been cleared as false alarms or misidentified incidents. The initial dispatch numbers looked alarming but the reality was much quieter. Another limitation is the lag time. If you are doing anything time-sensitive like responding to a current spike in activity, the SLED data will not help you because it is always behind. The HCSD internal systems have real-time data but that is not accessible to the public. I tried filing a public records request for monthly summaries during my third month of analysis and got a response in about six weeks with heavily redacted information. The Sheriff's Office cited ongoing investigations as the reason for withholding specific details, which is standard but frustrating if you are trying to validate your findings against real-time events. Data quality issues are also worth mentioning. The coordinate system sometimes has entries that are outside the county boundaries, likely from calls that originated near the border or from GPS drift in mobile data terminals. I filtered out any points that fell more than five kilometers outside the Horry County polygon before doing any spatial analysis. That removed about 2 percent of the records, which is not huge but it matters if you are doing precise geographic work.

A useful workaround I developed

Since the SLED data updates quarterly with a delay and the public records process is slow, I found a practical workaround for getting more timely information. The Horry County Sheriffs Office publishes an unofficial daily blotter on their website that lists recent calls in a narrative format. It is not structured data, but it is current. I wrote a simple scraper that pulls the daily entries and categorizes them by incident type using keyword matching. It is not perfect, and it misses about 10 to 15 percent of calls that do not get posted or that use vague descriptions, but it gives you a near real-time pulse that complements the quarterly SLED datasets. I combined the two sources by using the daily blotter for trend monitoring and the SLED data for annual analysis and statistical testing. The daily blotter told me when something was happening now, and the quarterly data told me whether it was part of a longer pattern. Using both together gave me a much clearer picture than either source alone. If you want to replicate this approach the main resources are the SLED open data portal at sled.sc.gov and the HCSD public portal at hcso.sc.gov. The quarterly files are free and do not require registration, but the daily blotter scraper will need basic Python skills and a lightweight library like requests and BeautifulSoup. I can share the code if anyone is interested, though it is pretty straightforward. The key is not to treat any single data source as complete, because none of them are.

Sheriff calls for consolidation of Horry County Sheriff's office and ...
Sheriff calls for consolidation of Horry County Sheriff's office and ...