ConceptIntermediateEval-Driven Specification / Writing an eval spec / #6

How many examples belong in a first eval set and how do you choose them?

The direct answer
The number isn't chosen first, it's built. Name the handful of situations where a wrong output actually fails in a different way, put about eight real examples in each one, then add a fixed slice on top sized for the edge cases you already know are coming. That usually lands somewhere between thirty and ninety examples, not a round number borrowed from someone else's blog post.
Do this, in order
  1. Build the total from named categories, never pick a round number first and fill it in.Why: a number chosen before the categories exist hides whether it covers anything real.
  2. Pick about six categories: the situations where a wrong output actually fails differently, not every possible combination of inputs.Why: crossing every variable explodes the count into the hundreds before a single example gets written.
  3. Put about eight examples in each category, not one or two.Why: one example tells you the category worked once, not that it's actually covered.
  4. Add a fixed slice on top for edge cases, roughly a fifth of the base count.Why: the contradictory, rare, or unusual requests are exactly where a random pull never lands.
  5. Give a range, low to high, and say what each end assumes.Why: one exact number claims a confidence in the category list that a first pass hasn't earned yet.
  6. Check that a person can actually grade all of it in about a day.Why: an eval set that takes a week to grade by hand never gets iterated on, which defeats the point of a "first" one.

How to answer this, stage by stage

Nobody's grading you on landing exactly sixty. They're grading whether you built the number from named situations instead of reaching for a round one. Seven moves get you there.

1
Scope what an "example" actually is
Say it like this
"Before any numbers: one example here is one full intake plus the plan the model drafted for it, graded pass or fail by a person. I'm sizing that stack, not a general test suite, and it's a first eval set, before wide rollout, so it needs to be gradeable by one person in about a day."
Why this works
Pinning the unit down stops "how many examples" from getting answered with a vague, ungrounded number.
2
Say the equation out loud
Say it like this
"Here's how I'll build the number. Total equals the number of genuinely different situations, times how many examples I trust per situation, plus a fixed slice for edge cases on top."
Why this works
States the method before touching a single digit, so the interviewer knows arithmetic is coming, not a guess.
3
Name the categories
Say it like this
"For a workout-plan drafter, six situations actually produce a different kind of wrong: a beginner losing weight at home, an intermediate lifter with a full gym, someone training for endurance with no equipment, a beginner with only twenty minutes a day, someone coming back from an injury, and an advanced lifter training six days a week."
Why this works
This is the hard part of the whole method: naming categories by how a wrong answer differs, not by what's easy to survey for.
4
Own the numbers
Say it like this
"Eight examples in each of those six categories, that's forty-eight. On top, twelve edge cases: contradictory goals in one request, a stated medical condition, someone with no equipment and no time at all. Forty-eight plus twelve is sixty."
Why this works
Real arithmetic, said out loud, not a number that arrived from nowhere.
5
Give the range
Say it like this
"That's not one number, it's a range. Cover only the four most common situations at six examples each, plus eight edge cases, and you're at about thirty-five, workable but thin. Go to twelve examples per category across all six, plus twenty edge cases, and you're at about ninety. Sixty sits between those on purpose."
Why this works
Shows the estimate has real slack in it, instead of a false precision nobody should trust from a first pass.
6
Run the sanity check
Say it like this
"Sanity check: grading sixty examples by hand, reading the intake and actually checking the plan, takes maybe eight minutes each. That's about eight hours, one workday. Stick with a two-hundred-example set instead and you're past three days before anyone's even started iterating. Too slow for a first pass."
Why this works
Turns an abstract count into something you can picture finishing, or not finishing, before the review meeting.
7
Name the lever, and close it out
Say it like this
"If you push on which choice moves this number the most, it isn't the edge-case slice. It's whether I cross every survey field into its own category or hand-pick the ones that actually fail differently. Crossing everything lands past two hundred categories before a single example gets written. So: six named situations, eight examples each, twelve edge cases, sixty total, and the category list is the thing I'd defend hardest."
Why this works
Closes on the one lever an interviewer will push on, and restates the whole number in one breath.
If you remember one thing The category list is the estimate. The count per category and the edge-case slice are just the multiplication. Get the situations wrong and no amount of extra examples fixes it.

Let's learn

Meridian Fit's AI drafts a full week of workouts from about five minutes of questions: the goal, the experience level, what equipment is on hand, any injuries, and how much time there is each day.

Before that feature goes anywhere near a wide launch, someone has to build a small stack of test intakes, run each one through the model, and grade the plan it drafts by hand. The question is always the same: how many examples, and which ones.

Knowledge spark: what is an eval set? A small stack of test cases you run a model against on purpose, then grade by hand, before real people ever see the output. It's how you check a feature before it ships, not after.

