Audit Log Analysis — HaveIBeenFlocked.com

What the Audit Log Reveals

APD's Council presentation cited selective statistics. The full audit log tells a more complete story: at least 15,335 searches in 11 months, a reach of up to 100,075 cameras per search, and more than a quarter of all searches with no documented reason.

DeFlock Apex · Updated July 12, 2026 · Source: HaveIBeenFlocked.com
About this data: HaveIBeenFlocked.com is an independent public records project that collects and publishes Flock ALPR search logs under state transparency laws. This is the most complete public record of Apex PD's Flock searches available—and it was not the data APD brought to Council.
15,335
Documented searches in 11 months
100,075
Most cameras reached in one search
28%
Searches with no reason logged
6,896
Most networks hit in one search

What is the Flock audit log—and why does it matter?

Every time an officer runs a plate through Flock Safety's system, the platform creates a log entry. Each entry records: the date and time of the search, the officer's name, the plate searched, the reason code the officer entered (or left blank), and the number of cameras and networks the query reached.

Flock is required to maintain these logs. In North Carolina, they are public records. The data on this page was compiled from those records by HaveIBeenFlocked.com, an independent transparency project that aggregates Flock audit logs from departments across the country.

What APD brought to Council on June 9

A curated slide deck with selected case examples, summary statistics APD chose, and no raw log data. No volume figures. No reason-code breakdown. No reach analysis.

What the audit log shows

Every search in the record, unfiltered: who ran it, when, with what justification, and how far it reached into Flock's national network. This is the data that should inform a renewal vote.

Scale

At least 15,335 searches in 11 months—roughly 46 per day

Bar chart showing monthly Apex PD Flock search volume totaling at least 15,335 searches over 11 months
APD's presentation offered curated examples. It did not mention volume. The audit log does.
Reach

Apex has 7 cameras. One search can reach 100,075.

Chart comparing Apex's 7 local cameras against the up to 100,075 cameras a single search reaches across the Flock network
When an officer runs a plate, the query goes to the entire Flock network—not just Apex. No resident consented to that scope.
Network Access

A year ago each search hit 986 networks. Now it hits 6,896.

Bar chart comparing networks reached per Apex search: 986 in July 2025 versus 6,896 in 2026, a sevenfold increase
APD discussed a sharing network of about 1,000 agencies. Each search now reaches nearly 6,900 networks, seven times as many as a year ago, most with no connection to Apex.
Accountability Gap

The most common reason for a search is no reason at all

Chart showing 28% of Apex PD searches have no reason recorded, making it the most common logged justification
More than 1 in 4 searches through a national surveillance network was run with no documented justification. There is no basis to review them. They simply happened.

Questions this data raises for Council

  1. 1Why does 28% of the audit log show no reason recorded, and is this a policy violation?
  2. 2Who reviews the audit log, at what frequency, and what authority do they have to flag or suspend searches?
  3. 3Of the 15,335 searches, how many resulted in an enforcement action, arrest, or prosecution?
  4. 4What is the false positive rate—hotlist hits that turned out to be wrong?
  5. 5Did Apex residents consent to having their data queried against as many as 100,075 cameras and 6,896 external networks?
  6. 6Can residents request records of searches that captured their plate?
Public Safety Committee review — underway

This data belongs in the committee review.

The Public Safety Committee is reviewing ALPR policy now, and the 10-camera expansion is still unsigned. Send this to your Council members and ask for answers.

Email Council Now →
Pre-written. Edit before sending. Takes 90 seconds.