learn-economics-with-phoebe / Deep-dive session 8 of 10
Learn Economics with Phoebe · Deep-dive session 8 of 10

Information economics of models

You cannot tell a good dataset from a bad one by looking at the invoice, and you cannot tell a good model from a bad one by reading its headline score. Both are goods whose quality is hidden until after you have paid, and economics has had a name for that market since 1970: it is a market for lemons, and left alone it drives the good sellers out. Everything the industry does to fight that, benchmarks, evals, audits, model cards, is a signal, and every signal has a shelf life, because the moment a measure becomes the thing people are paid on it stops measuring. The same problem sits inside every ML team, where a leader who wants a business outcome and a team that is judged on a metric are a principal and an agent with a number between them. Tonight names the mechanisms, draws them, and ends with a constructed simulation of a public benchmark drifting away from the truth and a checklist for reading a model card as what it is: a signal, sent by someone with a reason to send it.

🟡 Core Analysts, ML leads, anyone who buys data or models Python, numpy 45 min
0-3 · Welcome 3-18 · Lemons, signals, the metric in the middle 18-40 · Build-along: a benchmark drifts, a card is read 40-45 · Q&A
Part 0

Where we start

Deep-dive session 7 ended on a frontier the consultants could not see: which side of it a task sat on was invisible until the output was checked. Tonight makes that invisibility the subject. When one side of a trade knows the quality and the other does not, the price cannot reward quality, and the market does something predictable and unpleasant. Data and model markets have this shape almost perfectly, and so does the relationship between a leader and the team whose work she cannot inspect line by line. The fixes are all versions of one idea, make quality visible through a costly signal, and they all decay for the same reason, which Goodhart's law names and Strathern's sentence states.

🎫 Clear all three quiz questions to stamp your passport Live = presented in the 45 minutes Self-study = the full depth, after class ★ Build-along = run the code yourself

★ What you walk out with tonight. The lemons spiral drawn for datasets and models, with the step at which the good sellers leave; the difference between a signal and a screen and where benchmarks, evals, audits and model cards each sit; the reason a public benchmark decays and the exact attribution of the sentence everyone quotes about it; the principal, the agent and the metric between them as a picture you can put in front of a leader; a numpy simulation, labelled constructed, in which a public score climbs while a held-out score flattens; and a checklist that reads any model card as a set of signals and lists the four things no card can carry.

Part 1 · covers adverse selection in data and model markets

A model is a lemon until proven otherwise

5 min live

Akerlof 1970, "The Market for Lemons", Quarterly Journal of Economics 84(3) 488-500, describes a used-car market where sellers know which cars are bad and buyers cannot tell. Buyers pay a price for the average car; sellers of above-average cars will not sell at that price and withdraw; the average falls; the price falls; more good sellers leave; and the process does not stop until only lemons are left. Replace "car" with "labelled dataset" or "fine-tuned model" and nothing in the argument changes, because the one assumption that drives it, quality hidden until after purchase, is truer of data than it ever was of cars.

THE LEMONS SPIRAL, REDRAWN FOR DATASETS AND MODELS 1 · quality is hidden until after purchase 2 · buyers pay the average quality 3 · the good sellers walk away 4 · the average falls so does the price 5 · only lemons left and no one to blame and round again, lower each time The spiral is Akerlof 1970, The Market for Lemons, QJE 84(3) 488-500, redrawn for goods whose quality is a column nobody can see. Where quality cannot be seen before purchase, price cannot reward it, and the best goods leave first.
🔍 Click to zoom - the amber step is the one that does the damage: nobody cheats, the honest sellers simply leave, and the average falls behind them
LiveAdverse selection: why the honest sellers leave first3 min▶

The setup needs only two facts. Quality varies between sellers, and the buyer cannot observe it before paying. With those two, a buyer's best offer is the price of the average good, because that is the expected value of what she is about to receive. That offer is a bargain for the seller of a bad good and an insult to the seller of a good one, so the good one withdraws. Now the average is lower, the buyer's best offer is lower, and the next-best seller withdraws. Akerlof's contribution was to show that this does not settle at some middling equilibrium; under simple assumptions it unravels all the way, and the market for good goods disappears even though there are buyers who would pay for them and sellers who would sell.

