Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

At this point, looking at the average score is no longer enough. I want to know what the scout is repeatedly getting wrong.

So this chapter does something that feels unscientific at first: it opens the mistakes one by one and reads them. What did v1 look at? What did it say? What did it never check? Read enough of them and they stop looking like eleven separate accidents. They turn into three or four habits, and a habit is something I can fix.

Chapter 8 of 12 · Continuous Calibration

Where we left off: A spot-check showed v1 below its bar in real use, but the numbers don’t say why.

What we fix now: Read each mistake through its trace, tag it, and group the tags into patterns, including two kinds of mistake our metrics can’t see at all.

By the end, you can:

  • read a trace and say what the scout looked at, and what it never checked

  • write a small automatic check that finds a whole class of mistakes

  • turn a pile of mistakes into a short list of patterns, ranked by what they cost

The fix: read the mistakes, then group them

Error analysis has three steps. None of them is clever, and I haven’t found a shortcut that works better than doing them by hand:

  1. Collect every mistake you can find: wrong suggestions, missed papers, and anything else in the log that looks off.

  2. Tag each one with a short description of why it went wrong, in your own words. Read the trace, not just the verdict.

  3. Group the tags. Patterns that cover several mistakes are worth fixing; a one-off may not be.

v1 read the abstract, saw a paper about tax law, decided law isn’t the topic, and stopped. The full text, which it never opened, says the model writes its answers only from retrieved court rulings. That’s squarely relevant. v1 judged the topic; the guideline is about the method.

Step 1: collect

Wrong suggestions and misses come straight from the spot-check, and repeats come from the log. There’s one more kind of mistake I want to hunt for, which no label will ever point at: reasons that say something the paper doesn’t. The reason is what I read when deciding whether to open a paper, so a wrong claim in it misleads me even when the verdict is right.

Checking every reason by hand is tedious. One kind of wrong claim is easy to check automatically, though: numbers. If a reason says “300 papers”, then 300 should appear somewhere in the paper. This check is crude on purpose. It catches one narrow kind of mistake very cheaply, and I know exactly what it misses:

Eleven mistakes. Two of them, W05 and W13, were correct suggestions with a wrong number in the reason: the survey covers “more than 200” papers, not 300, and recall rose by 14 points, not 40. Precision and recall scored both as perfect.

Step 2: tag them yourself

Do this before reading my tags below. If you read mine first, you’ll find my patterns whether they’re there or not. For each mistake, run show_case and write a short tag: what went wrong, in a few words. Use the suggested tags if they fit, or invent your own.

Step 3: the patterns

Here’s how I tagged them. Different wording is fine; what matters is whether you ended up with the same groups.

Eleven mistakes, four patterns:

PatternCasesWhat it costsWhich metric sees it
A. Decided from the abstract aloneW03, W11, W17good papers you never hear aboutrecall
B. Wrong kind of retrievalW02, W06, W14noise in your list, less trustprecision
C. Already suggested beforeW08, W12, W20wasted attentionnone
D. Invented a numberW05, W13misleading reasonsnone

The last printed line is the one I keep coming back to: v1 read the full text of none of the six wrong or missed papers. For every one of them the full text would have settled it: W03’s rulings, W06’s sleep study, W14’s “no computer models are used”. Patterns A and B cost different metrics, recall and precision, and have the same cause: v1 decides too early.

They aren’t new either. P09 and P17 in Chapter 6 were pattern A, P03 and P11 were pattern B. Two cases each looked like bad luck when I first saw them. A real week made them look like habits.

Reading everything costs nearly half again as many model calls, for every paper, including the protein and translation papers where the abstract was already enough. That part is fixable if only plausible papers get the full-text step.

The other side effect worries me more. More text also gives the model more material to misquote, and pattern D says it already misquotes numbers. A fix for A and B could quietly make D worse, and precision and recall would never show it.

So the next chapter applies one fix per pattern, one at a time, and re-checks everything after each one, including the 24 labeled papers from Chapter 4 that v1 used to get right.

Quick check

Before moving on, answer for yourself (no peeking ahead):

  1. Why read individual traces instead of just looking at the numbers from Chapter 7?

Check your reasoning ▸

Numbers say how often v1 is wrong, not why. A trace shows what v1 looked at and what it skipped, which is where the cause is. A strong answer adds that fixes need causes: “recall is low” doesn’t tell you what to change, “it never reads the full text” does.

  1. W05 and W13 were correct suggestions. Why count them as mistakes at all?

Check your reasoning ▸

Because the reason is part of what v1 delivers. You read the reason to decide whether to open a paper, so a made-up number misleads you even when the verdict is right. A good answer notes these mistakes are invisible to precision and recall, which only score the verdict.

  1. invented_numbers found pattern D automatically. What kinds of wrong claims can it not catch?

Check your reasoning ▸

Any claim without a digit: “doubles recall”, “the first method to...”, “works for any language”, or a number that happens to appear in the paper but in a different context. A strong answer says an automatic check covers one narrow, well-defined class of mistakes very cheaply, and everything else still needs a person to read it.

  1. Patterns A and B affect different metrics. What do they have in common, according to the traces?

Check your reasoning ▸

In every one of those six cases, v1 decided from the abstract alone and never read the full text, which would have settled the decision. A good answer says two patterns with different symptoms can share one root cause, and finding it points to a single fix.

  1. P09, P17, P03 and P11 in the Chapter 6 eval belong to patterns A and B. Why didn’t they look like patterns back then?

Check your reasoning ▸

With only two examples each in a small dataset, they looked like isolated mistakes. Real use added more cases of the same kind, and repetition is what turns an accident into a pattern. A strong answer adds that this is a reason to keep adding real mistakes to the labeled set, so future evals contain them.


You can now: read a trace, write a small automatic check for one class of mistakes, and group a week of mistakes into patterns ranked by what they cost.

But one problem remains: four patterns, four fixes, and every fix changes the system the others live in. The next chapter applies them one by one, re-measuring everything after each step, and runs into a fix that breaks something that used to work.

Next → Chapter 9: Apply Fixes