Why is this in beta?
Why is this in beta?
Pattern analysis is still being calibrated because the same technical relationship can mean different business risk in different products. For example, one DeviceID linked to many UserHIDs may indicate bonus abuse, account farming, shared access, internal testing, or another scenario entirely, depending on your business model.ShieldLabs identifies the technical relationships between IDs. Your team should review the affected entities, the action context, the history, and your own policy before deciding whether to monitor, challenge, restrict, review, or block.
Patterns are a dashboard feature, not in the webhook payload.
The eight patterns
Each pattern answers one question about how identifiers cluster over time. The name says the shape, the outcome says what it signals.
“Local IP” is the dashboard name for the visitor’s local network address, used to correlate accounts that look distinct on their public IP.
Seven of the eight patterns count distinct accounts by UserHID, so they only form when you pass a hashed account id through
checkAuthenticatedUser — this includes both Local IP patterns, which count the accounts sharing a network. Only Many Devices on One Visitor (it counts devices per visitor, not accounts) populates from checkAnonymous traffic alone. Pass the UserHID on signed-in calls to light the other seven up.These eight are a ready-made starting set. ShieldLabs also returns the raw identifiers, IP, country, and detection flags, so you can build your own correlations on top — or ask us to add a pattern for your platform.
How grading works
Every pattern grades a flagged entity at one of two levels by counting its linked identifiers inside a rolling window.- Suspicious - the entity crossed the lower threshold for that pattern in its window.
- Dangerous - the entity crossed the higher threshold. The strongest grade.
How each pattern triggers
A pattern grades an entity Suspicious when it crosses the lower count in its rolling window, and Dangerous at the higher count. These are the current default thresholds, with the window built into each one.
A tight window is what gives Multiple Countries on One Account its meaning: one account from several countries in a day is hard to explain as normal travel.
How the level settles
- The level never downgrades. Once an entity reaches Dangerous, it stays Dangerous on later runs. Only its current count and last-seen time update.
- Thresholds are server-side configuration. The counts above are the current defaults, the same for every domain. There is no setting you control, and they can change as detection is tuned — read each row as the shape of what trips a pattern, not a number to hard-code against.
Where patterns live
Patterns are computed server-side from your historical identify data, then shown on the dashboard Patterns view. A background worker recomputes all eight for each verified domain about every 10 minutes, with one run at startup. There is nothing to trigger and no schedule to configure. The Patterns view gives you three things.- Overlap summary - deduplicated totals across all patterns, so you can tell whether a small set of entities is responsible for most flags. Per-card totals are not additive: an entity matching three patterns counts three times across the cards but once here.
- Pattern cards - one card per pattern, broken down per identifier, each with a Suspicious and a Dangerous sub-count. You can export flagged IDs to CSV or JSON, or open the Data view filtered to that pattern.
- Data view - the request rows behind each flag, with the identifiers, country, signals, and Risk Score that produced it.
Patterns are distinct from per-request signals
Patterns and the per-request Risk Score answer different questions. Use the right one for the job.You export the IDs and decide
The Patterns view is read-only. ShieldLabs surfaces the flagged entities. Your own code owns every allow, challenge, review, or block decision. There is no in-product rules engine and no threshold UI. The workflow is short.1
Find the coordinated entities
In the overlap summary, compare total against unique affected IDs. A large gap means a few entities are tripping many patterns each — and an entity matching the most patterns is usually the most clearly coordinated.
2
Open the pattern that matters
Read the per-identifier blocks on the card and their Suspicious and Dangerous sub-counts.
3
Get the evidence
Open the Data view to inspect the request rows behind the flag and confirm context.
4
Export and act
Export the flagged IDs as CSV or JSON, then apply your own policy.
Exports are free. They do not consume request balance. Billing is per identification only.
Next steps
Risk Scoring
The per-request 0-100 score, its bands, and the signals behind it.
Stop fake signups
Use the Risk Score and patterns to flag multi-accounting at signup.
Traffic Analytics
The dashboard, the Data view, and how traffic quality is measured.