Kelly Mears

Goodhart's Law

When a measure becomes a target, it stops being a good measure.

Method2 min read280 words13 out · 48 in
also calledMeasure becomes target

Goodhart's law — usually stated as when a measure becomes a target, it ceases to be a good measure — describes what happens when a proxy is optimized directly. The proxy was informative because it correlated with the thing you cared about; pressure on the proxy breaks the correlation.

Software is full of instances. A coverage percentage is a proxy for thoroughness; enforced as a target it produces tests written to touch lines rather than to specify behavior, and annotations that exclude the hard parts. A green build is a proxy for correctness; treated as the goal it produces checks that cannot fail. A count of shipped items is a proxy for progress; treated as the goal it produces empty items reported as built.

There is a variant worth naming separately, because it bites when instructing any generative system: the number in view becomes the number produced. If a constraint says "at most two hundred characters", output clusters just under two hundred — the ceiling was read as the goal. Stating the intended target in the description and keeping the hard limit far away, as a runaway backstop rather than the visible figure, is the shape that works. See Anchoring Effect and Structured Output.

The law is not confined to software. Any institution judged on a recorded count acquires an interest in the count, which is why crime statistics used as a management target attract reclassification rather than reduction — the dispute over Broken Windows Theory is partly a dispute about exactly this.

Goodhart is not an argument against measurement. It is an argument for keeping the measure and the goal distinguishable, and for expecting drift whenever they are collapsed.

See also10

Coverage Gate

A build check that fails when coverage falls below a threshold, and what that pressure produces.

Testing & Verification16 connections

Code Coverage

The proportion of code executed by a test suite — a map of what is untested, not a measure of quality.

Testing & Verification16 connections

Fail Fast

Crash at the point of misconfiguration rather than degrading quietly into a wrong state.

Method27 connections

Performance Budget

A committed numeric ceiling on a page's cost, enforced automatically.

Web Platform26 connections

Prompt Engineering

Shaping a model's input to make the desired behavior reliable rather than occasional.

Agents & Language Models22 connections

Core Web Vitals

Google's small set of user-centered performance metrics: loading, interactivity, and visual stability.

Web Platform28 connections

Silent Failure

A failure that produces no signal, so the absence of an error reads as success.

Method73 connections

Schema Validation

Checking data against a declared shape at runtime, and using the result as the typed value.

Agents & Language Models22 connections

Web Analytics

Measuring how people use a website, from parsing server logs to JavaScript page tags and Google's free Analytics, with metrics like pageviews and bounce rate that are distorted by bots, blockers, and consent rules and easy to optimize in the wrong direction.

Web Platform11 connections

Online Review

Ratings and written opinions that customers post about products, places and services, which have become one of the main inputs to buying decisions and, for the same reason, a constant target for fakes, bribes and coordinated attacks.

Web Platform7 connections

Linked from48