home / mytown-research

surveillance_spending

A DISCOVERY INDEX of surveillance and police-technology dollar figures found in local government meeting records across 130+ named vendors — NOT a table of confirmed spending, and NOT safe to SUM. An audit on 2026-07-29 found aggregate views were adding amounts that must not be added: the same procurement recurs at committee, council, approval, amendment and renewal stages; "not to exceed" figures are authorization ceilings, not payments. Use the canned query "the CONSERVATIVE total" for any number you intend to publish, and "data-quality report" to see what is flagged. Columns added for this: `amount_type` (stated / ceiling / proposed / recommended / estimated), `dup_rank` (>1 = redundant copy), `geo_suspect` (city disagrees with the source link), `anomaly` (implausible figure), `state_norm` (normalized state). Vendors covered include ALPR (Flock, Vigilant, Genetec), body cameras/tasers (Axon, WatchGuard, Utility, Getac), gunshot detection (ShotSpotter/SoundThinking), face recognition (Clearview AI, DataWorks Plus), fingerprint biometrics (Idemia AFIS/Livescan, filed separately under `sv:biometrics`), data fusion and OSINT (Fusus, Peregrine, LexisNexis Accurint, Thomson Reuters CLEAR), phone forensics (Cellebrite, GrayKey, Magnet), drones (Skydio, BRINC, DJI), cameras/VMS (Verkada, Avigilon), cell-site simulators, CAD/RMS records systems, photo enforcement, jail-call and student monitoring. Every row carries a VERBATIM quote from the minutes and a link to the source document, and a row only publishes if that quote was found character-for-character in the source text. READ THE `ledger` COLUMN: `sv:<category>:<vendor>`. `radio_infra` (two-way radios), `rms` (records/CAD software), `biometrics` (fingerprints) and `not_surveillance` are NOT surveillance sensors — exclude them before quoting any surveillance figure.

Data license: CC BY 4.0 · Data source: MyTown

10 rows where ledger = "flock" and state = "UT" sorted by amount descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: city, spend_date, product, amount, quote, amount_type, dup_rank, geo_suspect, spend_date (date)

vendor 2

  • Flock Safety 9
  • Flock 1

state 1

  • UT · 10 ✖

ledger 1

  • flock · 10 ✖
Link rowid vendor city state spend_date product amount ▲ quote source_document mytown_record ledger amount_type dup_rank geo_suspect anomaly state_norm
1500 1500 Flock Safety Cedar City UT 2026-07-01 consider contract renewal 157500.0 Consider a contract renewal with Flock Safety in the amount of $157,500 per year. https://www.cedarcity.org/AgendaCenter/ViewFile/Agenda/_07012026-3141 https://mytown.theboringparts.com/city/cedarcity.org/#m12802 flock stated 1 0 0 UT
1574 1574 Flock Safety Cedar City UT 2026-07-08 renewal 157500.0 Consider a contract renewal with Flock Safety in the amount of $157,500 per year. https://www.cedarcity.org/AgendaCenter/ViewFile/Agenda/_07082026-3145 https://mytown.theboringparts.com/city/cedarcity.org/#m172822 flock stated 2 0 0 UT
1578 1578 Flock Safety Cedar City UT 2026-07-08 consider a contract renewal 157500.0 Consider a contract renewal with Flock Safety in the amount of $157,500 per year. https://www.cedarcity.org/AgendaCenter/ViewFile/Agenda/_07082026-3148 https://mytown.theboringparts.com/city/cedarcity.org/#m185006 flock stated 3 0 0 UT
2076 2076 Flock Safety Cedar City UT 2026-07-22 consider contract renewal 157500.0 Consider contract renewal with Flock Safety in the amount of $157,500.01 per year. https://www.cedarcity.org/AgendaCenter/ViewFile/Agenda/_07222026-3151 https://mytown.theboringparts.com/city/cedarcity.org/#m1257986 flock stated 1 0 0 UT
2339 2339 Flock Safety Cedar City UT 2026-07-22 Consider contract renewal 157500.0 Consider contract renewal with Flock Safety in the amount of $157,500.01 per year. https://www.utah.gov/pmn/sitemap/notice/1096337.html https://mytown.theboringparts.com/city/ut-pmn-95/#m6246124 flock stated 2 1 0 UT
2340 2340 Flock Safety Cedar City UT 2026-07-08 consider a contract renewal 157500.0 Consider a contract renewal with Flock Safety in the amount of $157,500 per year. https://www.utah.gov/pmn/sitemap/notice/1093719.html https://mytown.theboringparts.com/city/ut-pmn-95/#m6246126 flock stated 4 1 0 UT
2341 2341 Flock Safety Cedar City UT 2026-07-08 consider renewal 157500.0 Consider a contract renewal with Flock Safety in the amount of $157,500 per year. https://www.utah.gov/pmn/sitemap/notice/1093409.html https://mytown.theboringparts.com/city/ut-pmn-95/#m6246127 flock stated 5 1 0 UT
2342 2342 Flock Safety Cedar City UT 2026-07-01 consider a contract renewal 157500.0 Consider a contract renewal with Flock Safety in the amount of $157,500 per year. https://www.utah.gov/pmn/sitemap/notice/1092159.html https://mytown.theboringparts.com/city/ut-pmn-95/#m6246128 flock stated 6 1 0 UT
2379 2379 Flock Woods Cross UT 2026-08-04 budget 35500.0 12 Flock Stationary (pole mounted) LPR x 11 10-60-310 $35,500 https://www.woodscross.com/AgendaCenter/ViewFile/Agenda/_08042026-204 https://mytown.theboringparts.com/city/woodscross.com/#m19666398 flock stated 1 0 0 UT
2145 2145 Flock Safety Alpine UT 2023-01-10 approve purchase 15000.0 Motion: Lon Lott moved to approve the purchase six Flock Safety cameras at the cost not to exceed $15,000 per year and that the cameras be placed at the City limits on Canyon Crest Road, Alpine Highway and Westfield Road with the following conditions to go over the contract, Shane can sign the contract. https://www.alpinecity.org/AgendaCenter/ViewFile/Minutes/_01102023-167 https://mytown.theboringparts.com/city/alpinecity.org/2023/#m1356668 flock ceiling 1 0 0 UT

Advanced export

JSON shape: default, array, newline-delimited

CSV options:

CREATE TABLE surveillance_spending (
  vendor TEXT, city TEXT, state TEXT, spend_date TEXT, product TEXT,
  amount REAL, quote TEXT, source_document TEXT, mytown_record TEXT, ledger TEXT, amount_type TEXT, dup_rank INTEGER, geo_suspect INTEGER, anomaly INTEGER, state_norm TEXT);
CREATE INDEX ix_surv_vendor ON surveillance_spending(vendor);
CREATE INDEX ix_surv_state ON surveillance_spending(state);
CREATE INDEX ix_surv_amount ON surveillance_spending(amount);
CREATE INDEX ix_surv_ledger ON surveillance_spending(ledger);
Powered by Datasette · Queries took 1591.337ms · Data license: CC BY 4.0 · Data source: MyTown