The easy way to answer the sizing question: pick a round number. A hundred, say, because that's the figure a rival app's engineering blog used when they launched something similar. Grab the hundred most recent sign-ups, grade the plan against each one, ship if most of them look fine.

Here's the turn. A hundred examples pulled at random from recent sign-ups isn't a hundred different tests. Most new users share the same shape: new to exercise, wanting to lose some weight, working out at home. Pull a hundred people at random and around ninety of them look almost the same. The other ten barely touch what actually breaks a plan, an old knee injury, a request for six days a week in a full gym, a goal that contradicts itself.

A hundred examples pulled at random isn't a hundred different tests. It's the same beginner, counted ninety times.

At its worst, that gap doesn't show up until real people are using the feature. The one plan that tells someone with a bad knee to do walking lunges for a week never gets caught in review, because nobody built an example that looked like them.

The decision that mattered Pick the categories before the count. Size by situation, then multiply, never the other way round.

The choice I would take back. We'd have picked a total first, a hundred, because it was easy to defend in a roadmap doc, then filled it with whoever happened to sign up that week. I'd take that back. Name the situations that fail differently first. Let the count follow from that.

What I would leave alone. Not every part of this feature needs a stratified eval set. The wording on the plan's daily nudge message, "Great work today!", doesn't split into meaningfully different situations. A flat sample of twenty is plenty there, because a bad line costs a shrug, not a hurt knee.

The lesson. An eval set's size isn't a number borrowed from someone else's launch post. It's the number of situations that actually break differently, times enough examples per situation to trust the grade, plus room for the ones nobody thought of yet.

Now here is the same thing as a story

Skip this part if you already believe a hundred random examples can still cover almost nothing. Read on if you don't.

Every Monday before the office fills up, Farrukh Tashkentov pulls last week's new intake surveys and reads through a handful of them, one at a time, while his coffee is still too hot to drink.

He's been the product manager on Meridian Fit's plan-drafting feature for fourteen months. Hand him any intake and he can usually guess, before he finishes reading it, what kind of week the model is about to draft.

The team needed a first eval set before the feature opened past its closed beta, and a number already had momentum behind it. Nobody had pushed back on it across two planning meetings: a hundred examples, the figure a rival app, Ridgeback Fit, had put in an engineering blog post about their own AI trainer's launch. A hundred sounded thorough. It was also easy. Pull the hundred most recent completed intakes, grade the plan against each one, ship if ninety look right.

Then, in that same stand-up, the newest engineer on the team, three weeks in, asked the plain question nobody senior had bothered with. "A hundred of what, though?"

Farrukh didn't have a real answer beyond "recent sign-ups." So instead of defending the number, he went and actually looked at it.

Ninety of the hundred were the same shape: new to exercise, wanting to lose some weight, working out at home with whatever they had lying around. Six were an intermediate lifter with a full gym. Three were someone training for a race with no equipment at all. One mentioned a bad knee. Not one was an advanced lifter asking for six days a week.

The number on the slide said one hundred. The real count on his desk said six situations, and five of them barely showed up.
Metaphor scene comparing a random pull of 100 examples, all one shape, against a set built on purpose with 60 examples across six real shapes, weighed on a scale
A hundred pulled at random, weighed against sixty built on purpose

He didn't panic, and he didn't just bolt more examples onto the pile. He sat down with Meridian Fit's head trainer, the one person on the team who could say, for any two intakes, whether the right plan for one would actually be wrong for the other. Together they named six situations where a wrong plan fails in a genuinely different way, not six possible answers to a survey question, six real shapes.

Eight examples in each, built on purpose this time, not pulled at random. Forty-eight. Twelve more for the edge cases the random hundred had walked straight past: a request asking for muscle gain and ten kilos of weight loss in one month, a stated heart condition, someone with no equipment and eight minutes a day. Sixty in total.

Weeks earlier, in the meeting where the hundred got written into the roadmap doc, it had felt like the safe, defensible choice. A real company had used it. Nobody in the room could name a reason it was wrong. That was the actual problem. Nobody had tried.

He graded the new sixty over one afternoon, the same length of time the old hundred would have taken. Three of them failed. One was the returning-from-injury case: the model had put a stated bad knee into walking lunges, twice, in two different weeks of the same plan. The random hundred, with its single injury mention, never had the numbers to catch that even once.

The thing I'd want to tell myself, back in that planning meeting: the number was never the risk. What the number was made of was the risk. I wrote down a total before I'd named a single situation it had to cover.

The letters, spelled out against this exact sixty

This is an estimation question with a build-up hiding inside it, so BOUND fits, not FLIPS. Nobody's habit is fading here. It's an argument about what the total is made of.