Datasets fit the setup exactly. A labelled dataset's quality is its label accuracy, its coverage of the cases you care about, its freshness and its provenance, and none of those is on the listing. You find out after you have trained on it. A vendor with clean labels and a vendor with labels produced by an underpaid contractor at speed both say "high-quality, human-annotated", and both charge what the market will bear for that sentence. The clean vendor's costs are higher. At a price set by the average, she is the one who cannot make it work.

Models fit it too, with one twist. A model's headline score is visible, so it looks as if quality is observable. But the score is on a benchmark the seller chose, possibly trained toward, and the buyer's data is not that benchmark. What the buyer needs, performance on her own cases, is hidden until she has integrated the thing. The visible score is not quality; it is a signal of quality, sent by the seller, which is the subject of Part 2.

Self-studyWhat stops the spiral, in theory and in the data market2 min▶

Akerlof's paper lists the counteracting institutions: guarantees, brand names, chains, licensing. Each is a way of making quality partly observable or of making the seller bear the cost of a lemon. The data market has grown the same set under different names. A guarantee is a service-level agreement on label accuracy with a refund clause. A brand is a vendor whose past datasets you or people you trust have used. Licensing is an audit by a third party who is paid by neither side. Each one costs something, and that cost is the point: a signal that is free to send carries no information, because the lemon seller sends it too.

The institution that matters most for data and is hardest to build is the sample. A buyer who can inspect a random slice of the dataset before paying, labelled, with the sampling done by the buyer and not the seller, has converted a hidden quality into a measured one, and the spiral stops for her. The reason it is hard is that the sample has to be drawn by the buyer from the whole, not selected by the seller from the best part, which requires the seller to hand over the whole before the sale, which is the thing being sold. The workable compromises, escrow, a third party who draws the sample, are the data market's version of the used-car inspection.

Real world

The annotation vendor who stopped bidding. A constructed story with a real mechanism. Three vendors quote for a labelling job. Two quote low, one quotes forty percent higher and explains that her quote includes a second annotator on every item and an adjudicated disagreement rate. The buyer's procurement process compares price per label, and she loses. The next quarter she does not bid. The quarter after that, the buyer's model quality has fallen, and the post-mortem is about the model architecture. The market did exactly what Akerlof said it would: the price was set by the average, the above-average seller left, and nothing in the buyer's process could see it happen because label quality was not a column in the comparison.

Part 2 · covers signalling, screening and the decaying benchmark

Signals, and what happens when a signal becomes a target

5 min live

A signal is an action the informed side takes to reveal quality: a warranty, a published score, a third-party audit, a detailed model card. A screen is a mechanism the uninformed side designs to make the informed side reveal it: a held-out test set the buyer controls, a trial period, a menu of contracts. Both work only if they are costly to fake, and the cost is what decays. A public benchmark is a signal that starts out expensive to score well on, because scoring well requires a good model, and becomes cheap, because scoring well comes to require only a model tuned to the benchmark. That decay is not fraud. It is the predictable result of paying people on the number.

THE BENCHMARK THAT BECAME A TARGET two constructed curves; the shape is the mechanism, the values are invented SCORE ROUNDS OF TUNING the benchmark becomes the target public score, keeps rising held-out score, flattens gap: the public score was optimised round 1 round 20 (invented) Both curves are constructed to show the shape; the build-along generates them with a labelled random draw. Before the line the two curves agree and the score is a signal. After it they part, and the score is a target.
🔍 Click to zoom - the amber bracket is the entire cost of paying on the number: a rising public score bought nothing on the held-out set once the tuning started chasing it
LiveBenchmarks, evals and audits as signals, and what each one costs to fake3 min▶

A published benchmark score is a signal the seller sends. When the benchmark is new, scoring well is expensive: it takes a model that is actually good at the thing. That cost is what makes the score informative, because a seller of a lemon cannot afford to send it. The cost then falls, for three reasons that all happen at once. The test set leaks into training data, on purpose or by scraping. Tuning choices get made by watching the score, which fits the model to the benchmark's quirks. And the benchmark's own gaps become known, so effort goes where the score is and not where the buyer's cases are. At the end of that process the score is cheap to send and everyone sends it.

