Primary-source reference · São Paulo & Los Angeles
Smart Sampa Error Ledger
Both of São Paulo's facial-recognition transparency reports, compared line by line — with every figure traced to the government PDF it came from, and every denominator stated.
01 What this is, and what it is not
The City of São Paulo has published two transparency reports on Smart Sampa, its facial-recognition programme. They use the same categories, so they can be placed side by side. As far as we can establish, that comparison has not been published anywhere else.
This page is the comparison and nothing more. It makes no claim about whether the programme is lawful, effective, or proportionate.
These are the city's own figures and the city's own category names. "Facial-recognition inconsistency" is São Paulo's term, not a finding that the system matched the wrong person — the reports do not adjudicate that. People counted as released were taken to a police station and let go; the reports do not establish that any individual detention was unlawful.
02 The two reports, side by side
| Outcome | Report 1 21 Nov 24 – 21 May 25 | Report 2 22 May – 22 Nov 25 | Change |
|---|---|---|---|
| People approached after a match1,2 | 1,246 | 1,334 | +7% |
| Released at the scene1,2 | 11 | 7 | −36% |
| Taken to a police station1,2 | 1,235 | 1,327 | +7% |
| — and formally arrested1,2 | 1,153 | 1,198 | +4% |
| — and released1,2,3 | 82 | 129 | +57% |
| warrant not cleared from BNMP1,2,3 | 53 | 88 | +66% |
| registration inconsistency1,2,3 | 6 | 5 | −17% |
| facial-recognition inconsistency1,2,3 | 23 | 36 | +57% |
Both chains reconcile exactly · 1,246 = 11 + 1,235 · 1,235 = 1,153 + 82 · 82 = 53 + 6 + 23
1,334 = 7 + 1,327 · 1,327 = 1,198 + 129 · 129 = 88 + 5 + 36
The one ratio that holds across both periods
In both periods, releases caused by a bad record outnumbered releases caused by a recognition problem by roughly two and a half to one. That ratio is near-identical across two independent reporting periods.
Recognition failures did not improve. In relative terms the two categories deteriorated at almost the same rate: record-related releases rose +57.6% (59 → 93), recognition-related releases rose +56.5% (23 → 36). And of the 47 additional station releases, 13 — 27.7% — were recognition cases. Any claim that the algorithm is getting better is not supported by these two reports.
03 Denominators
Most errors we found in circulating coverage come from figures quoted without their base. The bases on this page are:
- Approaches — people stopped after the system raised a facial match. 1,246 and 1,334.
- Station releases — the 82 and 129. Counted against people taken to a station (1,235 and 1,327), not against approaches.
- The city's own accuracy figure — Report 1 states 1.86% "inconsistent recognition" and 98.14% "assertive", computed as 23 ÷ 1,235.1
- Race fields — the percentages in §4 are shares of formal arrest records (1,153 and 1,198), not of everyone approached. The two are not a clean trend.
The same problem, in one force, in one year
London shows how far the choice of base can move a headline — without changing a single underlying fact. All three figures below come from the Metropolitan Police's own reporting for 11 September 2024 – 10 September 2025: ten false alerts, roughly 3.1 million faces scanned, 2,077 alerts raised.7
| What is being divided | Denominator | Result |
|---|---|---|
| false alerts ÷ every face scanned | ≈3,147,000 | 0.0003% |
| false alerts ÷ alerts the system raised | 2,077 | 0.48% |
Same force. Same year. Same ten errors. Two defensible denominators, roughly 1,500× apart. Neither figure is false and nobody is lying. But a reader given only one of them cannot tell which question was answered — and the two answers support opposite headlines.
São Paulo's 98.14% is the same kind of choice: 23 divided by the 1,235 people taken to a station. Also defensible, also disclosed with its working. The problem is not that operators pick a base — they must. It is that no two jurisdictions pick the same one, so no published accuracy figure in this field can be compared with any other.
04 The missing race field
Both reports record colour/race as N/C — Nada Consta (nothing recorded) for roughly half of arrest records.
| Report | Base | Not recorded | Share |
|---|---|---|---|
| Report 13 | 1,153 | — | 58.9% |
| Report 22 | 1,198 | 592 | 49.42% |
Report 2 gives the full breakdown: parda 276 (23.04%), branca 248 (20.70%), preta 78 (6.51%), amarela 3, indígena 1, not recorded 592.2
The city states the reason directly: the field was not filled in on the arrest warrant, and the warrant register — the BNMP — is managed by the National Council of Justice and fed by state courts, not by the city.2 The same register is the source of the largest release category in §2.
Why the missing half decides the answer
Among the 606 records that do carry race, 354 are preta or parda — 58.4%. São Paulo state is 40.9% preta or parda by the 2022 census.5 Taken alone, that reads as over-representation of about 17 points.
But 592 records carry no race at all. The bounds:
These are logical bounds, not estimates. Neither extreme is likely; the true value almost certainly sits well inside them. The bounds are shown to make one point precise: with 49.42% of the field missing, the published data cannot establish whether this system stops Black people disproportionately — in either direction.
Missing race fields also would not settle the bias question even if complete. That needs exposure denominators, group-specific match outcomes and comparable base rates. None of these reports contain them.
05 The 2019 figure, restated correctly
The most widely quoted statistic in this debate is that 90.5% of people arrested through facial recognition in Brazil are Black. The underlying study says something narrower, and says it plainly.4
The study monitored press reports and official police social-media accounts. It recorded sex in 66 cases and determined race — from recorded data or from photographs — in 42. Of those 42, 90.5% were Black.4 Bahia accounted for 51.7% of the monitored arrests; Bahia is 79.7% preta or parda by the 2022 census.5
The study is from November 2019 and predates the systems it is now routinely cited about.
06 Los Angeles — related, not comparable
São Paulo reports people and their dispositions. Los Angeles reports alert records, and never states how many of the 161 produced a stop. These figures cannot be divided into each other or into São Paulo's.
The LAPD Inspector General reviewed the department's automated plate readers for 1 August – 30 September 2025.6
- 210,568,103 plate reads; 50,183 alerts from 5,911 unique plates.
- 161 alerts where officers confirmed the plate matched correctly and the vehicle proved not to be stolen.
- 337 stolen vehicles recovered; 74 arrests from 68 stops, 46 of which used high-risk tactics.
On the 161, LAPD's written response states these situations "generally" result from update delays — another jurisdiction or a vehicle owner not clearing a plate after a car is recovered. The audit does not establish a cause for each case.6
Two cautions. The audit does not calculate or publish a false-positive, false-discovery, or OCR-error rate; figures of that kind appearing in coverage are derived elsewhere. And the reviewed outcome data came from Axon's in-car system — Motorola roof-camera outcomes were unavailable — so this is not a measurement of any single vendor's cameras.6
07 One distinction the coverage flattens
São Paulo's network is roughly 20,000 city cameras plus 30,000 private ones.2 That is often reported as a public-private system, which invites comparison with the American vendor model. The two arrangements are close to opposite.
| Smart Sampa private cameras8 | US vendor model (Flock) | |
|---|---|---|
| Who owns the hardware | The original owner keeps it. The city receives images, not cameras. | The vendor retains title; hardware is removed at contract end. |
| Who pays | Nobody — participation is voluntary and free. | The customer, per camera per year. |
| Direction of data | One way: participant → city. No reciprocal access documented. | Customer operates; vendor holds a licence to the data. |
The city describes facial recognition as a function of the platform, applied to the integrated system; it does not ring-fence it to municipal cameras. But the published technical requirements for donated cameras cover image quality only — HD 1080p, minimum 2 MP, 24 fps, RTSP, cloud delivery, 7-day retention — not the mounting height, angle or facial field of view that facial recognition normally requires.8 And neither transparency report attributes any alert to a camera type.1,2
So the widely repeated phrase "50,000 cameras with facial recognition" is not supported by the city's own technical documents. What the city states is that it has 50,000 connected cameras, and that the system permits facial recognition. Those are different claims.
08 Sources
- Prefeitura de São Paulo — 1º Relatório de Transparência, Programa Smart Sampa (21 Nov 2024 – 21 May 2025). Report index
- Prefeitura de São Paulo — 2º Relatório de Transparência (22 May – 22 Nov 2025), published 22 Jan 2026. PDF
- LAPIN, Instituto de Referência Negra Peregum & Rede Liberdade — "Smart Sampa: Transparência para quem? Transparência de quê?", 4 Feb 2026. Analyses Report 1 and material obtained under Brazil's freedom-of-information law. Technical note
- Rede de Observatórios da Segurança — "Retratos da Violência", Nov 2019, pp. 69–70. PDF
- IBGE — Censo Demográfico 2022, Tabela 3, população por cor ou raça por unidade da federação. Spreadsheet
- LAPD Office of the Inspector General — "Review of the Department's ALPR System and Use in the Field", dated 10 July 2026. PDF, 98 pp.
- Metropolitan Police — Live Facial Recognition annual report, published 31 October 2025, covering 11 Sep 2024 – 10 Sep 2025. Report
- Prefeitura de São Paulo — Edital de Chamamento Público for private camera integration, and Decreto Municipal nº 63.552 de 4 de julho de 2024. Decree
Sources 1–6 have been read in full against the figures on this page. Sources 7–8 support §3 and §7 respectively. Where a figure is our arithmetic on published numbers rather than a published number itself, the page says so.