Back
Get in touch
Tidey Case study · Banking · AI agent

AI Fraud Investigator

Tidey investigates bank fraud alerts, closes the clear false alarms and hands everything else to an analyst with a recommendation.

45/50right on held-out alerts0fraud closed alone3×cheaper than one AI model

Tidewell is a fictional bank. All alerts, customers and transactions are synthetic.

Tidey’s morning queue: 50 alerts investigated, 23 closed as false alarms, 18 fraud alerts waiting for approval and 9 judgment calls.
Role
AI Product Builder: agent design, analyst app, build and testing. Self-initiated, October 2026.
Built with
Jev (TypeSafe AI) OpenAI API Vercel GitHub Claude Design Claude Code
01The Problem

Every alert starts with groundwork

Before anyone can decide, someone has to piece the story together: who the customer is, what’s normal for them, what changed and when.

10–15min typically allowed for one retail fraud alert
6–8 systems checked in a single review
30–40% of retail alerts need a call to the customer

From interviews with fraud teams in North America and Europe (NICE Actimize, 2026). NICE Actimize sells fraud software, so these are vendor figures.

The bet

An agent that knows when not to decide

A person approves every block.

  1. 01Does the groundwork on every alert
  2. 02Closes only the clear false alarms
  3. 03Hands the rest to an analyst with a recommendation
02The Idea

Split the decision

Code does the exact work, Jev makes the judgment calls with probabilities, an AI model writes for people, and a person has the final say.

{{ l.name }} {{ l.desc }}
Step {{ stepNum }} of 7{{ stepLane }}

{{ stepTitle }}

{{ stepDesc }}

In alert A-1007 · official test run

{{ stepExample }}

Password reset, new payee and a $3,600 transfer at 2:30 AM. Decided in 0.36 s for $0.0021.
  • ≥ 0.85

    Escalate as Fraud

    Any fraud type at 0.85 or higher goes to the fraud team with a recommendation.

    Fraud to Approve
  • The rest

    Send to a Person

    Anything that misses a rule, with a summary and a suggested next step.

    Judgment Calls
  • ≥ 0.85

    Close It Alone

    Legitimate at 0.85 or higher, nothing unexplained above 0.35, scam risk under 0.6 and under $5,000.

    Closed by Tidey
03The Analyst’s Side

What the analyst sees

The queue says what’s waiting and where to start, and every case ends in one decision bar.

01

Tidey Sorts the Morning

Tidey investigates every alert overnight, closes the clear false alarms and splits the rest into three groups.

02

Approve a Block

An account takeover. Tidey recommends a freeze, and nothing happens until the analyst approves it.

03

Make a Judgment Call

Mixed signals on gift card purchases. Tidey suggests contacting the customer, and the analyst sends the text.

04

Spot-Check a Close

Every alert Tidey closes keeps its evidence. The analyst checks it and confirms the close.

05

Check the Test

Every decision from the held-out test, side by side with a single AI model.

04Design Decisions

How far Tidey is trusted

Six choices shaped how it decides and where a person steps in.

Questions, not one decision

Probabilities make every line tunable

Jev answers narrow questions. Code combines the answers, so each threshold can be read, tested and moved on its own.

Rules in code, not prompts

Policy stays policy

Moving where Tidey closes an alert is a one-line change a fraud lead can review, not a prompt rewrite.

Recommend, don’t act

A person approves every block

Freezing an account hits a real customer and is hard to undo. Tidey recommends and explains; an analyst decides.

A hard cap

Never closed alone at $5,000 or more

However confident Tidey is, large amounts always reach a person. The single model gets the same guardrail.

Checks on demand

Jev picks the optional checks

Required checks always run. Jev decides whether the rest are worth running, which keeps each investigation short.

Write for people only

A summary only when someone will read it

Closed false alarms keep their evidence but skip the AI-written summary, which is most of the cost.

05The Test

Tuned on one set, tested on another

Two sets of 50 synthetic alerts, each with an answer key neither version sees. Tidey was tuned on the first, then both versions ran once on the second.

Getting to 45Correct decisions out of 50
Development v1 31/50

My first question was the wrong one: ‘is everything explained?’ Almost nothing is fully explained, so 19 legitimate alerts went to a person.

Development v2 45/50

Turned around to “is anything out of character and unexplained?” One question, 14 more right.