A private eval is a screen the buyer controls. A held-out set the seller has never seen, drawn from the buyer's own distribution, cannot be tuned toward, and it measures the thing the buyer will actually get. It costs the buyer something to build, which is why so few buyers do, and that cost is exactly what makes it work: a signal that was free would be sent by everyone. The mechanics of building one, what to hold out, how to score it, how it drifts, are the subject of the AI evals course at learn-ai-evals-with-phoebe, and tonight does not teach them; it teaches why the eval is the buyer's side of the contract.

An audit by a third party is a signal with a borrowed cost. The seller pays for it, but the auditor's reputation is what is at stake, so the seller cannot make the audit say what she likes. It is informative in proportion to the auditor's independence and to how much of the model the auditor actually got to see, both of which the buyer should ask about before trusting the stamp.

LiveGoodhart, Strathern, and the exact wording2 min▶

The sentence everyone quotes is "when a measure becomes a target, it ceases to be a good measure". It is almost always attributed to Charles Goodhart, and the law does carry his name, but that wording is not his. It is Marilyn Strathern's, in "Improving ratings: audit in the British University system", European Review 5(3) 305-321 (1997), where she was summarising the idea in the context of academic audit. Goodhart's own 1975 formulation was about monetary policy and is phrased quite differently. The distinction matters for the same reason every citation on these pages matters: attributing a sentence to someone who did not write it is a small lemon of its own, and a reader who catches it will discount the rest.

The mechanism the sentence names is the one in the figure. A measure is useful because it correlates with the thing you care about. Make it a target, pay on it, and the people being paid find the cheapest way to move it, which is usually not the way that moves the thing you care about. The correlation that made the measure useful was never a law of nature; it held only while nobody was pushing on it. The public benchmark curve keeps rising because pushing on it is what everyone is paid to do. The held-out curve flattens because nobody can push on it, which is the only reason it is still a measure.

Self-studyScreening against signalling: who moves first2 min▶

The two words get used interchangeably and they are not. In signalling, the informed party moves first: the vendor publishes the score, writes the model card, commissions the audit. The buyer reads the signal and infers. The signal works if sending it is cheaper for a good seller than for a bad one, so that only good sellers find it worth sending. In screening, the uninformed party moves first: the buyer designs a test, a trial, a menu of contracts, and the seller's choice among them reveals what the seller knows. A vendor offered "flat fee" or "fee contingent on held-out accuracy" and choosing the flat fee has told the buyer something without a word being said.

The practical difference is who bears the cost and who controls the instrument. A signal is on the seller's terms: her benchmark, her card, her auditor. A screen is on the buyer's: her held-out set, her trial period, her contract. Data and model buyers who rely only on signals are reading what the seller chose to show. The buyers who do well add one screen, and the cheapest screen that works is a held-out set of their own cases that the seller never sees.

Self-studyThe eval as a contract2 min▶

Put the two halves together and a private eval is not a technical artefact; it is a contract term. The buyer says: performance on this set, which you will not see, at this threshold, is what I am paying for. The seller who accepts has revealed that she believes her model generalises, which is exactly what a headline score could not tell you. The seller who negotiates the set down to something she has seen, or the threshold down to something the benchmark already guarantees, has revealed something else.

Inside a company the same contract exists between an ML team and the leader who funds it, and it has the same failure mode: if the team can see the eval, it becomes a benchmark, and the curve in the figure starts. The held-out set stays a measure only while it is held out from the people being judged on it, which in practice means it is drawn and scored by someone who is not on the team, refreshed on a schedule, and never used for tuning. Every one of those conditions costs something, and each cost is the reason the measure still works.

Real world

The leaderboard that stopped ranking. A pattern, not a named case. A public benchmark is released, the first models on it score modestly, and for a year the ranking tracks what practitioners find when they try the models on their own work. Then the ranking compresses at the top, new entrants arrive with scores a fraction above the previous best, and practitioners report that the top three are indistinguishable on real tasks, or that the one ranked fifth is better on theirs. Nothing dishonest need have happened. The benchmark became a target, the signal became cheap, and the leaderboard now measures skill at the leaderboard. The response that works is not a better public benchmark, which will decay the same way; it is a held-out set the buyer draws herself.

Part 3 · covers principal, agent and the metric between them

Principal, agent, and the number between them

