Tutto.
Praxis class plan · Advanced track

Measuring extraction: the golden dataset

The specification and the answer key are the same document. Write down what counts as correct at the moment you define the field, and the eval comes free.

Runs in 75 minutes. A 60-minute cut is on the last page.
Pairs with Lab 07, Evals. Rubrics score judgment. This scores extraction.
Learners leave with A schema, an extraction skill, an accuracy number, and a way to move it.
01

What this class teaches

One idea, taught by withholding it. The learner spends the first fifteen minutes writing a schema and believes they are doing preparation. Forty minutes later that schema turns out to be the only reason anything can be graded. The delay is the lesson.

Most people who try an eval for the first time abandon it. They build one, see 40% accuracy, conclude the tool cannot do the job, and stop. The number was never real. It was measuring punctuation. This class walks them into that failure on purpose, in a room, with someone there to name it.

The three things a learner should be able to say afterwards

The reveal. In Part 1 the learner fills in a column headed "match rule" and is told only that it records what counts as a correct answer. They are not told it is the grader. In Part 5 they discover that nothing can be scored without it. Hold that back. Saying it at the start converts a discovery into an abstraction, and the class stops working.

Who it is for

Anyone whose work involves pulling the same fields out of long documents: contracts, policies, medical reports, statements, invoices. It lands hardest with the Analyst archetype, and with anyone who has already been burned by a colleague's spreadsheet.

Prerequisite

A completed Plato build. Lab 07 is not required, but if the learner has done it, position the two directly: a rubric grades work with no single right answer, an answer key grades work with exactly one. Same family, opposite halves. If they have not done Lab 07, do not mention it.

02

Materials to build before the room

This class cannot be run from slides. It needs a corpus, and building it is the real cost. Budget a day, once. It then serves this class, the corporate programme, and the microsite demos.

The corpus

Four synthetic UK managed-services agreements, twenty to thirty pages each, internally consistent, written as a real supplier contract is written. Supplier agreements were chosen because every beachhead sector signs them: law, accounting, financial services, personal injury.

AgreementSupplierInitial termCharge periods
northgateNorthgate Facilities Management Limited36 months36
calderaCaldera Analytics Limited48 months48
wrenfieldWrenfield Print & Mail Limited24 months24
hollowayHolloway Legal Support Services Limited36 months36

Terms differ on purpose. A learner who spots that all four run 36 months starts pattern-matching instead of reading.

The schema, handed out half-blank

Two linked tables. Table 1 holds one record per agreement. Table 2 holds the charge schedule, which repeats once per period and therefore cannot live in a flat row. Give the learner the first three rows filled in as worked examples and leave the rest empty.

Table 1: Agreement (one record per agreement). Bold rows are pre-filled for the learner.
FieldDescriptionMatch rule
supplier_nameFull legal name of the supplier entity, including the suffix. Clause 1.1, "the Supplier".Legal name with suffix. Not the trading name used in the body.
contract_valueTotal charges payable across the initial term.Initial term only. Excludes optional modules. Excludes VAT.
effective_dateDate the agreement becomes binding. Clause 2.1.DD/MM/YYYY. Effective Date, not Service Commencement Date.
service_categoryFacilities, IT Managed Services, Print & Mail, or Professional Services.
currency
service_start_dateDate live service begins, after onboarding. Clause 2.2.
initial_term_monthsLength of the initial term in whole months.Initial term only. Excludes any renewal extension.
renewal_term_months
notice_min_monthsMinimum months of notice before expiry (the "not later than" bound). Blank if no renewal.
notice_max_monthsMaximum months before expiry that notice may be served (the "not earlier than" bound).
security_amount
security_typePerformance Bond, Parent Company Guarantee, Cash Deposit, or blank.
sla_credit_basisHow service credits are calculated. Blank if there is no credit regime.
Table 2: Charge schedule (one record per period), linked to Table 1 by agreement.
FieldDescriptionMatch rule
period_noSequential period number.Starts at 1 at the Effective Date, including onboarding periods charged at zero.
payment_dateFirst day of the period.
payment_amountCharge for that period.Number only. Onboarding periods are 0, not blank.
03

The seven traps, and why each one is there

None of these are extraction failures. They are specification failures wearing an extraction costume. Every one of them is a plausible wrong answer that a careful human would also get wrong, which is exactly what makes them teach.

#TrapWhat the document doesWhat resolves it
1 Trading name against legal name The body says "Northgate FM" forty times. The legal name appears once, in clause 1.1. Match rule: legal name with suffix.
2 Three defensible contract values A commercial summary headlines an annual fee of £240,000. The charge schedule totals £659,400. With optional modules it comes to £784,900. Match rule: initial term only, excluding optional modules and VAT. Answer: 659400.
3 Two commencement dates Effective Date is 01/02/2027. Service Commencement Date is 01/05/2027, after three months of onboarding. The second appears more often. Two separate fields. The rule names which is which.
4 Initial term against renewal 36-month initial term with a 24-month renewal option in the same clause. Match rule: initial term only.
5 One clause, two fields, inverted "The Customer may serve a Renewal Notice not earlier than nine months and not later than six months before expiry." min = 6, the later bound. max = 9. The clause states them in the opposite order to the field names.
6 Security that steps down A £120,000 performance bond reducing to £80,000 at year two and £40,000 at year three. Match rule: the amount at commencement. Answer: 120000.
7 Zero-value periods The first three months are charged at £0 during onboarding. Include them. Drop them and 33 of 36 rows carry the wrong period number.

