Prod data your AI feature never saw in staging
Real inputs are meaner than anything you would think to write
Prod data your AI feature never saw in staging
A team at a mid-market SaaS built an AI feature to process user-submitted text. They tested it with examples they wrote themselves, sensible inputs a couple of sentences long, in English, well-punctuated. It handled all of them. In production it met the actual users, and the actual users sent things the team never imagined: enormous pasted documents, three languages in one field, emoji, control characters, half-finished thoughts, and the occasional input crafted to see what the feature would do. The feature buckled on inputs the team had literally never shown it.
This is one of the most reliable gaps in AI delivery. The inputs an engineer invents to test a feature cluster around what that engineer expects. Real users do not share your expectations. They paste whatever is on their clipboard, they write in their own language, they make mistakes, and a few of them poke at the feature on purpose. The distribution of real inputs is wider, messier, and stranger than anything a small team will think to type.
The inputs you imagine are the easy ones
Hand-written test cases are not just a small sample of real inputs. They are a biased sample, skewed toward the well-formed and the expected. They systematically miss the long, the malformed, the multilingual, and the adversarial, which are exactly the inputs most likely to break an AI feature. So a feature can pass every test you wrote and still meet its first real challenge in production, where failure is most expensive and most visible.
The fix is to stop inventing your test data and start sampling it. Somewhere in your product, or in a comparable one, there is a pool of real inputs that shows what users actually send. A representative slice of that pool, run through the feature before launch, tells you far more than any number of tidy examples you could write.
What teams that test on reality do
- They draw a representative sample of real production inputs, sanitized for privacy, and run the feature against it before launch.
- They make sure the sample spans the messy tail: very long inputs, multiple languages, odd encodings, empty and near-empty fields.
- They include a handful of deliberately adversarial inputs, because some fraction of real users will send those unprompted.
- They watch how the feature fails on the ugly cases, not only whether it succeeds on the clean ones, and make failure safe.
- They keep sampling after launch, because the input distribution shifts as the product grows and new users arrive.
The habit is to let reality write your test set. Real inputs are the ones your feature will actually face, and they are meaner than your imagination.
How we approach it at Density Labs
In an AI Opportunity Assessment, our fixed two-week engagement at $2,500, we ask what the feature was tested on and where that data came from. When the answer is hand-written examples, we treat it as a red flag, because it means the feature has never met the kind of input most likely to break it. Some of the widely cited difficulty here is exactly this: work that looks done in a demo meets the full mess of production and stalls on it.
We scope the fix: pull a representative, sanitized sample of real inputs, stretch it to cover the messy and adversarial tail, and run the feature against it before launch, not after. We do this while there is still time to change the design, because meeting real data for the first time in prod is the most expensive way to learn what your feature cannot handle. The Diagnose scopes that real production work.
Test on the inputs users actually send, not the ones you would think to write. Reality is a harsher reviewer, and it is better to hear from it before launch.