The metric that looked green — and the 2% that taught us domain knowledge

We run a local pricing pipeline with Cursor as technical partner. Not a toy project: real sell prices for a business where the market demands the number be right at the moment it updates — no slack, no “close enough.”

This week a client sent a voice note and a side‑by‑side of a few SKUs. Ours were about 2% below the reference they trust. Small on a spreadsheet. In their day‑to‑day, with thin margins, it’s real money. They weren’t attacking the software. They were saying: your “last update” is days behind; our reference shows when the price actually moved.

Here’s the uncomfortable part: the evidence was already on our radar.

The job had run “green.” One counter said ~99% unchanged among matched rows — so it felt like the list was already current. The items that missed the join never entered that bucket. They sat in a huge no_match pile we treated as noise. A contrast report could see the gap, but the summary only counted match categories — not price drift. So we scrolled past the thing that mattered.

I won’t pretend I didn’t see the numbers. I saw them. I thought we were covered — by engineering rules (don’t write bad matches, don’t contaminate), not by the domain clock the operator already uses: when did this price last move?

Cursor / the model is very good at finding the bug once the question is the right one. The failure mode was human: we optimized against yesterday’s scar (bad writes) and under‑built today’s scar (silent staleness). Green exit code ≠ market truth.

We were lucky it was ~2%, not 10–13%. In a market that doesn’t forgive pricing errors, that wider gap wouldn’t be a lesson — it would be brand damage. Call it paying dues for not knowing the trade’s instrument well enough yet.

Takeaway for anyone building with AI on real operations:

The model amplifies whatever KPI you stare at. Stare at the comforting one (unchanged / “job OK”) and you’ll miss the alarm.
Operators don’t argue percentages first — they argue time. If your system has no “last update from source,” you’re flying without their instrument.
The error is almost never “the AI didn’t know.” It’s that we declared coverage before the market’s question was in the checklist.
Happy to compare notes with others shipping agent‑built pipelines into messy, margin‑sensitive businesses where the price has to be right when it moves.