footnote4a

Mass surveillance, government contracts, and other bedtime reading.

Data update: Pearland TX PD (Jul 2025 – Jun 2026)

11,635,727 network audit records from Pearland TX PD covering July 1, 2025 through June 30, 2026.

by HaveIBeenFlocked Team
14 min read
logs
texas

Pearland is a city of about 126,000 people south of Houston. Most of the city lies in Brazoria County, and parts reach into Harris and Fort Bend counties. This update adds 12 months of Flock network audit logs from Pearland TX PD, from July 1, 2025 through June 30, 2026. The logs list 11,635,727 searches by 4,756 organizations that included Pearland’s cameras. All times and dates below are Central time.

#Network audit

  • Type: Network audit
  • Timespan: Jul 1, 2025 – Jun 30, 2026 (365 days)
  • Records: 11,635,727
  • Organizations (network): 4,756
  • Search types: lookup (8,121,625), lookup - Mobile (2,128,742), search (1,028,940), search - Mobile (328,324), convoy (22,782), and seven other types with 5,314 records combined
  • Operator name: redacted on 11,635,727 records
  • License plate: redacted on 10,455,437 records; blank on 1,180,290
  • Case #: redacted on 4,154,701 records; blank on 7,481,026
  • Filters: redacted on 4,759,277 records; blank on 6,876,450
  • Reason: blank on 5,349 records

The agency marked redactions with ***. It redacted the operator name on all records, including the 27,934 searches that Pearland’s own Flock users ran. No record shows a plate number or a case number.

The median search covered 2,651 networks. 9,552,593 searches (82.1%) covered 1,000 networks or more, and 4,286,946 (36.8%) covered 5,000 or more. 3,213 searches covered one network.

The logs hold searches on all 365 days. Daily counts ran from 9,365 on Sunday, January 25, 2026, to 53,563 on Wednesday, June 17, 2026. Monthly counts rose from 822,120 in September 2025 to 1,238,898 in June 2026. The files for July 2025 through May 2026 each end at 11:58 p.m. on the last day of the month. No records fall in the 11:59 p.m. minute on those 11 days.

The bars show searches per week. The line shows how many organizations searched in that week. Weeks start on Monday. The first bar covers July 1–6, 2025, and the last covers June 29–30, 2026.

#Search types

TypeCount%
lookup8,121,62569.8%
lookup - Mobile2,128,74218.3%
search1,028,9408.8%
search - Mobile328,3242.8%
convoy22,7820.2%
apiV12,528<0.1%
multiGeo1,526<0.1%
searchSummary - Mobile820<0.1%
visual227<0.1%
freeform183<0.1%
freeform - Mobile18<0.1%
mostSeenOcrValues12<0.1%

Flock users ran 201 freeform searches, which take a text prompt. Texas Department of Public Safety ran 73 of them. Flock’s moderation field reads “allow” on 199 and “block” on two. Texas Department of Public Safety ran both blocked searches.

#Top searching agencies

Agencies with “TX” or “Texas” in their names ran 4,300,590 searches (37.0%). Most other names place the agency in one of 45 other states or Washington, D.C. Houston TX PD ran the most searches, with 808,693. The ten busiest agencies ran 2,512,246 searches (21.6%). Pearland TX PD ranks 70th with 27,934.

OrganizationCount%
Houston TX PD808,6937.0%
Dallas TX PD579,4685.0%
Texas Department of Public Safety312,6912.7%
Harris County TX SO173,8811.5%
Louisville Metro KY PD139,4191.2%
Hillsborough County FL SO134,7641.2%
Palm Beach County FL SO100,7400.9%
Cleveland OH Division of Police98,4650.8%
Missouri State Highway Patrol82,6390.7%
Fort Worth TX PD81,4860.7%
Montgomery County TX SO71,3310.6%
Kansas Highway Patrol68,5210.6%
Grand Prairie TX PD68,1780.6%
Cobb County GA PD66,6040.6%
Carrollton TX PD64,3730.6%
Other (4,741 organizations)8,784,47475.5%

Four accounts carry the “[Federal]” label:

  • Federal Bureau of Investigation (FBI): 59,383 searches. The first came at 7:41 a.m. on March 26, 2026. The account ran 1,759 searches from March 26 to 31, 23,421 in April, 16,345 in May, and 17,858 in June. The reason on 57,252 of them reads “Other - Not Applicable”.
  • US Postal Inspection Service: 42,739 searches, spread across all 12 months. Common reasons include “Robbery”, “General Search”, and forms of “mail theft”.
  • US Border Patrol [Inactive]: 2,897 searches between July 1 and August 24, 2025. No search by this account appears after August 24.
  • Wright Patterson OH Air Force Base: 121 searches.