5 min live

A leader wants a business outcome: fewer fraudulent transactions approved, more customers retained, a support queue that clears. She cannot inspect the model that is supposed to deliver it, so she pays the team on a metric that stands in for the outcome. The team can see the metric and cannot see the outcome either, so it optimises the metric. That is the principal-agent problem, and the metric in the middle is the same object as the public benchmark in Part 2, with the same fate: the moment it is what the team is judged on, it stops being what the leader wanted.

TWO PEOPLE, ONE NUMBER, AND THE GOAL NEITHER CAN SEE the real goal: fewer bad approvals, unobservable measures part of it the metric offline AUC (constructed) rewards on the metric optimises the metric PRINCIPAL wants the real goal AGENT wants the reward Strathern 1997, European Review 5(3) 305-321: when a measure becomes a target, it ceases to be a good measure. The agent is not cheating. The agent is doing exactly what the contract pays for; the contract is the problem.
🔍 Click to zoom - the amber box is the only thing both people can see, and it is a proxy chosen because the real goal could not be measured in time; the dashed box is what was wanted
LiveThe problem is the contract, not the people3 min▶

The principal has a goal and cannot observe effort or, in time, the outcome. The agent has effort to allocate and a reward that depends on something observable. A contract that pays on a proxy metric solves the observability problem and creates the Goodhart problem in the same stroke. The offline score in the figure is constructed; the pattern is not. A fraud model rewarded on offline AUC will be tuned for offline AUC, on the historical distribution, with the thresholds that flatter it, and the business outcome, bad approvals next quarter on a distribution that has shifted, is a different quantity that nobody was paid on.

The honest framing is that no one is behaving badly. The team is optimising the number the contract named. The leader chose the number because it was available. Both are doing what the structure asks, and the structure is what has to change. The economics gives three levers and none of them is "ask people to care about the real goal". Pay on something closer to the outcome, at the cost of a longer lag. Hold out a measure the agent cannot see, at the cost of building and refreshing it. Or accept the proxy and pay less on it, so the incentive to game is smaller than the incentive to do the job.

Where this meets Part 2: the buyer's held-out eval and the leader's held-out metric are the same instrument. In both cases the measure stays a measure only while the party being judged on it cannot push on it, and the moment it becomes visible to them the curve in the Part 2 figure starts again.

Self-studyMoral hazard against adverse selection, in one ML team2 min▶

Two words from the same family are worth keeping apart. Adverse selection is hidden information before the contract: the dataset vendor knows her labels are poor and you do not, so the wrong vendors are the ones who accept your price. Moral hazard is hidden action after the contract: the team knows how much care went into the validation and you do not, so the contract's terms change what care gets taken. Part 1 was adverse selection. Part 3 is moral hazard. The lemons spiral is about who shows up; the metric problem is about what they do once they have.

Both have the same root, one side knows something the other cannot check, and the same family of cures, make it checkable or make the informed side bear the cost of being wrong. But they are cured at different moments. Adverse selection is addressed before the deal, with screens and samples. Moral hazard is addressed in the contract, with what is paid on and what is held out. A team that has a strong procurement process and a weak metric has solved the first and not the second, and will hire good vendors to build models that game the number.

Real world

The retention model that retained the metric. A constructed story with a real mechanism. A team is rewarded on the precision of a churn model at a fixed recall. Precision rises for three quarters. Retention does not move. The post-mortem finds the model has learned to rank highest the customers who were going to stay anyway and who also looked like churners on last year's features, because those are the cheapest way to be "right" about churn; the customers the business could actually save sit further down the list, where nobody was paid to look. The metric was a good measure of the model until the quarter it became the target. The fix was not a better team; it was a held-out measure of saved revenue, scored by finance and refreshed monthly, that the team could not see in advance.

Build-along

A benchmark drifts, and a model card is read as a signal

★ 22 min · everyone builds

Four steps in numpy and plain Python. Steps 1 and 2 simulate the Part 2 figure: twenty constructed rounds of tuning in which a public score and a held-out score start together and drift apart. Every number is invented, drawn with numpy's default generator, and your numbers will differ. Steps 3 and 4 turn the Part 2 signals into a checklist you can run against any model card in five minutes, and a sentence about what the card could not tell you.