Trap 7 is the one to save for the room. One omission, three rows missing, thirty-three rows silently misnumbered. Say the numbers out loud. It is the cheapest way to show that a small specification gap is not a small error.

The Northgate charge schedule, abridged

PeriodDateAmountNote
1–32027-02-01 → 2027-04-010Onboarding, no charge
4–152027-05-01 → 2028-04-0119500Year one rate
16–272028-05-01 → 2029-04-0120000Uplift
28–362029-05-01 → 2030-01-0120600Uplift
04

The answer key

One spreadsheet, two sheets, mirroring the schema. Someone builds it by hand and verifies every value against the document. There is no shortcut, and pretending otherwise is the single most common way this subject gets taught badly.

SheetRowsGraded values
GoldenAnswers452
ChargeSchedule144288
Total340

Roughly 85% of the gradeable surface is the charge schedule. That is deliberate and it does two things. It puts the accuracy number where the real differences hide, and it makes eyeballing physically impossible. Nobody checks 340 values by eye, which is the whole reason the class exists.

The format collision, and why it stays in

The schema asks for dates as DD/MM/YYYY. The answer key stores them as YYYY-MM-DD, because it was built in a spreadsheet by a different person on a different day. A learner who follows the specification exactly will mismatch the key on every date field.

Leave it. It is not a trick, it is what actually happens when a specification and an answer key are produced independently. If a sharp learner challenges it, agree with them immediately and say so.

If challenged. "You are right, they disagree. They were built by different people at different times, and that is normal. The data agrees. The formatting does not. Which of those two is the eval supposed to be measuring?"

Keep the key out of reach

Answer keys live in a folder the learner does not open, and the completed schema lives there too. If someone opens the key during Part 4, the rest of the class is theatre.

05

Part 1 to Part 3: build the thing30 min

Three parts that look like ordinary work. The learner is building an extraction skill. They have no idea they are also building a grader.

Exercise 1 · 15 minutes

Finish the schema

Hand over the half-blank schema. Three columns per field: the name, the description of what it is and where to find it, and the match rule. Fill in the first two or three together, out loud, then let them work.

A schema is the formal definition of the data you want out. Three things for each field. What it is called. What it is, and where in the document it lives. And what counts as a correct answer.

That third one is the part people skip. "Contract value" sounds obvious until you open the document and find three numbers that all have a claim to it. Write down which one you mean.

Do not say that the match rule is the grader, that this is an eval, or that any of this will be scored later. If asked why the third column matters, answer with trap 2 and nothing more.
Watch for the learner who writes "the correct value" in the match rule column. Push once: correct according to what? That is the whole exercise.
Exercise 2 · 10 minutes

Extract one agreement

Point Claude Code at the schema and at the Northgate agreement. Ask for one row per field, following the match rule column. A usable prompt names the document, the schema, and the output form.

Using the schema as the field definitions, extract the Northgate agreement. Return one row per field and follow the match rule column.

Then stop. Read it together. Then refuse to resolve it.

Look it over. Does anything seem off to you?

Hold that. Do not fix it yet. We will come back to it with a number instead of an opinion.

This is the doubt you are planting. Somebody in the room will want to correct a field right now. Do not let them. The point of the class is that the fix comes from evidence, and there is no evidence yet.
Exercise 3 · 5 minutes

Package it as a skill

Turn the working prompt into a skill file so it can be re-run without retyping. Ask Claude Code to write it and to ask clarifying questions first, then review what it proposes before saving.

A skill is a text file that describes an action you want to run on demand. Nothing clever. The reason we are saving it now is that in ten minutes you are going to want to run this same extraction four times, and then run it again after you change it.

06

Part 4: run it wide10 min

The felt need. You cannot make anyone want a measurement until the output exceeds what their eye can hold. This part exists to produce that moment and nothing else.

Exercise 4 · 10 minutes

Four agreements, full schedules

Run the skill across all four agreements. Ask for one record per agreement, plus the complete charge schedule for each. Not a sample. All of it.

That is roughly three hundred and forty values on your screen.

Two minutes ago you were reading thirteen fields and asking yourself whether they looked right. Try that now. Tell me your error rate.

Let the silence sit. Nobody can answer. That is the answer. If someone starts scrolling and squinting, let them scroll for a while before you move on. The discomfort is the teaching.

Then name the gap plainly, and only then introduce the answer key.

Eyeballing one result is fine for a demo. In production you need to know how often you are right, and you need it as a number you can compare against last week's number.

So somebody sat down with these four agreements and wrote out the correct value for every field, by hand, checking each one against the document. That is the answer key. It took most of a day.

