← field notes

How a Bank Decides Which Alerts a Human Should See

The alert factory never stops

Every transaction a bank processes, every login, every password reset, every new payee added to an account, gets scored the instant it happens. A mid-size bank generates alerts by the thousands each day. A large one generates them by the hundreds of thousands. Almost none of those alerts are ever seen by a person. Somewhere between the moment a system flags something as suspicious and the moment a human analyst opens a case file, a filtering process throws most of that volume away.

That filtering process is fraud alert triage, and it’s one of the more interesting pieces of adversarial infrastructure on the internet, because it sits directly across the table from anyone running automated logins, card testing, synthetic identities, or account takeover at scale. Understanding how triage works explains why some fraud gets caught in seconds and other fraud runs quietly for months before anyone notices.

Where alerts come from in the first place

Alerts don’t come from one system. They come from several systems layered on top of each other, each looking at a different slice of the same event.

Rules engines are the oldest layer. A rule might say: flag any transaction over a certain dollar amount from a new device, or flag any login followed by a payee addition within ten minutes. Rules are cheap to write, easy to explain to a regulator, and easy for anyone probing the system to eventually map out by trial and error, which is exactly why banks don’t rely on them alone anymore.

Machine learning models sit on top of the rules layer. These models score a transaction or a session based on hundreds of features: transaction velocity, the geographic distance between the last known login and this one, whether the device fingerprint matches prior sessions, whether the IP address resolves to a data center or a residential ISP, whether the behavioral biometrics (typing cadence, mouse movement, scroll pattern) look consistent with the account’s history. None of these features alone triggers an alert. It’s the combination, weighted by a model trained on millions of prior confirmed-fraud and confirmed-legitimate cases, that produces a score.

A third layer, increasingly common, is network or graph-based detection. This looks not at a single account but at relationships between accounts: shared devices, shared IP ranges, shared phone numbers used across supposedly unrelated applications, or a device fingerprint that shows up under twelve different identities in a week. Graph detection is what tends to catch fraud rings and mass account creation, since a single account behaving oddly is easy to miss but a cluster of two hundred accounts sharing a device fingerprint is hard to explain away.

Turning a flag into a number

A raw alert isn’t very useful on its own. What matters is the score attached to it, and that score is where triage actually starts.

Each rule and model output gets converted into a risk score, usually on a normalized scale. Those scores get combined, often with a weighting scheme that reflects how reliable each signal has historically been. A device fingerprint mismatch might carry more weight than a slightly unusual transaction amount, because historically the fingerprint mismatch has correlated more tightly with confirmed fraud. The weighting itself gets revisited constantly, because fraud patterns shift and a signal that was highly predictive last quarter can decay as fraud rings adapt around it.

The combined score gets compared against a threshold, and that threshold is the single most consequential dial in the whole system. Set it too low and analysts drown in false positives, most of which turn out to be a customer traveling, a customer using a new phone, or a customer logging in from a hotel Wi-Fi network that happens to share an IP block with prior fraud attempts. Set it too high and real fraud slips through unflagged. Banks tune this constantly, and the threshold is rarely a single fixed number. It flexes based on the customer’s account history, the dollar amount at risk, and sometimes the time of day, since fraud volume and legitimate traffic both follow their own daily rhythms.

Sorting the survivors

Alerts that clear the threshold don’t go straight to a person either. They go into a queue, and queues get sorted.

Priority sorting usually weighs a few things at once: the dollar amount exposed, the confidence of the score, whether the account has any prior fraud history, and whether the alert matches a pattern the bank is currently watching closely, like a known card-testing campaign or a surge in a specific type of account takeover. A five-dollar authorization attempt scores very differently than a five-thousand-dollar wire transfer, even if the underlying behavioral signals look identical, because the cost of missing the wire is much higher.

Deduplication happens here too. A single fraud attempt can trigger a dozen separate rules within seconds, one for the login, one for the device mismatch, one for the payee change, one for the transaction velocity. Without deduplication, an analyst would see a dozen alerts for what is actually one event. Case management systems cluster related alerts into a single case, usually keyed on shared identifiers like account number, device ID, or a common IP or session token, so a human reviews one coherent story instead of a pile of fragments.

Some banks also run a second, lighter-weight automated pass before human review, sometimes called auto-adjudication. A subset of alerts, usually the lowest-risk ones that still crossed the threshold, get resolved automatically based on rules that have proven reliable enough to trust without a person looking, things like a transaction that matches a well-established pattern for that specific customer. This is controversial internally at most banks because auto-adjudication trades some recall for a lot of analyst time, and getting it wrong on even a small percentage of cases at high volume adds up fast.

What actually reaches an analyst

By the time a case reaches a human, it usually carries a case file, not a raw alert. That file typically includes the triggering event, the score and which signals drove it, related account activity, device and session history, and any prior cases tied to the same account or device.

The analyst’s job at that point is judgment the automated layer can’t yet replicate: does this pattern make sense given what we know about this specific customer, does the explanation the customer gave over the phone match the data, is this a known fraud typology or something new. Analysts also generate the single most valuable input back into the system, which is the outcome label. Every confirmed-fraud or confirmed-legitimate decision an analyst makes becomes training data for the next version of the model, which is why triage isn’t a one-time build but a system that’s retrained and rebalanced on an ongoing cycle.

Why this matters beyond the bank

For anyone who spends time on the other side of detection systems, whether studying bot defenses, device fingerprinting, or how platforms distinguish real users from automated ones, fraud triage is a useful mental model because the same shape shows up everywhere. Streaming platforms, ad networks, and marketplaces all run some version of it: cheap signals first, weighted scoring next, then a small human review layer reserved for whatever the automation can’t confidently resolve on its own.

It also explains why claims of “undetectable” automation don’t hold up under scrutiny. A single signal being spoofed, a fingerprint being randomized, a proxy IP looking clean, rarely defeats a layered system like this, because the layers are built precisely to catch what happens when multiple weak signals line up in a way a single real user never would. The graph layer in particular is why scaling anything, whether it’s card testing or coordinated account creation, tends to be what gets an operation caught. One anomalous account is noise. Two hundred accounts sharing a device fingerprint is a pattern, and patterns are exactly what triage is built to surface.

The threshold tuning also means detection is never static. A signal that goes unnoticed today may be weighted heavily next month once enough confirmed cases accumulate around it. That lag is real, but treating it as a permanent gap is a common and expensive mistake.

Where this fits in the bigger picture

Fraud alert triage is a small piece of a much larger discipline: the constant, mostly invisible negotiation between platforms trying to tell real behavior from fake, and the people testing the edges of that judgment. It’s worth understanding the mechanics on both sides, not to game them, but because the architecture of detection tells you a lot about how the internet actually verifies who and what it’s dealing with.

If you want more of this kind of teardown, of how platforms detect, score, and decide what a human eventually sees, head back to the Hidden Internet homepage for the rest of the series.

Get new guides and videos first — join the Telegram channel.

watch
The Hidden Internet on YouTube

Every field note starts as a short documentary. Watch the systems in this piece explained on screen.

subscribe →
read on
More field notes

The rest of the series on how the modern internet detects, tracks, and sorts the traffic that reaches it.

browse the archive →