READING A MODEL CARD AS A SIGNAL: FIVE THINGS IT CAN CARRY, FOUR IT CANNOT WHAT THE CARD SAYS WHY IT IS A SIGNAL training data: source, date, exclusions costly to fake in detail eval set named, and held out checkable by a third party who ran the eval, and when an audit is a stronger signal known failure modes listed a lemon seller omits these version and date of the card a stale card is a decayed signal five signals read, each with its cost to fake WHAT IT CANNOT SIGNAL how it behaves on your data whether the benchmark leaked into the training set what the author's incentive was anything after the card's date four things no card can carry The right column is where the buyer's own screen goes: a held-out set of her cases that the card's author never saw.
🔍 Click to zoom - the left sheet is what a careful seller can show you; the right panel is what only your own test can, and the amber line is the boundary between them

Simulate twenty rounds of tuning. Two scores start equal. Each round the model gets a little better in truth, which moves both, and a little better at the public benchmark specifically, which moves only the public score. The real gain shrinks as ability nears its ceiling; the benchmark-specific gain does not, because tuning to a fixed test never runs out. Every parameter is invented.

★ Step 1 · two scores, twenty roundsimport numpy as np rng = np.random.default_rng(20180901) # any seed; your numbers will differ ROUNDS = 20 held_out = np.zeros(ROUNDS) # what the model can really do, on a set nobody tuned to public = np.zeros(ROUNDS) # what the public benchmark reports h = p = 0.50 # both start at the same score (invented) for r in range(ROUNDS): real_gain = max(rng.normal(0.010, 0.004), 0) * (1 - h) # shrinks near the ceiling target_gain = max(rng.normal(0.018, 0.006), 0) # tuning to the test: never shrinks h += real_gain p += real_gain + target_gain held_out[r], public[r] = h, min(p, 0.99) print(np.round(public, 3)) print(np.round(held_out, 3)) # your numbers will differ; the second row flattens, the first does not

Read the gap. The difference between the two rows, round by round, is what optimising the public score bought. Find the round at which it first exceeds a threshold you would notice; that is the round the benchmark stopped being a measure.

★ Step 2 · the gap, and when it openedgap = public - held_out NOTICE = 0.10 # invented threshold: a gap you would see first = int(np.argmax(gap > NOTICE)) + 1 if (gap > NOTICE).any() else None print("gap at round 1:", round(gap[0], 3), " gap at round 20:", round(gap[-1], 3)) print("first round the gap passed", NOTICE, ":", first) # your numbers will differ; the gap is never negative here, because tuning to the # public set can only add to the public score

The checklist as a small dict. Five things a model card can carry and why each is a signal, and four things no card can. Run it against a real card by filling in the values; the point is that the second list is the same for every card and is where your own screen has to go.

★ Step 3 · the model card as signalscard_signals = { "training data: source, date, exclusions": "costly to fake in detail", "eval set named, and held out": "checkable by a third party", "who ran the eval, and when": "an audit is a stronger signal", "known failure modes listed": "a lemon seller omits these", "version and date of the card": "a stale card is a decayed signal", } cannot_signal = [ "how it behaves on your data", "whether the benchmark leaked into the training set", "what the author's incentive was", "anything after the card's date", ] present = {k: True for k in card_signals} # set each to what the real card shows n_present = sum(present.values()) print(n_present, "of", len(card_signals), "signals present;", len(cannot_signal), "things no card can carry")

Write the sentence. One line that is true of the simulation you ran and of any card you read, and that ends where the card's information ends and yours has to begin.

★ Step 4 · the honest sentencesentence = ( f"In {ROUNDS} constructed rounds the public score rose {public[-1] - public[0]:.2f} " f"and the held-out score rose {held_out[-1] - held_out[0]:.2f}; the difference is what the " f"target bought, not what the model learned. A card carries {n_present} signals and " f"cannot carry {len(cannot_signal)} things, so the buyer's held-out set is the screen." ) print(sentence) # your numbers will differ; the last clause never does np.save("benchmark_drift_constructed.npy", np.vstack([public, held_out])) # "constructed" in the filename