Say the cost out loud. "Most of a day" is the most useful sentence in this class for anyone deciding whether to do this at work. An eval is cheap to run and expensive to start. Trainers who skip this send people back to the office with a false estimate.

07

Part 5: grade it, and the reveal15 min

The centre of the class. The learner asks Claude Code to score its own output against the key, gets a number that is obviously wrong, and finds out why.

Exercise 5.1 · 5 minutes

Score it naively, and let it fail

Ask Claude Code to compare its output to the answer key, field by field, and report where it matches and where it misses. Do not warn anyone about formatting. Let the number come back low.

Expect something in the 40s or 50s. Every date fails on the format collision. Amounts fail on currency symbols and separators. "Ltd" fails against "Limited". The extraction is mostly right and the score says it is mostly wrong.

So the tool is wrong about half the time. Is it? Pick one of the failures and read both values out to me.

Somebody will read out something like £659,400.00 against 659400. Let the room land on it themselves.

Exercise 5.2 · 5 minutes

Normalise, then score again

Ask Claude Code to normalise both sides before comparing, then re-run the scoring. The number jumps. Grade the charge schedule period by period, because that is where the real differences hide.

A correct answer can look different from the answer key. Six hundred and fifty nine thousand four hundred with a pound sign and a comma, against the same number bare. The first of February written two ways. "Ltd" against "Limited". An empty cell against null.

Normalise the formatting on both sides before you score, or you will grade the punctuation instead of the data.

This is the line to deliver verbatim. It is the single most reusable sentence in the class and the reason most first evals get abandoned. Slow down for it.
Exercise 5.3 · 5 minutes

The reveal

Now go back to what remains failing after normalisation. Every one of those will trace to a field whose match rule was vague, or blank. Open the schema from Part 1 next to the results.

Go back to the schema you filled in an hour ago.

The third column. The one you thought was documentation. That is the only reason any of this could be scored at all. Without a written rule for what counts as correct, "wrong" is just disagreement.

You did not write a data definition this morning. You wrote the grader, and then you wrote a tool that gets graded by it. That is the whole method. The specification and the answer key are the same document.

Then stop talking. Do not restate it, do not summarise it, do not add an example. This is the beat the class was built around. Let them get there.
08

Part 6 and Part 7: see it, then move it16 min

An eval you cannot read is an eval you cannot act on. An eval you cannot move is a report card. These two parts turn the number into a control.

Exercise 6 · 8 minutes

Build a scorecard

Ask Claude Code to build a visual scorecard: one row per field, one column per agreement, matches and misses colour-coded, the running accuracy at the top, and a filter down to the misses only. This is the artefact you would put in front of a partner or a board.

A wall of pass and fail text is technically an eval and practically useless. You want to look at this and know within three seconds which field is your problem.

Exercise 7 · 8 minutes

Fix the specification, never the output

Take the top failing field. Diagnose which of three things it is, apply the matching fix in the schema and the skill, and re-run the whole thing. Watch the number move.

SymptomCauseFix
Pulled the wrong number from the right areaDescription too vagueSay where in the document to look
Defensible, but not the key's answerGenuine ambiguityPin it down in the match rule
A value that is not in the documentNo guardrailInstruct it to return null when absent

Notice what we did not do. We did not correct the answer. Correcting the answer fixes one cell today and nothing tomorrow.

You change the rule and re-run. If the number goes up, the rule was the problem. If it goes down, you have learned something about your own thinking, which is worth more.

The most common derail in the whole class. Someone will edit the output spreadsheet, or worse, edit the answer key to match their output. Stop it immediately and name it: that is marking your own homework. The key does not move.
09

Part 8: the close4 min

Four minutes, and most of it is about what this does not give them. A class that oversells an eval produces someone who trusts a number they should not.

What you have is not proof the output is correct. It is proof the output agrees with a key that a person wrote, and that person can be wrong. The key is a judgment, written down and frozen.

What it gives you is direction. When you change a rule, you know within a minute whether the change helped or hurt, across a fixed set, with evidence. That is enough to stop guessing, and stopping guessing is most of the value.

It does not replace reading the output. It tells you which output to read first.

What this class deliberately does not teach

Name these. A trainer who leaves them out sends people away thinking evals are a solved problem.

The pair, stated once at the end. An answer key grades extraction, where one value is right. A rubric grades judgment, where several outputs could be good. Between them you can measure both halves of the work. Neither one measures the other.

10

Trainer run sheet

PartMinWhat the learner doesWhat must not be said
115Fills in the half-blank schemaThat the match rule column is the grader
210Extracts one agreement, spots something offWhich field is wrong, or how to fix it
35Packages the prompt as a skillWhy they will need to re-run it
410Runs all four, hits 340 valuesAnything. Let the silence do it
515Scores naively, normalises, re-scores, gets the revealThe normalisation warning, before they fail
68Builds a scorecard
78Fixes a rule, watches the number moveThat editing the output is ever acceptable
84Hears the limitsThat an eval proves correctness

The 60-minute cut

Things that go wrong