B, break it down. The total isn't one number, it's a sum: the number of situations that fail differently, times examples per situation, plus a fixed slice for edge cases.
O, own the numbers. Six categories, eight examples each, forty-eight. Twelve edge cases on top. Sixty total.
U, use a range. Thirty-five if only the four most common situations get covered at six examples each. Ninety if all six get twelve examples plus twenty edge cases. Sixty sits between those on purpose.
N, nail the sanity check. Sixty examples at about eight minutes of real review each is roughly eight hours, one workday. The two-hundred-example version some engineers floated would have taken over three days before anyone started iterating.
D, direction. Whether you cross every survey field into its own category, or hand-pick the ones that actually fail differently, moves this number more than anything else on the list.

The build-up: what the 60 examples are made of
Beginner, fat loss, home
8
8 of 60
Intermediate, strength, full gym
8
8 of 60
Endurance, no equipment
8
8 of 60
Beginner, 20 minutes a day
8
8 of 60
Returning from injury
8
8 of 60
Advanced, 6 days a week
8
8 of 60
Edge cases
12
12 of 60
Beginner, home Strength, full gym Endurance Tight time Injury Advanced Edge cases
Six equal rows of eight, plus a twelve-example edge-case slice on top. Nothing here comes from a round number; every row is a named situation with its own count.
Number line marking a low bound of 35 examples, the picked point of 60, a high bound of 90, and the borrowed number of 100 marked separately for scale
The range, with the borrowed number marked for scale, not as one of the bounds
What moves the total most
Crossing every survey field into its own category instead of hand-picking six+210
Examples per category: 12 instead of 8+24
Edge-case slice: doubled to 24 instead of 12+12
Dropping the injury category as "too rare to bother with"−8
All four are read against the built total of 60. Crossing every input field into its own category, instead of hand-picking the six that actually fail differently, swings the number more than the other three combined. That's the D step's whole point.

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

A veterinary chain's AI drafts at-home care instructions after each visit, tailored to the species, the procedure, and what the owner said about their household.

B, break it down. Same shape: the number of situations where wrong instructions actually hurt the animal or the owner's follow-through, times examples per situation, plus edge cases.
O, own the numbers. Six categories: a routine spay or neuter, a dental cleaning, an orthopedic surgery needing strict activity limits, a new chronic diagnosis the owner has to learn a skill for, an exotic pet with different physiology warnings, and a multi-pet household where the recovering animal needs to be kept apart from the others. Six examples each, thirty-six. Ten edge cases, an owner who needs plainer language, a second unrelated condition, a household with young kids and a large recovering dog. Forty-six total.
U, use a range. About thirty if only the four most common situations get covered at five examples each plus eight edge cases. About sixty-five if all six get eight examples plus eighteen edge cases.
N, nail the sanity check. Forty-six examples at ten minutes of real review each, checking instructions against the actual procedure, is about seven and a half hours, close enough to one workday.
D, direction. Same lever as the workout-plan case: crossing every species-and-procedure combination literally would run into the hundreds. Hand-picking the six situations that hurt the animal differently is what keeps the number small enough to actually build.

The lever that generalizes In both the workout plans and the vet instructions, the same choice moves the total most: whether you cross every input field into its own category, or hand-pick the ones that fail differently. Not the edge-case slice, and not how many examples sit in each category.

Swap the trigger and it still runs.
Speed: an interviewer caps it at one afternoon before a review meeting. Same six categories, drop to five examples each instead of eight, keep the edge-case slice, because the category list is what protects the estimate, not the per-category depth.
Cost: a senior trainer's review time runs forty dollars an hour and the review budget is five hundred dollars. Work backward from that ceiling to how many examples the budget actually affords, same equation, solved in the other direction.
The model got better: after a few rounds the drafter stops making category-specific mistakes. Keep the same six categories, but drop to four examples each, since the job now is catching regressions, not discovering new failure shapes.

Where people run it wrong.
They pick a round number first, then back into a method that happens to produce it, instead of building the number from named categories.
They cross every survey field literally and end up with hundreds of near-empty categories, so the eval set becomes unreviewable and nobody finishes grading it.
They build the category list once at launch and never revisit it, so a new goal type or equipment option ships months later with zero coverage in the eval set.

How to use it live. Say the equation out loud before any number: "I'd size this by category, not as one flat total, how many genuinely different situations, times enough examples to trust each one, plus room for edge cases." That sentence buys you time to actually do the arithmetic, and it tells the interviewer a round number isn't coming.

Flashcards (click a card to flip it)

