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

7 rows where state = "AL" and vendor = "Magnet Forensics" sorted by amount descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

vendor 1

  • Magnet Forensics · 7 ✖

state 1

  • AL · 7 ✖

ledger 1

  • sv:forensics:magnet 7
Link rowid vendor city state spend_date product amount ▲ quote source_document mytown_record ledger amount_type dup_rank geo_suspect anomaly state_norm
4244 4244 Magnet Forensics Mobile AL 2026-02-10 law enforcement forensic software (approve purchase order) 92452.0 Approve purchase order to Magnet Forensics USA, Inc. for annual renewal of law enforcement forensic software and services for Gulf Coast Technology Center; $92,452.71 https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=2483,plainText=false) https://mytown.theboringparts.com/city/mobileal/#m454924 sv:forensics:magnet stated 1 0 0 AL
3481 3481 Magnet Forensics Mobile AL 2026-03-17 digital forensics software (approve purchase order) 69870.0 Approve purchase order to Magnet Forensics USA, Inc. for 1-year subscription to Enhanced Mobile Device software for Gulf Coast Technology Center; $69,870.00 https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=2535,plainText=false) https://mytown.theboringparts.com/city/mobileal/#m454929 sv:forensics:magnet stated 1 0 0 AL
3482 3482 Magnet Forensics Mobile AL 2026-03-10 Enhanced Mobile Device software subscription (approve purchase order) 69870.0 Approve purchase order to Magnet Forensics USA, Inc. for 1-year subscription to Enhanced Mobile Device software for Gulf Coast Technology Center; $69,870.00 https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=2508,plainText=false) https://mytown.theboringparts.com/city/mobileal/#m454928 sv:forensics:magnet stated 2 0 0 AL
3485 3485 Magnet Forensics Mobile AL 2025-03-05 forensic software (approve purchase order) 57110.0 Approve purchase order to Magnet Forensics USA, Inc. for annual renewal of forensic software for Gulf Coast Technology Center; $57,110.00 https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=1028,plainText=false) https://mytown.theboringparts.com/city/mobileal/2025/#m454875 sv:forensics:magnet stated 1 0 0 AL
3486 3486 Magnet Forensics Mobile AL 2025-02-25 forensic software (approve purchase order) 57110.0 Approve purchase order to Magnet Forensics USA, Inc. for annual renewal of forensic software for Gulf Coast Technology Center; $57,110.00 https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=1027,plainText=false) https://mytown.theboringparts.com/city/mobileal/2025/#m454874 sv:forensics:magnet stated 2 0 0 AL
3491 3491 Magnet Forensics Mobile AL 2024-02-20 forensic software subscription (approve purchase order) 54390.0 Approve purchase order to Magnet Forensics USA, Inc. for annual renewal of subscription of forensic software for MPD; $54,390.00 (sponsored by Mayor Stimpson) (submitted by John Paine, Purchasing Dept.). https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=665,plainText=false) https://mytown.theboringparts.com/city/mobileal/2024/#m454821 sv:forensics:magnet stated 1 0 0 AL
3492 3492 Magnet Forensics Mobile AL 2024-02-14 forensic software subscription (approve purchase order) 54390.0 Approve purchase order to Magnet Forensics USA, Inc. for annual renewal of subscription of forensic software for MPD; $54,390.00 (sponsored by Mayor Stimpson) (submitted by John Paine, Purchasing Dept.). https://mobileal.api.civicclerk.com/v1/Meetings/GetMeetingFileStream(fileId=675,plainText=false) https://mytown.theboringparts.com/city/mobileal/2024/#m454820 sv:forensics:magnet stated 2 0 0 AL

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 30.56ms · Data license: CC BY 4.0 · Data source: MyTown