CaseIntermediateEval-Driven Specification / Golden datasets and test set ownership / #2

How do you construct a first golden set with no production traffic?

The direct answer
Don't wait for production traffic to build the first eval set. Break voicemail behavior into the categories you can already name, a clean baseline, background noise, a strong accent, spoken numbers, a rambling message, an angry tone, crosstalk, silence, and a non-English or code-switched message, then hand-write 10 to 20 examples per category. Add them up instead of guessing a total: start near 135, treat 90 to 210 as the honest range, and watch category count, not examples per category, as the assumption most likely to move that number.
Do this, in order
  1. Build the golden set from hand-written categories now, instead of waiting for real calls to arrive.Why: waiting means the first pilot customers become the eval set, and a wrong callback number in week one costs more than four days of writing up front.
  2. Break the total into two real terms: how many categories of hard voicemail exist, and how many examples get written for each one.Why: a single guessed total hides which assumption is actually doing the work.
  3. Size each category by how much it would hurt if the model got it wrong, not with the same count everywhere.Why: a clean, quiet voicemail needs far fewer examples than one with a spoken dollar amount or a callback number.
  4. Give the total as a range, 90 to 210, not a single confident number like 135.Why: a golden set built with no traffic is itself an estimate, and one number pretends a precision nobody has yet.
  5. Check the range against how long it actually takes one person to write and review that many examples.Why: a total that looks fine on paper can still blow a ship date nobody checked it against.
  6. Name category count as the assumption to watch, and leave room to add a category once real calls start.Why: it's the number that swings the total most, and the one nobody can see yet without a single real call.

How to answer this, stage by stage

Eight moves. The trap is naming one confident total, "about 150 examples," with no visible equation behind it.

1
Scope it to one real feature, one real ship date
Say it like this
"Let's scope this. Say I'm the PM on Ringnote, the voicemail transcription and summary feature inside Cordant, a CRM for small sales and service teams. We're two weeks from a private beta with five pilot customers, and right now there's no eval set at all, because there's no traffic yet to sample from."
Why this works
Grounds the estimate in one real deadline instead of a general lecture on golden sets.
2
Say what waiting for traffic can't give you
Say it like this
"Waiting for real calls means the first two weeks of real customers are the eval set. If Ringnote gets a callback number wrong on a stamped voicemail, the first person who finds that out is a pilot customer, not us."
Why this works
Names the real cost of the naive plan before replacing it, so the fix has something to push against.
3
Break the total into its two real terms (B)
Say it like this
"There's really one equation here. Total examples equals how many categories of hard voicemail exist, times how many examples I write for each one, added up category by category. Right now I have zero of either number nailed down."
Why this works
This is the whole method. A total with no visible equation is a guess in a confident voice.
4
Own a real category list and a per-category count (O)
Say it like this
"I count nine categories I already know matter: a clean baseline, background noise, a strong accent, spoken numbers, a rambling message, an angry tone, crosstalk, silence or a hang-up, and a non-English or code-switched message. Spoken numbers and code-switching get 20 examples each, because that's where a wrong summary actually costs someone a missed callback. The clean baseline gets 10, because the model's already good at it."
Why this works
Names the assumption out loud, and ties each category's size to how much it would hurt if the model got it wrong.
5
Give the total as a range, not a single number (U)
Say it like this
"Add those nine up and I get 135. But I could be wrong about how many categories there really are. Fewer, six instead of nine, gets me down to 90. More, fourteen, gets me to 210. That's the honest range."
Why this works
A range beats false precision, and says plainly how far the estimate could move.
6
Sanity check it against a real workweek (N)
Say it like this
"Does 135 survive a smell test? Writing one example, the script, the transcript, the summary, someone reviewing it, takes about 15 minutes. That's 34 hours, a bit over four days, out of the ten workdays I've got before beta. Even the high end, 210, costs about six and a half days. Tight, but it fits."
Why this works
Proves the number was checked against a felt cost, not just arithmetic on a slide.
7
Name the assumption that swings it most (D)
Say it like this
"If I hold examples-per-category steady and just let the category count move, from six to fourteen, the total swings by 120 examples. If I hold category count steady and let examples-per-category move instead, the swing is only 90. Category count is the one to watch, and it's the one I can't see yet, because I haven't heard a real call."
Why this works
A good estimator names the assumption a bad one leaves buried.
8
Say what gets the light touch, and close on the plan
Say it like this
"So here's the plan: nine categories, 135 examples, range 90 to 210, four to six and a half days of writing, and if a tenth category turns up once real calls start, I add to it instead of throwing the whole set out. The clean baseline stays at ten either way. It's already fine."
Why this works
Ends on a sentence someone could act on tomorrow morning, not a vibe about "enough test data."
If you remember one thing A golden set doesn't need traffic. It needs a category list, sized by what it costs to get each one wrong, added up instead of guessed.