One rule moved 48/50

Three legitimate alerts sat just over the 0.30 limit. Moving it to 0.35 replayed at 48 on the tuning set.

Held-out test 45/50

Run once on the second set. Nothing was re-tuned after it.

Held-out set

50fresh alerts

Generated after tuning, with a new seed, new places, merchants and amounts, and 8 new unclear cases.

24 legitimate18 fraud8 unclear
Scoring

One mistake costs more than the rest

  • RightClose a legitimate alert, escalate fraud, or send an unclear alert to a person.
  • CostlyA fraud or unclear alert closed with nobody looking.
  • CheapA legitimate alert sent to a person for an extra review.
06Results

About as accurate, with different mistakes

Tidey trades 3 extra reviews for half the risky closes, at a third of the cost and 7× the speed.

Every held-out decision as one bar per alert, comparing the answer key, Tidey and one AI model across 24 legitimate, 18 fraud and 8 unclear alerts.
Official run, October 14, 2026. 50 of 50 alerts, with Jev (jev-1.13.0) and OpenAI GPT-5.4 mini. One bar per alert. Hatched bars are wrong calls; outlined bars are risky alerts closed with nobody looking.
Measure TideyJev decides, code acts One AI modelGPT-5.4 mini, doing everything
Correct decisions45 / 5046 / 50better
Fraud closed with nobody looking00
Unclear alerts closed with nobody looking2better4
Unclear alerts a person saw6 / 8better4 / 8
Legitimate alerts sent to a person30better
Right fraud type when escalated18 / 1818 / 18
Cost per alert$0.0012better$0.0037
Time to a decision0.30 sbetter2.2 s
Broken or invalid outputs00

Official run, October 14, 2026, with Jev (jev-1.13.0) and OpenAI GPT-5.4 mini. Tidey’s cost includes the summary it writes for alerts a person reads.

07Human Oversight

Built to hand off

The points where a person always decides, and the two alerts that got past them.

  • Every block or freeze Analyst It hits a real customer and is hard to undo. Tidey only recommends.
  • Judgment calls Analyst Mixed signals or scam risk. Anything that misses a rule goes to a person.
  • $5,000 and over Analyst Never closed alone, however confident Tidey is.
  • Closed alerts Analyst, spot-check Every close keeps its evidence. Reopen sends it for a second look.
  • The lines themselves Fraud lead Thresholds are policy, set and reviewed in code.
The two misses

Both passed every rule. The single model closed them too, plus two more unclear alerts.

A-1036

$600 ATM withdrawal in Cancun

A booked trip, but a non-bank ATM at 2:40 AM is a common skimming pattern.

Legitimate1.00
Unexplained0.08
A-1049

$64 at a usual bookstore

From a new phone that took three tries at two-factor while the old one was still in use.

Legitimate0.99
Unexplained0.10
How the decision was madeA-1036
Who most likely did this?
Legitimate1.00
Stolen card used online0.00
Account takeover0.00
Card testing0.00
Anything out of character the evidence doesn’t explain?
Yes0.08
Could the customer be the victim of a scam?
Yes0.04

Code rule: Legitimate 1.00 ≥ 0.85 and nothing unexplained (0.08 ≤ 0.35), so Tidey closed it alone.

Answer key: unclear, a person should look. This decision is wrong.

Decided in 0.29 s for $0.0002.
The lesson

The question I didn’t ask.

Both misses passed every rule. Jev answered the question it was asked, and for both the customer was a fair answer. The fix is a new question, not a stricter number.

AskedWho most likely did this?For both misses, the customer was a fair answer.
NextIs this pattern risky even if the customer can explain it?A non-bank ATM at 2:40 AM, or a new phone with failed two-factor, still needs a person.
08Next Steps

What I’d do next

  1. Pattern rules

    A third question for Jev: “Is this risky even if the customer can explain it?”, for patterns like overnight cash at a non-bank ATM or a new device that failed two-factor. A high answer goes to a person.

  2. Re-test

    Run a fresh held-out set, so the new rules are checked on alerts they weren’t written for.

  3. Shadow mode

    Calibrate the lines on real labeled alerts, run next to analysts, and measure the minutes saved per alert.

{{ darkAmbient }}
Go Deeper

See it in action

A self-initiated project with synthetic data, built end to end: agent design, analyst app and a head-to-head test.