Five California agencies ran 126,672 searches. Ontario CA PD ran 60,068 of them.

#Reasons

Many reasons pair a Flock offense category with an optional free-text note, such as “Drugs/Narcotics - Investigation”. 6,586,763 reasons (56.6%) contain " - ". This table groups records by the text before the first " - ". It keeps case as written, so “Investigation” and “investigation” appear as separate rows. The logs hold 303,535 distinct reason values.

CategoryCount%
Drugs/Narcotics829,9737.1%
Wanted Person (Arrest Warrant/Fugitive)816,0327.0%
Motor Vehicle Theft/Stolen732,6286.3%
Traffic Infraction512,4624.4%
Larceny/Theft Offenses472,5914.1%
Auto Theft / VCD Investigation334,1032.9%
Other279,1052.4%
Assault/Battery Offenses235,2332.0%
Burglary/Breaking & Entering219,1181.9%
Stolen Property Offenses198,4571.7%
Investigation187,5771.6%
Hit and Run/Car Accident184,8951.6%
investigation163,8111.4%
Robbery162,2161.4%
Weapons Offense (Guns/Shots Fired)155,2471.3%
All other values (145,575)6,152,27952.9%

Pearland’s own Flock users most often entered a category followed by “Criminal Justice Purpose”, as in “Larceny/Theft Offenses - Criminal Justice Purpose” (3,457).

#Report highlights

#Immigration

Reasons name immigration agencies or immigration law on these records. The groups overlap:

  • 483 records from 31 agencies name ICE as a separate word. Florida Highway Patrol entered 114, including 81 that read “ICE ASSIST”. 188 records read only “ICE”. A bare “ice” can also mean methamphetamine, so those 188 may include drug searches.
  • 144 records from 22 agencies contain “immigration”. Lubbock County TX SO entered 42.
  • 134 records name the Border Patrol, USBP, CBP, or Stonegarden.
  • 55 records cite 287(g). Santa Rosa County FL SO entered 47.
  • 2,696 records from 146 agencies name HSI or Homeland Security Investigations. Most of these fall under fraud, drugs, sex offenses, or human trafficking. Addison TX PD entered 395.

The US Border Patrol account cited 8 U.S.C. 1324, the federal law against bringing in and harboring aliens, on 392 of its 2,897 searches.

North MO DTF Brookfield MO PD ran two searches with the reason “ICE detainer” on October 30, 2025. Each covered 25,263 networks. See Anomalies.

#First Amendment

1,203 records match terms that the First Amendment report tracks. Most match on “drone” (330), “church” (205), or “video” (105). 204 contain “protest”, “rally”, or “demonstration”. Among them:

  • Lubbock TX PD entered “protest veh” on 61 records.
  • Cobb County GA PD entered “HOMELAND SECURITY - SITUATIONAL AWARENESS - NEO NAZI AT JEWISH FACILITIES PROTESTING” on 16 records.
  • Burlington NC PD entered “Protest Intelligence” on 10 records.
  • Cleveland OH Division of Police (3) and Tulsa OK PD (1) entered reasons that mention a “no kings protest”.

#Low-level offenses

68,372 records from 2,046 agencies match terms that the low-level offenses report tracks. The most common terms are “disorderly conduct” (26,051), “trespass” (19,917), “littering” (10,699), “curfew” (4,020), and “prostitution” (3,628). Dallas TX PD entered the most, with 2,141. The FBI account entered 2,111, most of them “Disorderly Conduct/Disturbance - Not Applicable”.

#Develop PC

2,885 records from 190 agencies match terms that the develop PC report tracks. “MYOC” appears on 1,718. “Develop PC” appears on 596 and “get PC” on 257. Porter County IN SO entered the most, with 434.

#Profiling

227 records from 23 agencies describe a person by race and sex, such as “black male” (69) or “hispanic male” (40). Carmel IN PD entered 111.

#How we processed the files

We staged 12 released files unchanged under their released names. We left out one released June 2026 file and staged a 13-row extract from it in its place.

#Released files

Row counts exclude the header. Hashes are SHA-256 of the released CSV files.

