Alachua County is in north central Florida. Gainesville is the county seat. About 292,000 people live in the county.
We loaded 4,295 Flock network audit records from the Alachua County Sheriff’s Office. The records cover four one-month windows: March 24 – April 23 and June 4 – July 4, in both 2025 and 2026.
Every record is a search by the Florida Fish and Wildlife Conservation Commission (FWC). The files include no other agencies’ searches.
- Type: Network audit
- Timespan: Mar 24 – Apr 23 and Jun 4 – Jul 4, in 2025 and 2026 (four one-month windows)
- Records: 4,295
- Organizations (network): 1
- Search types: search (2,540), lookup (1,537), freeform (119), lookup - Mobile (99)
- License plate: 3,507 masked as
***(81.7%); 788 blank - Case #: 1,907 masked as
***(44.4%); the rest blank
Every plate and case number that is filled in reads ***. Every operator name reads ***. Times below are Eastern time.
#2025 and 2026
The four files cover the same two date windows in each year.
| Window | Records | search | lookup | lookup - Mobile | freeform | Median networks searched |
|---|---|---|---|---|---|---|
| Mar 24 – Apr 23, 2025 | 1,609 | 1,429 | 176 | 4 | 0 | 727 |
| Jun 4 – Jul 4, 2025 | 866 | 787 | 79 | 0 | 0 | 762 |
| Mar 24 – Apr 23, 2026 | 922 | 190 | 641 | 84 | 7 | 1,532 |
| Jun 4 – Jul 4, 2026 | 898 | 134 | 641 | 11 | 112 | 1,559 |
FWC ran 42.7% fewer searches in the spring 2026 window than in spring 2025: 922 against 1,609. The summer counts stayed close, at 866 in 2025 and 898 in 2026. Across both windows, the total fell 26.5%, from 2,475 to 1,820.
The search mix changed. search entries made up 89.5% of 2025 records. lookup and lookup - Mobile entries made up 75.7% of 2026 records.
The typical 2026 search reached about twice as many networks as in 2025. The median “Total Networks Searched” rose from 727 and 762 in the 2025 windows to 1,532 and 1,559 in the 2026 windows. The largest 2026 search reached 6,230 networks.
The June – July 2025 file has no records after July 2, 2025.
#Search types
| Type | Count | % |
|---|---|---|
| search | 2,540 | 59.1% |
| lookup | 1,537 | 35.8% |
| freeform | 119 | 2.8% |
| lookup - Mobile | 99 | 2.3% |
#Reasons
The reason format changed between years. In 2025, operators typed free text. The 2025 files hold 154 distinct reasons. In 2026, every reason pairs an offense category with an investigation type, such as “Other - Resource Investigation”. The 2026 files hold 33 distinct reasons.
#2025
Most 2025 reasons ask to identify a vehicle or a person. They read “Vehicle ID” or “Subject ID” followed by a surname, or name a person’s “workup”.
| Reason pattern | Count | % |
|---|---|---|
| Identify a vehicle or person, or a “workup” | 1,549 | 62.6% |
fwc or investigation alone | 361 | 14.6% |
| An FWC or other agency case number | 186 | 7.5% |
| Other | 379 | 15.3% |
Searches tied to one surname make up 598 of the 1,609 spring 2025 records (37.2%). Searches tied to a second surname make up 318 of the 866 summer 2025 records (36.7%). Other 2025 reasons include “Illegal Take of Turkey” (37), “Missing person” (11), and “Potential Threat to FWC Employee” (7).
#2026
| Reason | Count | % |
|---|---|---|
| Other - Resource Investigation | 724 | 39.8% |
| Trespass - General Criminal Investigation | 166 | 9.1% |
| Immigration (criminal) - I.C.E. | 130 | 7.1% |
| Other - General Criminal Investigation | 89 | 4.9% |
| Immigration (civil/administrative) - General Criminal Investigation | 86 | 4.7% |
| Illegal Dumping/Littering - General Criminal Investigation | 78 | 4.3% |
| Animal Offenses (cruelty/neglect) - General Criminal Investigation | 76 | 4.2% |
| Other - Fraud Investigation | 69 | 3.8% |
| Larceny/Theft Offenses - General Criminal Investigation | 67 | 3.7% |
| Destruction/Damage/Vandalism of Property - General Criminal Investigation | 66 | 3.6% |
| Immigration (civil/administrative) - I.C.E. | 53 | 2.9% |
| Animal Offenses (cruelty/neglect) - Resource Investigation | 45 | 2.5% |
| Trespass - Resource Investigation | 41 | 2.3% |
| Illegal Dumping/Littering - Resource Investigation | 24 | 1.3% |
| Financial Crime (Embezzlement/Fraud) - Fraud Investigation | 22 | 1.2% |
| Other (18 reasons) | 84 | 4.6% |
All 76 “Animal Offenses (cruelty/neglect) - General Criminal Investigation” records fall on June 12, 2026.
#Report highlights
#Immigration
288 records give an immigration reason. All of them are from 2026. No 2025 reason mentions immigration, ICE, or deportation. Immigration reasons account for 107 of the spring 2026 records (11.6%) and 181 of the summer 2026 records (20.2%). 190 of the 288 name “I.C.E.” as the investigation type. 146 cite criminal immigration and 142 cite civil or administrative immigration.
#Low-level offenses
317 records cite trespass or illegal dumping and littering. 314 of them are from 2026: trespass (207) and illegal dumping or littering (107). The other three are from spring 2025, all “criminal trespass”.
#Freeform searches
119 records are freeform searches, all from 2026. A freeform search describes a vehicle in words instead of a plate number. 112 fall in the summer 2026 window. 92 of those 112 prompts mention a trailer. The two most repeated prompts are “Silver Ford truck with stickers on back window pulling trailer” (29) and “black ford truck with topper towing small trailer” (28). Two prompts describe a trailer sign that reads “caution live alligators”. Flock’s moderation marked all 112 prompts “allow”. 95 of the 119 freeform records give the reason “Other - Resource Investigation”.
The seven spring 2026 freeform records carry no prompt text and no moderation value.
#How we processed the files
The four staged CSVs can be rebuilt byte for byte from the four released files. Two staged files are exact copies. One staged file adds a header row. One staged file comes from a spreadsheet.
#Released files
| Released file | Bytes | SHA-256 |
|---|---|---|
3_24_2025-4_23_2025-Alachua County FL SO-Network-Audit - FWC.csv | 327764 | 984e1603a40182154368ca1d101a71cab7cc27832486e4ed745e5d3731e8aa55 |
6_4_2025-7_4_2025-Alachua County FL SO-Network-Audit - FWC.csv | 174750 | d47dbbb30e327996934eef56a28c56ba55cfbc6978d5346c503f4c97b89dfd15 |
3_24_2026-4_23_2026-Alachua County FL SO-Network-Audit.csv | 211156 | 7593248440f19020c9cb5513c9b5b5a27fb062ddd0c7a8be3420c21d4cbf67fc |
6_4_2026-7_4_2026-Alachua County FL SO-Network-Audit FWC.xlsx | 89983 | 28f9e4165d8569fc77dced20248999a7ad2ab72ce88df8ee0de7c625374979fc |
The XLSX holds one visible sheet, named 060426 - 070426 Alachua County with a trailing space. It has 899 rows (one header row and 898 data rows) and 13 columns, A1:M899. It has no hidden rows, no hidden columns, and no merged cells.
#Changes, in order
Rename. Each file takes the name
YYYY-MM-DD_YYYY-MM-DD-Alachua-County-FL-SO-Network-Audit. The suffix-FWCfollows when the released name ends inFWC. The extension is.csv. The rename touches no bytes.Copy two CSVs unchanged. The March–April 2025 and March–April 2026 CSVs are staged as exact copies. All 1,609 and 922 records keep their original bytes, CRLF row endings included.
Add a header to the June–July 2025 CSV. The released file has no header row. Its first line is a data record with 11 fields. We wrote one header line in front of the released bytes. The header uses the same leading space after each comma as the other files’ headers. It ends in a bare LF (
\n), not CRLF. The 866 data records below it are unchanged, CRLF row endings included. The file grows by 122 bytes.header = ( b"ID, Name, Org Name, Total Networks Searched, Time Frame, License Plate," b" Reason, Case #, Filters, Search Time, Search Type\n" ) src = "6_4_2025-7_4_2025-Alachua County FL SO-Network-Audit - FWC.csv" out = "2025-06-04_2025-07-04-Alachua-County-FL-SO-Network-Audit-FWC.csv" with open(src, "rb") as f: body = f.read() with open(out, "wb") as f: f.write(header + body)Convert the XLSX to CSV. We ran
packages/data-load/scripts/xlsx_to_csv.pyinside the project virtualenv with Python 3.12.15, pandas 2.3.3, and openpyxl 3.1.5. The script reads each sheet withpd.read_excel(..., dtype=str, keep_default_na=False). It writes each sheet withcsv.writer(quoting=csv.QUOTE_ALL, lineterminator="\n")to a file opened withencoding="utf-8"andnewline="". The output has no BOM. The script strips NUL bytes from every cell. It writes empty cells as"". It names the output after the sheet, so we renamed060426 - 070426 Alachua County.csvto the staged name. The output has 898 data records and 13 columns. Every field is quoted, and every line ends in LF. The XLSX stores Total Networks Searched as integers, and the CSV writes them as plain digits such as"762". The sheet holds no NUL bytes, so the strip removed nothing. The sheet has 2,375 empty cells, in License Plate, Filters, Text Prompt, and Moderation. Each became"".source .venv/bin/activate python packages/data-load/scripts/xlsx_to_csv.py \ "6_4_2026-7_4_2026-Alachua County FL SO-Network-Audit FWC.xlsx" out/ mv "out/060426 - 070426 Alachua County.csv" \ 2026-06-04_2026-07-04-Alachua-County-FL-SO-Network-Audit-FWC.csv
#Staged files
| Staged CSV | Source | Records | SHA-256 |
|---|---|---|---|
2025-03-24_2025-04-23-Alachua-County-FL-SO-Network-Audit-FWC.csv | 3_24_2025-4_23_2025-…-Network-Audit - FWC.csv | 1,609 | 984e1603a40182154368ca1d101a71cab7cc27832486e4ed745e5d3731e8aa55 |
2025-06-04_2025-07-04-Alachua-County-FL-SO-Network-Audit-FWC.csv | 6_4_2025-7_4_2025-…-Network-Audit - FWC.csv | 866 | 26d2c8d9b98eedde9ee11fa75f0ffc6f6a3b45447db2af28b971215b73fa79bd |
2026-03-24_2026-04-23-Alachua-County-FL-SO-Network-Audit.csv | 3_24_2026-4_23_2026-…-Network-Audit.csv | 922 | 7593248440f19020c9cb5513c9b5b5a27fb062ddd0c7a8be3420c21d4cbf67fc |
2026-06-04_2026-07-04-Alachua-County-FL-SO-Network-Audit-FWC.csv | 6_4_2026-7_4_2026-…-Network-Audit FWC.xlsx, sheet 060426 - 070426 Alachua County | 898 | af14352c46af5d17c1f73bd735b1d122c9f65b535ae7ea0f4964c84b75192977 |
The four files hold 4,295 records. We rebuilt all four staged files from the released files with the steps above, and each SHA-256 matched.
#What we checked and left unchanged
- No staged CSV has a BOM, a NUL byte, or a non-ASCII byte.
- Every record in each file has the same field count as its header: 13 in three files, 11 in the June–July 2025 file.
- No staged CSV has a duplicate ID, a duplicate row, or a blank row.
- Every Time Frame cell holds a line break between its start and end dates. The released CSVs use a bare LF inside that quoted cell and CRLF between rows. We kept both. Line counts from
wc -ltherefore run about double the record counts. - The released headers keep a leading space before every column name after
ID. We kept the spaces. - The June–July 2025 file lacks the Text Prompt and Moderation columns. We did not add them.
- Search Time keeps its released form, such as
03/24/2025, 01:54:17 PM UTC. We converted no times. ***masks in Name, License Plate, and Case # stay as released.
#Anomalies
#Test records
Two spring 2025 records give the reason “test”.