Let's learn

Picture this: a feature that has to prove it works before it's ever used for real. That's Ringnote, the voicemail transcription and summary feature built into Cordant, a CRM for small sales and service teams.

Before Ringnote, a rep who missed a call had to listen to the voicemail, often rewinding to catch a number or a name, then type a note before calling back. About 90 seconds a message, once you count the playback and the typing. A rep handling 20 voicemails a day loses half an hour just processing them before dialing a single callback.

Ringnote is built to turn that 90 seconds into about 10. A rep reads two lines instead: "Customer asking about order 48213, wants a callback before 3pm." That's the promise.

Knowledge spark: what is a golden set? A small, carefully built set of examples with a known right answer, used to check a model before real people ever see its output. Without one, "it seems to work" is the only test a feature gets.

Here's the turn. The problem isn't whether Ringnote's transcripts and summaries are accurate. Nobody can say whether they are, because there's no traffic yet to check them against. So the plan on the roadmap was simple: launch, then sample real customer calls after two or three weeks and build the eval set from those.

# category, examples needed (own numbers)
Clean baseline: 10
Background noise: 15
Strong accent: 15
Spoken numbers: 20
Rambling, long message: 15
Angry or urgent tone: 15
Crosstalk: 15
Silence or hang-up: 10
Non-English or code-switch: 20

# total (added up, not averaged)
135

# range, if the category count itself is wrong
90 to 210
The build-up: nine categories, added one at a time, to 135
Clean baseline (10)
10
+ background noise (15)
25
+ strong accent (15)
40
+ spoken numbers (20)
60
+ rambling message (15)
75
+ angry or urgent tone (15)
90
+ crosstalk (15)
105
+ silence or hang-up (10)
115
+ non-English or code-switch (20)
135
Each category, added in The two categories where a wrong summary costs a missed callback
Spoken numbers and non-English messages are two of nine categories, but together they account for 40 of the 135 examples, about 30 percent of the whole set, because a wrong number costs more than a wrong tone.
We didn't need real voicemails to find the truth. We needed an honest list of the ways one goes wrong.

What that costs at its worst: a rep gets a wrong callback number from a bad summary, doesn't double check, and calls the wrong person, or misses a window entirely. Once that happens twice, the rep doesn't just go back to listening to every voicemail. They listen and read the summary, checking one against the other. Ringnote ends up slower than no feature at all, because now there's an extra step on top of the old one.

The choice I would take back. Planning to build the eval set from real customer calls after a soft launch. That made sense in the early planning meeting, when nobody had any idea which categories would actually matter and building a set by hand felt like guessing without data. It stopped making sense the moment beta customers became the ones finding out the hard way.

What I would leave alone. The clean baseline category, a quiet, single caller stating a name and a clear number, doesn't need extra rigor. Every off-the-shelf speech model already gets this right almost every time. Ten examples there just confirm the pipe works end to end. Put the real budget into the categories that are actually hard.

The lesson. You don't need real calls to know what a golden set needs. You need an honest list of the ways a voicemail gets hard, and you can write that list on a whiteboard before a single customer calls.

Now here is the same thing as a story

The short version is above. Read on if you want to feel why a whiteboard list beat waiting for real customers to find the bugs first.

The whiteboard in Marguerite Ashby's office has had the same corner reserved for six months: a list that never quite gets finished. She's the product manager on Ringnote, and she's the one who wrote the original plan, back when the feature was a slide deck and nothing else: launch, then sample real customer calls after two or three weeks and build the eval set from those.

