Fraud Detection
An add-on to the Request Manager that quietly scores incoming gift/aid requests for signs of duplicate or abusive submissions — the same household or recipient getting help repeatedly through slightly different details — while not punishing genuine high-volume requestors like a case worker filing for many different children. It flags only; it never auto-blocks a request. You decide what to do with each flag.
It scores requests only. Donations, gifts and pledges are never scored or flagged — there is no fraud check on the fundraising side, so a “flagged donation” does not exist.
Who this is for: anyone who holds the Request Manager capability (owners and admins always do). Everyone who can open Fraud Review sees the flags; an editor or above runs AI assessments, confirms or dismisses, adds to the allowlist and rescans; only an admin removes an allowlist entry or changes the scoring settings. Nobody deletes a flag: there is no control for it.
Enabling Fraud Detection
Fraud Detection is a self-serve extension, but it only does anything useful when the Request Manager is also enabled — it scores that module’s requests. Turn it on from the extension catalog (Settings → Extensions). A Fraud Review item then appears in the navigation under Operations.
The deterministic scoring runs with or without AI. Every request is scored the moment it is saved, however it arrives: through the public form, entered with + New request, by email to your inbound address, or converted from a Contact message (automatically or with Convert to request). If scoring ever fails, the request is still saved, and the nightly rescan (or Rescan all) scores it. The AI assessment (the plain-English rationale) is the only part that needs AI: open Settings → Organization → AI, turn on the master toggle, and make sure an API key is present.
How scoring works
When a request comes in, CartonCrew compares it against your other requests (only ever within your own organization — there is no cross-tenant matching) and adds up matching signals into a risk score of 0–100, which maps to a Low / Medium / High level. A flag is only created at Medium or above.
Signals it looks for include:
- Same email or same phone as another request (exact identity).
- Same address, a very similar address, or geographic proximity (within 75 meters by default — see Scoring settings below).
- Same recipient reached through a different requestor — the strongest “double-dipping” signal.
- Shared email domain (ignoring common free domains like gmail.com).
- Fuzzy requestor name or a shared surname across requests (padding).
- Velocity — several requests sharing one identity or address key in a short window.
- High-value items (electronics, consoles, gift cards, e-bikes, and the like) — a booster on a request that already looks like a duplicate, not a flag on its own.
Scoring is role-aware and trust-aware:
- A request from a known high-volume role (case worker, social worker, foster parent) filing for many different recipients is down-weighted — that’s a legitimate case load, not abuse.
- A verified or known requester on file, or a requestor name that matches a known volunteer, gets a trust discount that lowers the score (a strong duplicate cluster will still flag, just at a lower level).
What happens to a flagged request
Nothing happens to the request itself. A flag is a note beside it, not a hold on it:
- The request stays in the Requests list exactly as it was. It is not blocked, rejected, hidden or paused, and nobody is emailed or notified.
- While the flag is Open, the request’s row in the Requests list carries a ⚠ Review pill with the risk level (see below).
- Confirm and Dismiss change only the flag: its status, and who reviewed it and when. They do not change the request. A confirmed request is still open in the Requests list until someone marks it done or deletes it, and that is your call.
- Once a flag is confirmed, the row’s pill changes to ⛔ Confirmed fraud and stays there, so nobody fulfills it by mistake. Once a flag is dismissed (not fraud), the pill is removed and the row looks like any other.
The Fraud Review queue
Open Fraud Review to work through flags. Each flag card shows the flagged requestor, their city/state and recipient, the risk level badge, the deterministic score (and AI score once assessed), the request’s status, and signal chips summarizing why it flagged (Same address, Same recipient, Velocity, and so on).
Filter by risk level (All levels, High, Medium, Low) and status (Open, Confirmed, Dismissed, All statuses) — it opens on Open flags by default. ↻ Refresh reloads; Rescan all rebuilds the match data and re-scores every existing request (use this after first enabling the extension, or to pick up new matches).
What each control does
- View cluster — opens the matched requests side by side, with the differing fields highlighted, so you can judge whether they’re really the same household.
- Assess with AI — runs an AI assessment that weighs the signals (including the legitimate patterns) and writes a short rationale, stored on the flag. Needs AI turned on in Settings → Organization → AI. Once a flag has been assessed the button is gone and the card shows an AI assessed badge.
- Confirm — marks the flag as suspicious (confirmed). The request is not touched.
- Dismiss — marks the flag as fine. Both Confirm and Dismiss record who reviewed it. A confirmed flag can still be dismissed later, and the other way round.
- Allowlist… — record a known-legitimate key so it stops re-flagging. You’re prompted for a key type (address, requestor, recipient, email, or phone) and a reason (e.g. “Jane Doe — county case worker”). Allowlisted keys contribute nothing to future scores.
Scoring settings
Below the queue, Scoring settings shows how your organization scores requests. Anyone who can open Fraud Review can read it; only an admin can change it.
- Medium-risk score and High-risk score — a request scoring at or above each is flagged Medium or High. The high score must stay above the medium score (defaults 40 and 70).
- Nearby address distance (meters) — two addresses closer than this count as the same place (default 75). Raise it for rural areas; lower it for apartment buildings.
- Address similarity, Recipient name similarity and Requestor name similarity — how alike two spellings must be, from 0.01 to 1, to count as a match. Higher means only near-identical spellings match.
- Allow for case workers — keeps a case worker, social worker or foster parent filing for many different people from being scored as a duplicate.
- Signals that count toward a score — one switch per signal: Same email, Same phone, Same or nearby address, Same recipient, different requestor, Similar requestor name, and Several requests in a short time. Switching one off means that match stops adding to a score. It does not make any request safer, and every other signal still counts. The trust discounts are not switchable.
Press Save settings. New requests are scored with the new settings straight away; press Rescan all to re-score the requests you already have. Saving changes only the settings you touched, so two admins editing different settings at the same time do not undo each other.
The scanning limits the engine uses internally are not settings and are not shown.
The inbox “Review” pill
So a flagged request can’t quietly get fulfilled, an inline ⚠ Review pill appears on flagged rows in the Requests list (showing the risk level). Clicking it jumps to Fraud Review. It shows only for open flags, and only when the Fraud Detection extension is enabled.
When you confirm a flag, the ⚠ Review pill becomes a red ⛔ Confirmed fraud pill that stays on the row. When you dismiss a flag, the pill is removed from the row.
Gotchas
- Flags are advisory. No request is ever auto-blocked or auto-rejected, and there is no setting that makes it do so.
- AI assessment needs AI on. Without it, you still get the deterministic score, signals, and cluster view — just no AI rationale. The “Assess with AI” button will error if AI is off for your org.
- Confirm/Dismiss decisions stick. A later re-score won’t silently wipe a flag you’ve already reviewed; automatic clearing only applies to open flags that no longer match.
- No cross-organization matching. Every comparison is pinned to your own organization.
Last updated: 2026-09-24 · Applies to: CartonCrew v1.110+