footnote4a

Mass surveillance, government contracts, and other bedtime reading.

Data update: Jefferson County MO SO (Jul 2026)

3,761 org audit records from Jefferson County MO SO covering July 2026.

by HaveIBeenFlocked Team
5 min read
logs
missouri

Jefferson County is in eastern Missouri, south of St. Louis. Hillsboro is the county seat. About 227,000 people live in the county. We loaded 3,761 Flock audit records from the Jefferson County Sheriff’s Office. The records cover July 1–31, 2026. Thanks to Show Me Surveillance for obtaining and sharing these records.

  • Type: Organization audit
  • Timespan: Jul 1 – Jul 31, 2026 (1 month)
  • Records: 3,761
  • Search types: lookup (2,524), search (768), lookup - Mobile (393), search - Mobile (50), visual (24), freeform (2)
  • License plate attached: 2,917 (77.6%)
  • Case # present: 114 (3.0%)

The 844 records without a plate are search, visual, and freeform records. No lookup record lacks a plate.

The busiest week began July 13, with 1,241 records. The median search reached 337 networks. The largest reached 6,585.

#Search types

TypeCount%
lookup2,52467.1%
search76820.4%
lookup - Mobile39310.4%
search - Mobile501.3%
visual240.6%
freeform20.1%

#Top operators

75 Flock users ran searches. Gera Hamby (644) and Heather Missey (621) ran 33.6% of all searches.

OperatorCount%
Gera Hamby64417.1%
Heather Missey62116.5%
Zachary Gonz2526.7%
Alex Kelmendi1554.1%
Daniel Rodriguez1463.9%
Taylor Lee1393.7%
Jason Sullivan1243.3%
Michael Burwell1153.1%
Jimmie Stokes1032.7%
Carmelo Crivello982.6%
Other (65 people)1,36436.3%

All 644 of Gera Hamby’s searches give a Traffic Infraction reason. They cover 42 plates. On July 14, Hamby searched one plate 239 times in three hours. On July 15, Hamby searched a second plate 99 times in two and a half hours. Hamby ran 644 of the 1,043 Traffic Infraction searches (61.7%).

#Reasons

Each reason starts with a Flock offense category. 1,680 records add free text after the category, such as “investigation”, “warrant”, or “CASE”. The table groups reasons by category.

CategoryCount%
Wanted Person (Arrest Warrant/Fugitive)1,09529.1%
Traffic Infraction1,04327.7%
Motor Vehicle Theft/Stolen38510.2%
Larceny/Theft Offenses3158.4%
Drugs/Narcotics2045.4%
Burglary/Breaking & Entering1002.7%
Missing/Endangered Person/Runaway802.1%
Destruction/Damage/Vandalism of Property782.1%
Hit and Run/Car Accident621.6%
Weapons Offense (Guns/Shots Fired)601.6%
Stolen Property Offenses571.5%
Alcohol Offenses (Non-DUI)531.4%
Homicide/Death Investigation451.2%
Other (17 categories)1844.9%

Thomas Delia ran 32 of the 53 Alcohol Offenses (Non-DUI) searches. 31 of them read “Alcohol Offenses (Non-DUI) - wanted”.

22 records cite Terrorism/Terroristic Threats. Four operators searched one plate 19 times between 3:30 PM on July 21 and 12:39 AM on July 22, Central time.

#Report highlights

#Low-level offenses

19 records cite low-level offenses: Disorderly Conduct/Disturbance (14) and Trespass (5).

#First Amendment

Heather Missey ran both freeform searches on July 6. A freeform search describes a vehicle in words instead of a plate number. The two prompts describe an SUV with a St. Louis Blues sticker or emblem. Both give the reason Motor Vehicle Theft/Stolen. Flock’s moderation marked both “allow”.

#How we processed the files

The released files are one Excel workbook. We converted it to one CSV and renamed the CSV. We changed no cell values. Anyone with the released workbook can rerun the steps below and get a CSV with the same SHA-256 as ours.

#Source file

FileBytesSHA-256
7_1_2026-7_31_2026-Jefferson County MO SO-Audit.xlsx345,284abf67e757309a239742b226554a6db9da13e9ed526f4542dfc82c34d9b40c248

The workbook has one sheet, 7_1_2026-7_31_2026-Jefferson Co. The sheet holds a header row and 3,761 data rows in 13 columns.

#Conversion

We ran packages/data-load/scripts/xlsx_to_csv.py under Python 3.12.15, pandas 2.3.3, and openpyxl 3.1.5:

python packages/data-load/scripts/xlsx_to_csv.py "7_1_2026-7_31_2026-Jefferson County MO SO-Audit.xlsx"

The script reads each sheet with pandas.read_excel(dtype=str, keep_default_na=False). Every cell stays text, and blank cells stay blank. The script writes one CSV per sheet with Python’s csv.writer. The output is UTF-8 with no byte-order mark. Every field is quoted (QUOTE_ALL). Lines end in \n. The script strips NUL bytes from each cell; this workbook has none. Empty cells become "". With no output folder given, the script writes into a subfolder named after the workbook and names each CSV after its sheet.

#Renames and moves

  • 7_1_2026-7_31_2026-Jefferson County MO SO-Audit/7_1_2026-7_31_2026-Jefferson Co.csv became 7_1_2026-7_31_2026-Jefferson-County-MO-SO-Audit.csv. The new name has no space.
  • We deleted the empty subfolder.
  • The workbook sits unchanged in unprocessed/.

#Staged CSV

Staged CSVSource sheetRowsSHA-256Method
7_1_2026-7_31_2026-Jefferson-County-MO-SO-Audit.csv7_1_2026-7_31_2026-Jefferson Co3,7616912118fd711671b0ef81fcd1f2a78d30d48409bf92d142650a6b0f58196f591converted

#What we checked and left unchanged

  • Twelve of the 13 header names start with a space, such as " Name" and " Org Name". We kept them as released.
  • Each Time Frame cell holds two timestamps on separate lines. The CSV keeps that line break inside the quoted field. The file has 7,523 lines for 3,762 records.
  • The workbook has no redaction markers.