1 · THE FRAMEWORK
What framework fits a sizing question like this, and why not FLIPS?
Tap to flip
ANSWER
BOUND. There's no person's habit snapping here, just an argument about how a total gets built. FLIPS needs a two-setting behavior flip; this question needs arithmetic and a range.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Farrukh Tashkentov, product manager on Meridian Fit's plan-drafting feature. He's owned it for fourteen months.
3 · THE NUMBER HE ALMOST TRUSTED
What number did Farrukh almost ship the eval set with, before he checked it himself?
Tap to flip
ANSWER
100, borrowed from a rival app's engineering blog and filled with the most recent sign-ups. Checked against real cases, 90 of the 100 were the same beginner shape.
4 · THE BUILD-UP
What replaces the single round number of 100?
Tap to flip
ANSWER
Six named categories at eight examples each (48), plus twelve edge cases, for a total of 60. Each row is a real situation, not a slice of a random pull.
5 · THE OLD DECISION
What decision would you take back, and why did it make sense at first?
Tap to flip
ANSWER
Picking a total headcount, 100, before naming a single category it needed to cover. It made sense because a real competitor had used the same figure, and nobody in the room could name a reason it was wrong.
6 · THE NUMBER
Fill in the blank: of the naive 100 examples, about ___ were the same shape, beginner, home equipment, some version of losing weight.
Tap to flip
ANSWER
About 90. Only 1 mentioned an injury, and 0 were an advanced lifter training six days a week.
7 · THE REPLAY
Same afternoon of grading, new eval set. What changes?
Tap to flip
ANSWER
3 of the 60 built-on-purpose examples failed, including a returning-from-injury case the model put into walking lunges twice. The random 100, with its single injury mention, never had the numbers to catch that.
8 · CROSS-PRODUCT TRANSFER
Section 4 answers this same question again for a different product. Which product, and what's the build-up there?
Tap to flip
ANSWER
A veterinary chain's at-home care instructions. Six categories by procedure and household setup, six examples each, plus ten edge cases, about 46 total.

Check yourself Score: 0 / 0

Short answer, the number question
1. If Meridian Fit added a seventh category, say pregnant users cleared by a doctor to exercise, and kept 8 examples per category and the same 12 edge cases, what's the new total, and would it still fit inside one workday at about 8 minutes of review per example?
Show hint
Multiply the new category count by 8, add the 12 edge cases, then multiply the total by 8 minutes.
Show answer
68 examples, and it slips past one workday. 7 categories times 8 is 56, plus 12 edge cases is 68. At 8 minutes each that's 544 minutes, about 9.1 hours, roughly an hour over a single day. Worth trimming edge cases slightly or splitting review across two people rather than quietly letting review quality slide.
Multiple choice
2. Why doesn't FLIPS fit this question?
  • A. Because FLIPS only works for radiology-style products.
  • B. Because this is an arithmetic and sizing question, how many and which ones, with no person's two-setting behavior flip to find.
  • C. Because BOUND is just FLIPS with different letters.
  • D. Because eval sets are too technical for a story-based framework.
Show hint
Ask what FLIPS actually needs to work: a habit that fades, then a switch that snaps.
Show answer
B. Nobody's trust is fading over months here. The question is about building a total out of real parts, which is exactly BOUND's job.
True or false
3. True or false: the naive 100-example set failed mainly because 100 is too small a number.
  • True
  • False
Show hint
Look at what was wrong with the 100, its composition or its count?
Show answer
False. The failure was composition, about 90 of the 100 were the same shape, not raw count. Pulling 500 examples the same random way would still mostly repeat that one shape.
Fill in the blank
4. The built-on-purpose eval set has ___ categories, ___ examples in each, plus ___ edge cases, for a total of ___.
Show hint
Check the build-up chart: six equal rows, plus one edge-case row.
Show answer
6 categories, 8 examples each, 12 edge cases, 60 total. 6 times 8 is 48, plus 12 is 60.
Short answer, apply it yourself
5. Pick a product you use that grades or sorts things in batches, a spam filter, a resume screener, a homework grader. Name one category a purely random sample of 60 examples would probably miss entirely, and why that category matters.
Show hint
Think about what's rare in your own use of it, but expensive to get wrong.
Show answer
Model answer: "A spam filter: a random sample of my inbox is mostly newsletters and receipts. It would almost never include a phishing email pretending to be my bank, because I only get a handful of those a year. That's exactly the category the filter has to get right, so it needs its own deliberately built slice, not a hope that a random sample happens to include one." Any answer works if it names a genuinely rare, high-stakes category a random pull would skip.
Multiple choice
6. What single assumption moves this eval set's size the most?
  • A. Whether the edge-case slice is capped at 12 or doubled to 24.
  • B. Whether every survey field gets crossed into its own category, or the categories get hand-picked for how a wrong answer actually differs.
  • C. Whether reviewers get 5 minutes or 10 minutes per example.
  • D. Whether the app is mostly used by beginners or advanced lifters.
Show hint
Look at the sensitivity chart. One bar is far longer than the rest.
Show answer
B. Crossing every input field literally would push the category count past 200 before a single example gets written, far more than doubling the edge-case slice or the per-category depth.
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