We built a 50,000-row purchase ledger, hid 87 irregularities in it, and screened it three ways. Rule-based checks caught 48. A statistical anomaly detector caught none. The slow vendor price drift at the centre of the design was missed by every layer. A follow-up report catches three freshly planted drifts on new data but cannot see the vendor that prompted it.
At Saarnitukku in Vantaa, Tiina in accounts payable is posting a steel supplier’s July invoice whose memo notes, in Finnish, that freight is now included in the goods price. That explains the higher total, and she moves on, because there are two hundred vendors in this ledger and each invoice arrives on its own.
Saarnitukku turns over about ninety million euros a year. That purchase ledger runs to roughly fifty thousand rows, most of them posted by an e-invoice integration, with Tiina and five others in accounts payable handling the rest. Nobody reads it end to end. Raising flags on a ledger this size is easy, but what is scarce is someone qualified to say whether each flag is a real issue or just an unusual transaction. We generated the ledger and hid eighty-seven irregularities in it across eight categories, alongside eighteen clean transactions designed to look suspicious. The correct answers were sealed in a key that nothing in the screening could see.
Seven automated rule checks raised sixty-four flags. Forty-eight were genuine issues. A statistical anomaly detector also scored every transaction and flagged the two hundred most unusual, but not one of them was a genuine issue. The flags from both layers were sorted into thirty-nine groups, and three independent AI analyses had to call every group either a real problem or a false alarm. They got thirty-seven, thirty-five and thirty-eight correct of the thirty-nine. Nobody caught the slow vendor price drift that the whole case was built around. One supplier folded freight charges into its goods and invoices and raised prices on top, reaching nineteen per cent above its first-half baseline by December. The drift moved slowly enough that no screening layer flagged it. A follow-up drift report was built to catch exactly this. It compares each vendor to its own history over time, and on a fresh year of data it flagged all five price movements. Four in the top five of about two hundred vendors. Everything here is invented, but the screening method transfers to a real purchase ledger.
If you’d like to see what we can solve for you, write to us at hapax.fi.