It was a reasonable plan at the time. Nobody on the team had listened to more than a handful of voicemails, all from their own phones, all clean. Building a category list from nothing felt like guessing. Waiting for real data felt like the responsible move.

For months, that plan just sat there, undisturbed, because launch was always a quarter away.

Then leadership pulled the beta forward. A prospect at a trade show had asked for exactly this, and now there were five pilot customers lined up and a date on the calendar: two weeks out.

Foster Lindgren, three weeks into the job as an engineer on the team, asked the question in standup that nobody had a real answer to. "How do we know if it's actually good before we show it to anyone?" The honest answer was: we don't. We were going to find out after beta, from the pilot customers themselves.

A hand-sketched numbered list showing nine categories a voicemail golden set needs to cover, each with an icon and an example count: clean baseline 10, background noise 15, strong accent 15, spoken numbers 20, rambling message 15, angry tone 15, crosstalk 15, silence or hang-up 10, and non-English or code-switch 20
The list Marguerite already had in her head. It just hadn't made it off the whiteboard yet.

Marguerite went back to her office and looked at the whiteboard. The list wasn't actually empty. She'd been adding to it for months, every time someone mentioned a way a voicemail might trip the model up: a warehouse worker calling from the loading dock, a customer reading off a dollar figure, a message left in Spanish because the caller assumed nobody would notice. Nine categories, already there, never written down as a plan.

We didn't need real voicemails to find the truth. We needed an honest list of the ways one goes wrong.

So she stopped waiting. She and one engineer spent four and a half days writing 135 examples, category by category, the risky ones first: 20 for spoken numbers, 20 for non-English or code-switched messages, 10 for the clean baseline nobody needed to worry about.

Here's the turn. It wasn't about whether Ringnote was accurate. It was that nobody could say whether it was, and the plan to find out involved a real customer discovering it first. Once Marguerite could see that plainly, the fix wasn't more testing. It was writing down what she already knew.

The old decision, from that first slide-deck meeting: sample real traffic after launch, because nobody had the data yet to do anything else. What nobody said out loud in that meeting was that the categories worth testing didn't need real traffic to name. They needed someone willing to write them down before they were proven necessary.

Before the beta ever started, the golden set caught two real problems. The model dropped the decimal in a spoken dollar amount three times out of twenty. It summarized a Spanish-language voicemail as if it had been left in English, twice out of twenty. Both fixed, both re-tested, four days before the first pilot customer ever left a message.

Waiting for traffic would have meant a real customer finding those two bugs, on a call that mattered to them. Instead, a whiteboard list found them first, for the cost of four and a half days of writing, not one unhappy pilot customer.

The part I'd go back and tell myself: I was waiting for the calls to tell me what mattered. I already knew. I just hadn't written it down yet.

BOUND, run with nothing to sample from yet

This is a sizing question with no data behind it, so BOUND fits and FLIPS doesn't. Nobody's habit snapped here. A team just had to decide how big a list to write before anyone could prove the list was right.

B, break it down. Total examples equals the number of hard-voicemail categories, times how many examples get written for each one, added up category by category. Not a single guessed number.
O, own the numbers. Nine categories: clean baseline, background noise, strong accent, spoken numbers, rambling message, angry tone, crosstalk, silence or hang-up, non-English or code-switch. Spoken numbers and code-switching get 20 examples each, the categories that get the review, rambling and crosstalk get 15, and the clean baseline gets 10.
U, use a range. Added up, that's 135 at the point estimate. Six categories instead of nine brings it to 90. Fourteen brings it to 210. That's the honest range: 90 to 210.
N, nail the sanity check. Writing and reviewing one example takes about 15 minutes. At 135, that's 34 hours, just over four days, against the 10 workdays before beta. Even the high end, 210 examples, costs about six and a half days. Both fit, with room to spare at the low end and a real squeeze at the high end.
D, direction. Category count swings the total the most. Moving it from six to fourteen, with examples-per-category held steady, swings the total by 120 examples. Moving examples-per-category from 10 to 20 instead, with category count held steady, only swings it by 90. Category count is the assumption to watch, and it's the one nobody can see clearly until the first real calls start arriving.

