Friday's Frontline · Week 19 · AI · May 22, 2026

The Real Polish

Last week I told you polish is the trap. This week, the real polish.

When optimization IS warranted (the existential-constraint kind from last week), there’s a way to do it that doesn’t end in shrugs. Most teams skip the methodology and call the result unsolvable.

The phrase I hear from executives (outside of my company) most often: “accuracy and cost are unsolvable in AI.” Said with conviction. Usually by someone who hasn’t built the test that would prove themselves wrong.

A few weekends ago I had a real optimization decision in front of me. A personal project uses a vision model to read wine labels off photos. The incumbent provider was working. A newer one had come out claiming better cost. The lazy version of this work is “let me try a few labels and eyeball it.” The right version is a harness.

I built one. Same image, both providers, parallel calls, structured fields out the other side. 20 ground-truth labels chosen for spread (Old World, New World, chateau-style, single-vineyard, named cuvées). Per-field scoring with strict text match. Cost and latency captured server-side. Markdown-based outputs and Claude’s analysis of the results. I will do 200 more if I need to.

Then the part most teams skip: a written decision rule, locked in before I looked at the numbers. The new provider wins if it matches the incumbent within 5 points of accuracy AND costs at least 20% less. No moving goalposts.

Result: 33% cost reduction, and after a thin normalization layer, 5 points better accuracy.

Solvable.

The more important finding came from the failure-mode taxonomy. Two providers can both score 75% and have completely different error shapes. The incumbent failed sporadically (hard to predict, hard to fix, visible to users). The new one failed systematically (predictable, post-processable, but silently corrupted every wine of a given class). For this app, where the country field powers a dedup hash, silent systematic failure would be catastrophic. The normalization layer is the difference between “swap” and “do not swap.”

If you only score aggregate accuracy, you miss this. Both look like 75%. One is fine. One silently rots your data.

This is why “unsolvable” makes me roll my eyes. The pattern is portable:

Ground truth.

Parallel calls.

Per-field scoring.

Written decision rule.

Failure-mode taxonomy.

The prompt and the data change per project. The shape doesn’t.

When optimization is the RIGHT move, polish it like you mean it.

Cookies and analytics

Status

Checking…

What Google Analytics collects

Two cookies, _ga and _ga_C1QMVN71V1, which last up to two years and let us tell a returning visitor from a new one. It records which pages you looked at, roughly where in the world you are, and which site sent you here. Google Signals and ad personalisation are switched off, so this is a count of reading, not an advertising audience.

If you turn it off

Both cookies are deleted immediately and nothing further is sent to Google. No script from googletagmanager.com is requested on any page you load after that. The site works the same either way. If your browser sends Global Privacy Control or Do Not Track, analytics is already off and we never asked.

What runs either way

Cloudflare, which serves this site, runs its own analytics beacon. It sets no cookies and does not identify you. We also log requests for pages that do not exist, with the page that linked to them, so broken links get found and fixed.

The contact form is separate

What you type into the contact form is emailed to us and used to answer you. It does not go to Google, to analytics, or to a marketing list.