FileRowsBytesSHA-256
7_1_2025-7_31_2025-Pearland TX PD -Network-Audit.csv899,340181,606,5214e988bf86b78ae826f63c41f4451edda47059ae76b806f1d83b0f21da649090e
8_1_2025-8_31_2025-Pearland TX PD -Network-Audit.csv871,324177,685,23165303d98caccd530d16018683bf1de6626be44209d04848c428c0dfc3e45b3ea
9_1_2025-9_30_2025-Pearland TX PD -Network-Audit.csv822,120167,896,297954923b8f15fcf4cebfe6e488bdf7d8603291298fbc74713b2bcae202da37d19
10_1_2025-10_31_2025-Pearland TX PD -Network-Audit.csv936,522191,433,9580121a63e3333a67f5ad82a71f30e730f96c2eff3db32d969b3ba0a930a0083a4
11_1_2025-11_30_2025-Pearland TX PD -Network-Audit.csv868,848177,858,070b90d5acfe7d510b77901e30c35232fd82b3b1a036eb7f1de9b9bfd13b89824dc
12_1_2025-12_31_2025-Pearland TX PD -Network-Audit.csv852,342180,483,777fbfbf84a38b3c9b9a8235ce9f6831aac578aef278e2e50ed8b8044f1c1220667
1_1_2026-1_31_2026-Pearland TX PD -Network-Audit.csv877,588204,042,560af317fb7df4cb1ece5817bbfaf818585cd4f4d77c8bfdd71693c864e8f29c7c1
2_1_2026-2_28_2026-Pearland TX PD -Network-Audit.csv920,920213,956,166e72a96f3a5a248a65a5e13070ff62b1a713ed31efe55d5a7cdd23be368961aab
3_1_2026-3_31_2026-Pearland TX PD -Network-Audit.csv1,044,786240,039,30556ee72ce960485e13a2e5b9c691dd427a721506fab61d799060b110643cf058d
4_1_2026-4_30_2026-Pearland TX PD -Network-Audit.csv1,109,403255,090,868926356130f418c8030164525e4215b26e45db2af1cc8f00f87491a2bcddfae73
5_1_2026-5_31_2026-Pearland TX PD -Network-Audit.csv1,193,721274,949,503eb2f6ec422e6a1484b511e18bdb34db898b754b97a68d21d7c92f2bab094555e
6_1_2026-6_30_2026-Pearland TX PD -Network-Audit.csv1,048,575222,103,135ac1f3c1c78aab4f9f027e3d2df24d6697cb7541db49dd4c2e1ba9368c3c99b2b
6_1_2026-6_30_2026-Pearland TX PD -Network-Audit (1).csv1,238,886285,909,361317b309cf7a33fba99b1eda5acf7ce8f599293d43f1660b9d4862c863749682f

All 13 files share one header row: ID, Name, Org Name, Total Networks Searched, Time Frame, License Plate, Reason, Case #, Filters, Search Time, Search Type, Text Prompt, Moderation. Every row in every file has 13 fields, and the Search Time parses on every row. No file has a byte order mark, a NUL byte, or a filler row made only of blanks and ***. The Time Frame field holds a start and an end time separated by a line break.

#The two June 2026 files

Twelve files quote text fields and end each line with LF. “6_1_2026-6_30_2026-Pearland TX PD -Network-Audit.csv” differs. It quotes only the fields that need quotes, such as Time Frame. It ends each row with CRLF and keeps a bare LF inside Time Frame. It holds 1,048,575 rows, the most an Excel worksheet holds below a header row. Its earliest record is from 12:00 a.m. on June 4, 2026.

We compared the two June files by ID:

  • 1,048,561 IDs appear in both files. Their parsed fields match in all 13 columns.
  • 190,324 IDs appear only in “(1)”. They run from 12:00 a.m. on June 1 to 11:59 p.m. on June 24.
  • 13 IDs appear only in the other file. All 13 fall between 11:59:01 and 11:59:57 p.m. on June 30. “(1)” ends at 11:58:57 p.m.

We staged “(1)” whole. We did not stage the other June file. To keep its 13 extra records, we wrote them to “6_1_2026-6_30_2026-Pearland TX PD -Network-Audit_last-minute.csv”. The rule: split the file on CRLF, keep the header line, and keep each row whose ID (the text before the first comma) is not in the ID column of “(1)”. The script writes the kept lines in their original order, each followed by CRLF, so the 13 rows keep their original bytes. We ran this script with Python 3.12.15:

# python3 extract.py <june-file> <june-file-(1)> <output>
import csv, sys
csv.field_size_limit(10**9)
a, b, out = sys.argv[1:4]
with open(b, newline="", encoding="utf-8") as fh:
    r = csv.reader(fh); next(r)
    bids = {row[0] for row in r}
data = open(a, "rb").read()
recs = data.split(b"\r\n")
assert recs[-1] == b""
recs = recs[:-1]
keep = [recs[0]] + [x for x in recs[1:] if x.split(b",", 1)[0].decode() not in bids]
open(out, "wb").write(b"".join(x + b"\r\n" for x in keep))