A hand-sketched number line marking a low bound of 90 examples across 6 categories, a point estimate of 135 examples across 9 categories, a high bound of 210 examples across 14 categories, and a ten-day writing ceiling of about 320 examples
The range against what ten workdays can actually write. Even the high end fits, with room left over.
What moves the total most: category count, or examples per category
Category count, 6 to 14 categories120 examples
Examples per category, 10 to 20 average90 examples
Moving the category count from 6 to 14 swings the total by 120 examples. Moving examples-per-category from 10 to 20 only swings it by 90. Category count is the one to watch, and it's exactly the number nobody can pin down before real calls start.
What I would leave alone The clean baseline category doesn't need extra rigor. Off-the-shelf speech models already handle it well, so ten examples are there only to confirm the pipe works, not to catch real problems.

And if you want to be sure it really works, try it somewhere else

Brackenfield HVAC builds the dispatch software techs use to route an incoming service call: emergency no-heat, routine maintenance, a warranty claim, a sales inquiry, a billing question, or wrong number and spam. Six categories, fixed by how the business already runs, and the same sizing question shows up wearing a different coat.

B, break it down. Total examples equals six fixed categories, times however many examples each one needs, added up.
O, own the numbers. Silas Braithwaite, Brackenfield's eval lead, sized each category by how much its phrasing actually varies: emergency no-heat at 12, routine maintenance at 10, warranty claim at 18, because customers describe a warranty issue a dozen different ways, sales inquiry at 10, billing question at 12, wrong number or spam at 8.
U, use a range. Added up, that's 70 at the point estimate.
N, nail the sanity check. Each example takes about 20 minutes to write and review, longer than Ringnote's, because a believable warranty claim needs a real product model number and a plausible install date. At 70 examples, that's about 23 hours, just under three days, against a five-day window before a trade-show demo.
D, direction. Here the swing flips. Category count barely moves, the business only has six ways to route a call, so the range from 5 to 7 categories only swings the total by 24 examples. Examples-per-category is the one that swings it, from 8 to 20 per category swings the total by 72 examples, because how wildly a category gets phrased matters more than how many categories exist.

The old plan Brackenfield would take back is a cousin of Marguerite's, not a copy of it. Cordant had assumed real traffic was the only honest source for category names. Brackenfield's team had assumed a flat number, "15 examples per category," would work for a business that only ever sees six kinds of calls, without asking which of those six actually needs the most. Same mistake, different shirt: treating every category as though it needed the same amount of proof.

Swap the trigger and it still runs.
Speed: an interviewer wants a usable answer before the meeting ends. Same nine categories, same equation, examples-per-category stated as a round 10 to 20 instead of researched one by one, tightened once real calls start coming in.
Cost: engineering can only pay for 80 hand-written examples total. Solved backwards: at a fixed 80, the clean baseline and silence categories drop to 5 each first, and spoken numbers and non-English stay at 20, because those are the two that cost a real callback if they're wrong.
The model got better: the speech-to-text vendor ships an update that halves background-noise errors. The category count still has to be estimated the same way, because background noise was never the category swinging the total. A better model changes which examples you expect to pass already, not how many you still need to write.

Where people run it wrong.
They wait for a beta to gather "real" examples, so the first customers get an unmeasured model.
They write the same number of examples per category regardless of how much that category's phrasing actually varies, wasting budget on the easy ones.
They treat the point estimate as fixed and never say what would make it grow, so someone above them finds a new category two days before ship with no time built in for it.

How to use it live. Say the equation out loud before naming a single number: categories, times examples per category, added up, not averaged. Then say plainly that a golden set built with no traffic is itself an estimate, so a range is coming, not a guess dressed up as a fact. That buys thinking time and tells the interviewer a real number is on the way.

Flashcards (click a card to flip it)

