The demo worked because you built it on your own data
ENGINEERING
OCTOBER 6, 2026

The demo worked because you built it on your own data

6 min read
BACK TO BLOG

The most expensive failure in applied AI is the one that looks like a success. Here is the test that catches it, and why it has to be able to fail.

I have been designing a system that watches a long video and picks out the moments worth cutting into short clips. The obvious way to build it is to point it at content I already have, tune it until the clips it picks are the ones I would have picked, and then show somebody.

That approach works. It is also the single most reliable way to build something that works for exactly one person, and the reason it is dangerous is that you cannot tell from the inside.

Why does a model that scores well still fail in the real world?

Because it learned the material instead of the job.

If I tune a clip-picker on my own footage, it has a narrow and consistent world to learn from. One voice. One pacing. One way of signalling that something interesting is coming — maybe I drop my volume before a point, or repeat a phrase, or pause. The system picks up on those, because they genuinely do predict a good moment in my footage. It has not learned what makes a moment compelling. It has learned what I sound like when I am about to make one.

Point that at somebody who signals differently — a fast talker who never pauses, an interviewer whose best moments are the guest's, a format with two people talking over each other — and it falls apart. Not gracefully. It confidently selects the wrong moments, because confidence is a property of the model, not of whether the model is right.

And here is the part that costs money: the benchmark will not tell you. If the test set is drawn from the same material as the tuning set, it shares every peculiarity. The score goes up. The demo is excellent. You have measured how well the system has memorised one person, and written it down as how well it does the task.

This is the most expensive failure shape in applied work: a failure that produces the observable of a success. You cannot debug your way out of it, because nothing is reporting a problem.

What a held-out set actually means

The fix is old, boring and widely known, which is why it is worth saying plainly: you evaluate on material the system has never seen, and you choose that material to be unlike what it was built on.

Not a random slice of the same pile. Random splitting is fine for some problems and useless for this one, because a random slice of my own footage is still my footage. The split has to be along the dimension you are claiming to generalise over. If the claim is "this works for any creator", then the split is by creator — whole people held out, never seen, nothing from them in the tuning material at all.

For the clip problem I settled on an evaluation set of 5 creators, picked deliberately across formats that break different assumptions: long-form interview, solo monologue, technical live-stream, high-energy sales, and call-in. Different pacing, different niches, different ways of being interesting. The system gets tuned without them and is scored on them.

That number is not large and I am not claiming it is sufficient. It is the minimum at which "it transferred" and "it got lucky once" start to be distinguishable. What matters is not the count but that the held-out material is chosen to be hostile — if your held-out set is five creators who all sound like the one you built on, you have built a more elaborate version of the same mistake.

Worth being precise about one thing: this set has produced no score yet. It is a method decision, not a result. I am describing how the question will be asked, not answering it.

The test has to be able to fail

Here is where most of this goes wrong in practice, and it is not a technical problem.

A test you run after you have decided to ship is not a test. It is a formality, and everyone involved knows it, which is why the result always comes back acceptable. Somebody finds a reason the held-out creator was unrepresentative. The threshold moves by a few points. The failure gets reclassified as a limitation and added to a roadmap.

So the threshold and the consequence both have to be written down before the result exists. Not a vague intention to see how it goes — an actual sentence saying what number means stop, and what stopping involves.

I wrote mine into the project file as a kill criterion before building anything: if the picker cannot match a human across the held-out creators, there is no product, and the correct action is to stop. Not to iterate. Not to narrow the positioning. Stop.

That sentence is uncomfortable to write, which is the evidence that it is doing something. A criterion you would be happy to meet either way is not a criterion.

And this is general, well beyond machine learning. Any check whose failure is negotiable after the fact is decorative. The question to ask of any test, any monitor, any gate: if this were completely broken, what would I see? If the answer looks the same as everything being fine, the test is not protecting you from anything.

What to ask a vendor about their demo

If somebody is showing you an AI system and you want to know whether it will work on your business rather than on their showcase, these are the questions:

  1. What data was this tuned on, and what was it tested on? If the honest answer is "the same source", you are looking at a memorisation score.
  2. Show me it running on an example you did not choose. Pick something yourself, from your own material, live. The reaction to this request is informative even before the result is.
  3. What was the worst case? Anyone who has evaluated properly has seen their system fail and can describe when. A vendor with no failure modes has not looked for them.
  4. What would have made you abandon this? If nothing would have, nothing was ever being tested.

None of this requires you to understand the model. It requires you to ask what the measurement was made of.

The short version

A system tuned on your own data and tested on your own data tells you nothing you did not already know. The demo is not evidence. The held-out run is evidence, and only if it was allowed to come back badly.

Build the test before the thing. Write the number down. Then let it be true.


If you are evaluating an AI build and want a second read on whether the measurement means anything, my website check is free, needs no signup, and is the fastest honest look at your own setup I can give you. The 30-minute Operations Audit costs nothing either — I will tell you which parts of your operation are worth automating and which are not, including when the answer is none of them. Builds start from $6,000. Get in touch.

SHARE
6 min read
Read More

MORE ARTICLES

MSUFCU turned its own website off. That was the right call.
Engineering
Engineering

MSUFCU turned its own website off. That was the right call.

A PHP flaw became unauthenticated remote code execution with no workaround, so banks and governments went dark on purpose. What happened in Lansing, and why.

I gave an AI agent a wallet and a spending limit
Engineering
Engineering

I gave an AI agent a wallet and a spending limit

An autonomous client paid for its own API call in stablecoins. The payment was the easy half — the interesting half is the record of what it was refused.

How to read the arithmetic on a views guarantee
Engineering
Engineering

How to read the arithmetic on a views guarantee

A real offer promises 10 million views in 90 days or you do not pay. Here is the division that tells you what you are actually buying.

Why the bot has to stop at the publish button
Engineering
Engineering

Why the bot has to stop at the publish button

Automated posting is banned on every platform. The ban is the small problem — the real one is selling an asset you cannot keep alive.