Accounts Payable · Controls · Baseline

The Payment That Didn't Look Like the Others

Post #8 showed an alert that was wrong. This one asks what an alert needs before it earns the right to fire: a picture of what a normal week looks like.

Boris Dračka · October 2026 · 6 min read
Post #16 of 50 — The CFO & AI Series

The examples and architectures in this series are my personal educational, non-commercial experiments; they are not an offer of IT or consulting services.

Nobody notices a payment that looks like the previous forty. That is exactly what makes the forty-first interesting.

The week below is a composite built from patterns I've seen repeat across finance teams over the years. The suppliers, amounts and signals are made up; they don't describe a specific company, supplier, or incident.

Forty-two payments, one that looks different

42
Payments in this composite week
1
Flagged for a second look
3
Signals that set it apart: amount, account, day

You can't see odd without knowing normal

A single limit, say "anything above €10,000", sees the same thing in every supplier: a number. But €10,000 is routine for one supplier and enormous for another. What stands out is a payment that differs from that supplier's own history.

Supplier (made up)Usual amountUsual dayKnown accounts
Raw materials≈ €18,300Tue1
Freight carrier≈ €2,850Thu1
Maintenance contractor≈ €4,200Tue1
Software platform€2,400 (fixed)Tue1
Courier services≈ €415Thu1
Insurance broker€5,200 (fixed)Thu1

The one that stood out

SignalUsual for this supplierThis payment
Amount≈ €4,200€14,400 (3.4×)
AccountThe one used beforeA new one
DayTuesdayFriday

None of the three is damning on its own. A supplier can send a larger invoice, change banks, and ask for a Friday payment. Together they are worth a phone call to a number you already have.

Most odd payments are mistakes

What it looks likeWhat's actually true
A payment check is for catching fraud In many teams I've seen, most unusual payments turn out to be mistakes: a duplicate, a typo in an amount, a wrong date
One limit for every supplier is enough One limit is too high for small suppliers and too low for large ones. Each supplier's own history is the better yardstick
An alert should be rare An alert that fires every day is just a very expensive calendar
More sensitive is safer More sensitive means more false alarms, and Post #8 showed what comes next: people stop reading them

Too tight, too loose, about right

The tolerance is a decision, not a setting. On this composite week, a tight band flags nine payments, a loose band flags none (the odd one included), and the band in the middle flags exactly one.

BandPayments flaggedWhat happens
Too tight9Eight false alarms, and people stop reading them
Too loose0The odd payment passes unseen
About right1One phone call
payments — one supplier, illustrative composite
42
Payments in the week (all suppliers)
—
Flagged this week
—
Tolerance (spreads from usual)

Illustrative composite from Post #16. The supplier, amounts and weeks are made-up sample data and do not describe a specific company, supplier or incident.

An alert is only as good as the normal it is compared with.

What a check like this has to contain

PartWhat it does
A baseline per supplier The usual amount and spread, the usual weekday and the known accounts, from the last several months
A tolerance How far from usual counts as unusual, tuned on past weeks rather than guessed
Reasons Every flag says why, in plain words
A human step The check only reports. A person decides what to do

I put together a small script that does exactly this against made-up payments: it builds each supplier's baseline from the earlier weeks, checks one week against it and prints what looks different, with the reason. It only reads and reports, and it is no substitute for the controls your organisation already has. It's in the same personal, non-commercial repository as the earlier demos in this series.

There's a small prototype for this

anomaly_watch_agent.py reads a CSV of payments and prints the ones that don't look like their own supplier's history, with the reason, using sample data.

See the walkthrough View on GitHub

The first test I'd run is a simple one: take last month's payments, sort them by how far each is from its own supplier's history, and read the top ten. Count how many are mistakes, how many are explained, and how many deserve a call.

Follow the series

Post #17 looks at a different blind spot: the margin on a single product or customer, and how it can turn negative without anyone seeing it in the monthly average.

When did your team last look at a payment because it didn't look like the others, and what did it turn out to be?

Subscribe free
No spam. One post per week. Unsubscribe any time.