1 · THE FRAMEWORK
Which framework fits a question asking you to size a first eval set with no calls yet, and why not FLIPS?
Tap to flip
ANSWER
BOUND. This is arithmetic behind a plan, categories times examples per category, added up, not a habit that snaps.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Marguerite Ashby, product manager for Ringnote, Cordant's voicemail transcription and summary feature. She wrote the original plan to build the eval set from real customer calls after beta.
3 · WHAT THE PLAN HID
What did the wait-for-traffic plan actually hide?
Tap to flip
ANSWER
That the first two or three weeks of real pilot customers would be the eval set, so a wrong callback number or a garbled summary would land on a real person before anyone caught it.
4 · THE EQUATION
State the golden set size equation in one line.
Tap to flip
ANSWER
Total examples equals the number of hard-voicemail categories, times how many examples get written for each one, added up category by category, not averaged.
5 · THE OLD DECISION
What decision would you take back, and why did it make sense at the time?
Tap to flip
ANSWER
Planning to build the eval set from real customer calls after a soft launch. It made sense when nobody had any idea which categories would matter and building a set felt like guessing without data.
6 · THE NUMBER
Fill in the blank: the point estimate for Ringnote's first golden set came out to about ______ examples, across ______ categories.
Tap to flip
ANSWER
About 135 examples across 9 categories, with an honest range of 90 to 210 depending on how many categories actually exist.
7 · THE REPLAY
Same four and a half days of writing, real result. What did the golden set catch before beta?
Tap to flip
ANSWER
It caught the model dropping the decimal on a spoken dollar amount three times out of twenty, and summarizing a Spanish-language voicemail as if it were English, twice out of twenty. Both fixed before the first pilot customer left a message.
8 · CROSS-PRODUCT TRANSFER
Section 4 answers this same question again for a different product. Which product, and which assumption swings its total the most?
Tap to flip
ANSWER
Brackenfield HVAC's call-routing feature. There, examples-per-category swings the total more than category count, the opposite of Ringnote, because the six categories are fixed but how each one gets phrased varies wildly.

Check yourself Score: 0 / 0

Fill in the blank
1. Added up, not averaged, across all nine categories, the point estimate for Ringnote's first golden set comes out to about ______ examples.
Show hint
Add the nine category counts from the build-up chart: 10, 15, 15, 20, 15, 15, 15, 10, 20.
Show answer
About 135 examples. 10 + 15 + 15 + 20 + 15 + 15 + 15 + 10 + 20 = 135.
Multiple choice
2. Which assumption swings Ringnote's golden set size the most?
  • A. How many examples get written per category.
  • B. How many categories of hard voicemail exist.
  • C. How long each example takes to write.
  • D. The date of the private beta.
Show hint
Compare the two sensitivity bars: one holds category count steady, the other holds examples-per-category steady.
Show answer
B. Category count swings the total by 120 examples across its range, versus 90 examples for examples-per-category, and it's the harder of the two to see clearly before real calls start.
True or false
3. True or false: because Ringnote had no production traffic yet, the team was right to wait until after the beta to build its eval set.
  • True
  • False
Show hint
Ask who finds the model's mistakes first under each plan.
Show answer
False. Waiting for traffic meant the first pilot customers would be the eval set. The categories worth testing, background noise, spoken numbers, non-English messages, were already knowable from the team's own experience, without a single real call.
Short answer
4. What old decision does this answer take back, and why did it make sense when it was made?
Show hint
Look at the plan written in the very first slide-deck meeting, before the beta date got pulled forward.
Show answer
Model answer: Planning to build the eval set from real customer calls after a soft launch. It made sense before anyone had listened to more than a handful of clean voicemails, when writing a category list by hand felt like guessing without any data behind it.
Short answer, apply it yourself
5. Think of an AI feature you use that's brand new, with barely any users yet. What's one category of input it's probably never been tested against, that you could write by hand right now without waiting for someone else to send it in?
Show hint
Think about who would use the feature in the messiest, least clean-demo way possible.
Show answer
Model answer: Any input that doesn't look like the clean example in the product demo, an accent, a typo-filled message, a request phrased as a complaint instead of a question. You don't need someone else's real traffic to write one example of that yourself and see what the feature does with it.
Fill in the blank
6. If the team discovers three more categories after the beta starts, bringing the count from 9 to 12, with examples-per-category held at 15, the total would grow from 135 to about ______.
Show hint
Multiply the new category count by 15 examples each.
Show answer
About 180. 12 categories times 15 examples each is 180, a 45-example jump from adding just three categories.
From U2xAI Academy

From answering questions to owning outcomes.

A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more