An alert queue that is the protagonist, a map that serves it as evidence, and a rate card in place of a count KPI — so no number on screen ever appears without the denominator it was divided by, or the test that decided it.
Escalate it, close it, or open a case. That decision is made dozens of times a shift by one analyst at a queue, and the same evidence is re-read at period end by the person who has to stand behind the monitoring programme.
Which is why the map is evidence for the queue, never the product — and why the KPI slot holds a rate: a numerator, its denominator and the test, rendered as one indivisible object. A count map of anything is a population map with a crime label. Put one beside a work queue and the queue inherits the error.
ZCTA 95014 holds 48 of the window's 5,022 alerts against 241,211 transactions — 0.199 per 1,000 against a book rate of 0.234. Not distinguishable from the book, in either direction.
On a count map it is a red blob near the top of the state. It is the busiest cell that is not a finding, and the app says so in a word.
FinCEN's check-fraud trend analysis — 15,417 BSA reports, more than $688 m — carries two maps of the same data in one appendix: subjects by count, and subjects per 100,000 residents.
California is second in the country by count and absent from the per-100,000 list entirely. FinCEN says the quiet part in its own prose: "populous states with large urban areas have reported more incidents."
County heat maps of compromised merchants: counts, no denominator, a decade stale. Card-skimming league tables: a top-ten list of the ten largest states. A population map with a fraud label.
The published brief for this app promised "transaction and incident hotspots." Correcting that one word did not invalidate the solution — it is the solution.
| Rank | By count of BSA report subjects | Per 100,000 residents | What the count column is measuring |
|---|---|---|---|
| 1 | New York — 1,702 | Alabama — 13.992 | population |
| 2 | California — 1,458 | Georgia — 10.838 | California is not on the right-hand list at all |
| 3 | Florida — 1,423 | Washington, D.C. — 9.572 | population |
| 4 | Georgia — 1,161 | New York — 8.425 | the one overlap |
| 5 | Texas — 1,007 | New Jersey — 7.579 | population |
| — | A bank has a better denominator than residents | its own transaction, account and terminal counts | this app's rate |
FinCEN normalises by residents for a good reason — it has no exposure figure across the industry. A bank has one. Normalising by it is the only version of this map that describes the bank's own book rather than the census.
The method itself is fourteen years old and published in the AML trade press: separate filings "by state, county, zip code and branch" and find the branch with a disproportionate ratio of filings to customers. Nobody has put it on a map, given it a significance test, or wired it to the queue an analyst actually works.
Nothing read for the study — the FFIEC manual included — sets a cell size, a method or a significance threshold for AML. That is a finding, not a gap to fill later. The app cannot claim conformity to a convention that does not exist, so it states its own where a model validator can reproduce it: on screen, in the CSV header, and in the printed case pack.
746 of California's 1,802 ZCTAs contain no bank office at all. A monitoring programme keyed to branch of account is blind to two-fifths of the state, and the app says so on the first screen. Dropping those cells would show a tidy map of the half it can see and imply the other half is quiet.
Purple fill where there is no exposure at all; purple outline where there is too little of it. Neither is ever green, and neither is ever absent. Every state carries a colour and a glyph and a word, so the reading survives a greyscale print — and no fill ever carries text.
Data colours are the same hex in light and dark — a verdict that changed colour with the theme would make two screenshots of one reading disagree, and the suite asserts that no verdict token is redefined in the dark block. On the 24-hour window no California cell reaches the floor: every cell reads too little exposure to test, the map declines a verdict, and the queue still works. That is the honest answer, not a defect.
Neither half alone is new. The first is the honest version of what everyone draws. The second is the one nobody has — and it is what turns a picture into a decision, because it separates a geography that is risky from rules that are merely noisy in it.
Two ratios, both printed, never conflated. Change the window or the basis and the rate, the test, the verdict, the book rate, the legend counts and the queue order all move in one frame — because they are one derivation, not five.
Counts from the shipped reading. More of the statistically hot cells are tuning artefacts than are real concentrations — 17 against 13. Cell 90006 holds the state's second-highest alert count and fires at three times the book rate at q < 0.0001, yet escalates at 7.9 % against 14 % book-wide. On any hotspot map ever shipped it is the reddest thing on screen. Here it is a rules problem, and the app names it as one.
It scopes the queue by point-in-polygon across cells — 2,599 of 5,022 alerts here. But a shape the user drew has no published exposure denominator, so the card greys out and says why. It does not divide by something plausible.
A method describes a test, and no test was run there. Printing one beside the refusal implies a reading that does not exist. The too little exposure state keeps its method — the floor that refused it is part of the method.
No public register of merchant locations exists. The map renders no cells, the queue no rows, and the notice states the reason. A lane that quietly showed data would have synthesized public geography.
| Layer | Footprint in California | Window | Status, as shipped |
|---|---|---|---|
| HIFCA — High Intensity Financial Crime Areas | 21 of 58 counties | none published | DESIGNATED — no publication date, no version, no boundary file |
| Southwest Border MSB Geographic Targeting Order | 11 ZIP codes (Imperial 4 · San Diego 7) | 2026-03-07 → 2026-09-02 | IN FORCE nationally — SUSPENDED across this app's entire footprint |
| Residential Real Estate GTO county list | 5 counties | 180-day ceiling ⇒ 2026-04-08 | STATUS NOT ESTABLISHED — no renewal retrievable |
68.3 % of California's full-service bank offices sit inside a HIFCA county. An app that shades HIFCA red has shaded California. Scope the queue to HIFCA is a legitimate filter with a citation; rank this alert higher because it is in one is not, and the app cannot express it.
Every layer carries authority · citation · effective_from · effective_to · status, and the app refuses to draw one that is missing any of them. A lapsed layer dashes to 50 % and cannot scope the queue without a confirmation naming the date.
Every incumbent that draws a designated area draws it as though it were permanent. The whole value of a supervisor's boundary is that somebody wrote it down on a date — and that it can be taken away. Outline only, one blue, never filled, never in the verdict legend.
HIFCA's boundary is derived, not published. FinCEN publishes a table of county names with no date, no version, no FIPS and no boundary file, and a search of ArcGIS Online for a HIFCA feature service returns zero. The polygons are Census counties joined to those names, state-scoped — twelve US counties are named "Lake". The layer says exactly that in its own popup and in every export.
Asserting an export as a string assembled in JS cannot see a document that prints blank. The browser suite drives the real button, prints the window and decodes Chrome's subset glyph ids through the font's /ToUnicode map. The first run failed on its own first line: window.open needs a trusted gesture, and a plain scripted click is swallowed silently — indistinguishable from an export that does not work.
--repro rebuilds the extract byte-for-byte from seed 20260818. The FDIC estate is a live register — 5,384 offices on 2026-08-20, 5,381 on 2026-08-23 — so it is frozen as a build input, and the build reports drift instead of dying on it.
MapLibre is vendored; at runtime the app calls nothing but keyless OSM-derived basemap tiles. The offline and browser suites are hermetic, and the network claim is asserted from the browser's own log rather than from reading the code.
Reading the figures: the 1,802 cells and their vintage, the 58 counties and their different vintage, the 5,381-office FDIC estate, and all three rule instruments with their statuses are real, published and probed. The alerts, the dispositions and the exposure denominator are GENERATED from one recorded seed (20260818) — anchored in magnitude to a published FinCEN figure divided by two stated illustrative parameters, never derived from geometry — and labelled in the notice bar, on the rate card, in the splash and in every export.
A geographic alerting device that ends in different treatment for the people inside a polygon is a live enforcement exposure — in the exact county this reference implementation demos over. Every boundary above is written into the delivered application's own README.
Grain · period · location basis · exposure denominator · disposition. The last two are the ones that get left out of the request — and without them this is a prettier version of the count map it exists to refuse. Get all five in writing, and the queue reads your book instead of a generated one.
Swappable by configuration, not by code: the cell layer, the rule-geography instruments and their statuses, the exposure floor and α. No threshold, label or convention is hardcoded to a US rule — because there is no US rule, which is precisely why the method has to be printed on the artefact.