Set the target gain to zero and run Step 1 again. The two rows now sit on top of each other: with nobody tuning to the public set, the public score is a measure and the gap stays at zero. Then set the real gain to zero and leave the target gain: the public score climbs and the held-out score never moves. That is a model that learned the benchmark and nothing else, and it would top a leaderboard. The two switches are the whole of Goodhart in four lines.

Homework

Before deep-dive session 9

30 min
  1. Read one real model card against the Step 3 checklist. Mark each of the five signals present or absent, and write one line on which of the four un-signallable things matters most for your use.
  2. Find the step where your team's sellers leave. For one thing you buy, data, labels, a model, write the procurement criteria as a list and check whether quality is a column. If it is not, write which good seller you have already lost.
  3. Draw the principal-agent triangle for one model in production: who is the principal, what is the real goal, what is the metric, and who can see it. Write whether the metric has become a target yet, and how you would know.
  4. Correct one attribution. Find a post or slide that credits the "measure becomes a target" wording to Goodhart. Write the correct citation, Strathern 1997, European Review 5(3) 305-321, and one sentence on why the distinction is not pedantry.
Check yourself

Three questions

Clear all three and deep-dive session 8 gets stamped in your passport.

1 · A buyer of labelled datasets compares vendors on price per label. Over a year the average label quality she receives falls, though no vendor changed its process. What happened?

The Market for Lemons, QJE 84(3) 488-500. Nobody cheated; the honest sellers left because the price could not reward what the buyer could not see. The fix is a screen the buyer controls, such as a sample she draws herself.

2 · A public benchmark ranked models well for a year; now the top entries are indistinguishable on real tasks. Which statement is right about the mechanism and the attribution?

A measure holds only while nobody pushes on it. The public curve keeps rising because pushing is what everyone is paid to do; the held-out curve flattens because nobody can push on it. The sentence is Strathern's; the law's name is Goodhart's.

3 · A leader pays an ML team on offline AUC because the business outcome, bad approvals next quarter, cannot be observed in time. AUC rises for three quarters and bad approvals do not fall. What is the economics of the situation?

This is moral hazard, hidden action after the contract, not adverse selection, hidden information before it. Nobody is behaving badly; the structure pays on a proxy and gets the proxy. The held-out eval of Part 2 and the held-out metric here are the same instrument.

Sources covered

What this session teaches, and where it came from

✓Akerlof 1970, "The Market for Lemons", Quarterly Journal of Economics 84(3) 488-500: adverse selection when quality is unobservable before purchase, applied to datasets and modelsPrimary; citation confirmed against the journal record
✓Signalling and screening; benchmarks, evals, audits and model cards as signals; the cost to fake as what makes a signal informativeStandard economics, no single source
✓Goodhart's law, with the popular wording attributed to Strathern 1997, "Improving ratings: audit in the British University system", European Review 5(3) 305-321, not to Goodhart 1975Primary; the original PDF located and the wording confirmed
✓Principal and agent with a proxy metric between them; moral hazard against adverse selectionStandard economics, no single source; the offline AUC example is constructed
✓The benchmark drift simulation: 20 rounds, two scores starting at 0.50, real gain shrinking toward a ceiling, target gain that does notConstructed; every parameter is invented and labelled, the page prints "your numbers will differ"
✓The model card checklist: five signals a card can carry, four things it cannotConstructed as a reading method; no real card is quoted
◐Building and scoring a held-out evalNamed and linked to the AI evals course; not taught here

Every fact on this page, and its verification tier, is recorded in the course's source map.

Deep-dive session 8 cheat sheet · pin this

A model is a lemon until proven otherwiseQuality hidden before purchase, price settles at the average, the good sellers leave. Akerlof 1970, QJE 84(3).
A signal is worth its cost to fakeBenchmark score, audit, model card: informative in proportion to what a lemon seller would have to spend to send it.
Signal: seller moves first. Screen: buyer doesThe cheapest screen that works is a held-out set of your own cases the seller never sees.
The wording is Strathern 1997"When a measure becomes a target, it ceases to be a good measure." European Review 5(3) 305-321. The law's name is Goodhart's.
Principal, agent, proxyThe agent optimises what the contract pays on. Fix the contract with a measure the agent cannot see; do not blame the agent.
Four things no card can carryBehaviour on your data, whether the benchmark leaked, the author's incentive, anything after the card's date.