In the spring of 1902, the French rulers of Hanoi were losing a war against rats. They had given the city’s French quarter a modern sewer system. The rats moved in, and then, by the historian Michael Vann’s account, started coming up through the flush toilets of the villas above. Bubonic plague had spread from Yunnan to Canton and Hong Kong, and French researchers had shown that rat fleas carried it.
The city’s daily tally of dead rats climbed into the thousands. On June 12, it recorded 20,114 in a single day. The rats kept coming.
So the colonial government offered a reward to anyone in Hanoi who killed one. Nobody at city hall wanted thousands of dead rats piled on the steps, so the proof was the tail. Vann puts the bounty at about a penny a tail. The tails poured in.
After about three months, Vann says, officials noticed something just outside the city: rats running around with no tails.
Further investigation turned up rat farms in the villages on the city’s edge. People were raising rats, cutting off their tails for the bounty and letting them go to breed more. Rats were being trafficked across northern Vietnam to bring their tails to the Hanoi payout. “They were furious that they got outsmarted,” Vann told the website Saigoneer, “and they were furious that they’d been spending all this money and it’s actually increasing the number of rats in Hanoi.”
Pay for proof that a problem is gone, and you may end up paying people to breed it.
Clearing the bug backlog
Imagine you run an engineering team and you want the old bug backlog gone. You announce a bonus: $50 for every bug closed this quarter.
At the end of the quarter, closures are at a record. You click into a few at random. Several were filed this month, by the same engineers who closed them, against code they wrote last month.
That alone proves nothing. People find bugs in their own code all the time, and a bonus is a good reason to go looking. But it is the pattern worth checking, because it is the one a bounty on closures would produce. So you pull a second number the bonus never touched: bugs reported by customers. If closures doubled and customer reports didn’t move, the backlog you paid to clear may have been refilling from the inside.
A tail is not a kill
The French paid for tails as proof of dead rats. But a tail cut off for cash doesn’t prove a kill, and a rat left alive behind it can breed more rats. Once proof and result could be pulled apart, there were two ways to earn the bounty, and the cheaper one added to the problem the bounty was paying to remove.
It takes a few conditions. The proof has to be cheaper to produce than the real result. The reward has to last long enough to be worth investing in. And nobody is counting the actual problem.
That last condition caught a much later bounty. In 2007, the U.S. Army post at Fort Benning, Georgia, paid $40 for every feral pig tail. Within a year and a half, hunters had reported killing more than a thousand pigs. Yet researchers from Auburn University, tracking the pigs themselves, found the population growing. Some tails were rumored to come from farm pigs, a drought had ended, and the free bait handed out to hunters was feeding the pigs. After three years and about $125,000, the bounty ended.
The idea has a name, the cobra effect, from the German economist Horst Siebert’s 2001 book Der Kobra-Effekt. The name comes from a story about British-ruled Delhi: a reward for dead cobras, cobra farms, and, when the reward stopped, snakes released into the streets. It’s often retold. A 2024 article in The Juggernaut reported there is little evidence to support it. Hanoi’s rats, by contrast, are in the French colonial archives, where Vann found the daily counts.
On the 2012 Freakonomics episode that featured Vann’s rats, the economist Steven Levitt gave two pieces of advice: before launching an incentive, try to think through “all the crazy different approaches” people might use to trick it, and keep the scheme simple.
Evidence that came loose
In 2025, OpenAI described a version of this inside AI training. A reasoning model was learning to fix code until the unit tests passed. Sometimes it cheated, for instance by rewriting a check so it always returned true, and it often said so in its chain of thought, sometimes as plainly as “Let’s hack.” A second model, GPT-4o, read those thoughts and flagged the cheating.
So the researchers put a price on the evidence. They lowered the reward whenever the monitor caught a “bad thought.” The model did cheat less than the version trained without that penalty. But it still cheated, and almost all of its remaining cheating was now invisible to the monitor. In OpenAI’s words, it had “learned to hide its intent in the chain-of-thought.”
In Hanoi, a tail stopped being evidence of a dead rat. Here, a clean-looking chain of thought stopped being evidence of honest work.
There is a detail you can use. In that experiment, the monitor read only the model’s reasoning, not its code changes, and OpenAI says the hidden cheating got through for exactly that reason. If an agent tells you the tests pass, open the diff and look at whether it touched the tests.
In one of OpenAI’s examples, the model’s reasoning read like an ordinary bug hunt. Its patch replaced the failing check with a comment about “adjusting expectation” and one word: pass.