We made no other change. We used no pandas or openpyxl step.

#Staged CSVs

FileRowsBytesSHA-256
7_1_2025-7_31_2025-Pearland TX PD -Network-Audit.csv899,340181,606,5214e988bf86b78ae826f63c41f4451edda47059ae76b806f1d83b0f21da649090e
8_1_2025-8_31_2025-Pearland TX PD -Network-Audit.csv871,324177,685,23165303d98caccd530d16018683bf1de6626be44209d04848c428c0dfc3e45b3ea
9_1_2025-9_30_2025-Pearland TX PD -Network-Audit.csv822,120167,896,297954923b8f15fcf4cebfe6e488bdf7d8603291298fbc74713b2bcae202da37d19
10_1_2025-10_31_2025-Pearland TX PD -Network-Audit.csv936,522191,433,9580121a63e3333a67f5ad82a71f30e730f96c2eff3db32d969b3ba0a930a0083a4
11_1_2025-11_30_2025-Pearland TX PD -Network-Audit.csv868,848177,858,070b90d5acfe7d510b77901e30c35232fd82b3b1a036eb7f1de9b9bfd13b89824dc
12_1_2025-12_31_2025-Pearland TX PD -Network-Audit.csv852,342180,483,777fbfbf84a38b3c9b9a8235ce9f6831aac578aef278e2e50ed8b8044f1c1220667
1_1_2026-1_31_2026-Pearland TX PD -Network-Audit.csv877,588204,042,560af317fb7df4cb1ece5817bbfaf818585cd4f4d77c8bfdd71693c864e8f29c7c1
2_1_2026-2_28_2026-Pearland TX PD -Network-Audit.csv920,920213,956,166e72a96f3a5a248a65a5e13070ff62b1a713ed31efe55d5a7cdd23be368961aab
3_1_2026-3_31_2026-Pearland TX PD -Network-Audit.csv1,044,786240,039,30556ee72ce960485e13a2e5b9c691dd427a721506fab61d799060b110643cf058d
4_1_2026-4_30_2026-Pearland TX PD -Network-Audit.csv1,109,403255,090,868926356130f418c8030164525e4215b26e45db2af1cc8f00f87491a2bcddfae73
5_1_2026-5_31_2026-Pearland TX PD -Network-Audit.csv1,193,721274,949,503eb2f6ec422e6a1484b511e18bdb34db898b754b97a68d21d7c92f2bab094555e
6_1_2026-6_30_2026-Pearland TX PD -Network-Audit (1).csv1,238,886285,909,361317b309cf7a33fba99b1eda5acf7ce8f599293d43f1660b9d4862c863749682f
6_1_2026-6_30_2026-Pearland TX PD -Network-Audit_last-minute.csv132,94179cf02b68931b3fc2a1d5cb02b66a854656db063ee2dd646407c1c3d5d27345e

The first 12 staged files are byte-for-byte copies of the released files with the same names. The 13 staged files hold 11,635,813 rows. To check the result, we started again from the released files in a separate folder, repeated these steps, and compared SHA-256 hashes for all 13 staged files. They matched.

#Checked and left unchanged

  • Redaction markers. We kept *** as written.
  • Duplicate IDs. 86 rows repeat an ID that appears earlier in the same file. All 86 match the earlier row in every field. No ID appears in two staged files. We left the repeats for the importer to drop. This post counts each ID once, which gives 11,635,727 records.
  • Org name spacing. 388 org names have a leading or trailing space, as in "Brevard County FL SO ". We left them as written. This post trims the space when it counts organizations.

#Anomalies

#Flock moderation note on two searches

Two lookups by North MO DTF Brookfield MO PD on October 30, 2025, at 11:10 p.m., carry a note from Flock in the moderation field. Both list the reason “ICE detainer” and cover 25,263 networks, the largest count in the logs. The note reads: “An issue was identified that caused the system to initiate unprocessed search activity on a larger set of cameras than intended by the user. No footage or data from these devices was accessed or viewed. The underlying bug has been fixed, and additional safeguards have been implemented to prevent recurrence.”

#Test records

33,958 records from 1,398 agencies have “test” or “testing” as a word in the reason. St. Charles County MO PD entered 2,654, Tulsa County OK SO entered 2,301, and Robeson County NC SO entered 1,959.

#Excel row limit

The released file “6_1_2026-6_30_2026-Pearland TX PD -Network-Audit.csv” holds 1,048,575 rows, Excel’s limit. It lacks 190,324 records that appear in “(1)”. We staged “(1)” in its place. See How we processed the files.