Skip to content
Mental Models

Signalling & Costly Signals

Cheap Talk vs Costly Signals

Why anyone can say 'trust me' but only some can afford to prove it — the private-information problem, cheap-talk babble, and the Spence single-crossing condition that makes a signal honest, proven with real numbers.

12 min Updated Jul 7, 2026

Everyone in the world can say they are honest, competent, healthy, rich, in love, and not going to ghost you. Words are free. That is exactly the problem: because saying “I’m great” costs a fraud nothing, it also proves nothing. This lesson builds the engine that the entire course runs on — the precise reason some messages carry information and others are just warm air. Get this right and the rest of signalling theory is applied arithmetic.

Before you read — take a guess

You're hiring. Two candidates each write 'I am extremely detail-oriented' on their CV. The honest one really is; the sloppy one is lying. Reading only that sentence, how much does it move your belief about who's better?

Private information & the verification wall

Intuitive analogy. You’re buying a used car. The seller knows whether it’s a gem or a lemon; you don’t. There’s a wall between what the seller knows and what you can check before handing over money. Every claim they make (“runs perfectly!”) has to cross that wall — and claims, unlike engines, don’t come with a dipstick.

Precise definition. Information asymmetry exists when one party to an interaction knows something payoff-relevant that the other cannot directly observe or verify. We call the hidden thing the sender’s type — their true quality, health, intent, or effort. The uninformed party is the receiver. The receiver would happily pay for the truth, but the sender’s stated type is unverifiable, so a raw claim is data-free.

Formally: let a sender be type H (high / good) or type L (low / bad). The receiver’s payoff depends on the type but they only observe messages, not the type itself. The whole game is: can any message reliably reveal H vs L across that verification wall?

Worked example. A borrower knows if they’ll repay; the bank doesn’t. “I always pay my debts” is unverifiable at the moment of lending — the very people who won’t repay have the strongest incentive to say it loudest. So the bank ignores the sentence and demands collateral, a credit history, or a co-signer: things a deadbeat can’t cheaply produce. That substitution — from words to things-that-are-hard-to-fake — is signalling in one move.

Info:

Vocabulary lock-in for the whole course: sender (has private information / a type), receiver (must act without seeing it), type (the hidden truth, usually H or L), message/signal (what the sender does), belief (the receiver’s probability the sender is H after seeing the message).

Common pitfall. People assume the receiver is just gullible or lazy — “do more due diligence!” But the wall is structural. Some facts (future intent, internal effort, private health) genuinely cannot be inspected on demand. The receiver isn’t dumb; they’re blind, and the sender knows it.

When it matters. Reach for the information-asymmetry frame whenever one side of a deal knows their own quality and the other has to guess before committing: hiring, lending, dating, insurance, buying anything used, and every “trust me” you’ve ever heard.

Cheap talk

Intuitive analogy. A referee’s whistle and a random guy shouting “FOUL!” both make noise. The whistle is authorized; the shout is cheap talk. If shouting “foul” cost nothing and carried no penalty, everyone would shout it whenever it helped them — so a shout, on its own, tells you nothing about whether a foul occurred.

Precise definition. Cheap talk is any message whose cost is identical regardless of the sender’s type and regardless of whether it’s true. Zero cost is the classic case, but the real condition is cost-invariance across types: if it’s exactly as easy for an L to send as an H, it’s cheap talk. Because the L faces no extra bill for lying, the L imitates the H perfectly, and both types “pool” on the same message.

We call the result a pooling equilibrium — specifically a babble equilibrium: everyone says the flattering thing, so the message carries no information, so the receiver rationally ignores it, so there’s no reason to say anything else. It’s a self-consistent loop of noise.

Fully worked example — identical claims, honest vs dishonest.

Says “I’m high quality”?Cost to say itBelief it should move
Honest sender (truly H)Yes$0
Dishonest sender (truly L)Yes$0
Receiver’s takeawayBoth said itidenticalzero

Both types send the identical, costless message. The receiver’s posterior after “I’m high quality” equals their prior — nothing was learned. The honest sender is furious about this (they told the truth!) but the math doesn’t care about sincerity; it cares about separation, and there is none.

Common pitfall — “cheap talk is always a lie.” No. In the babble equilibrium the honest sender is telling the truth and it still conveys no information. Cheap talk isn’t defined by falsehood; it’s defined by the receiver’s inability to distinguish true from false. The honest word and the lie are pixel-identical from the outside.

Warning:

Cheap talk isn’t useless everywhere — when sender and receiver’s interests are aligned (a doctor telling you which line is shorter at the pharmacy), cheap talk can be perfectly informative because no one has an incentive to lie. Cheap talk fails precisely when incentives conflict, which is when signalling problems live. Same tool, opposite verdict depending on aligned vs opposed interests.

When to use it. Model a message as cheap talk whenever the action costs the faker nothing extra. If you catch yourself trusting a claim that a liar could make just as easily, you’ve mistaken cheap talk for a signal.

Costly signals

Intuitive analogy. Any coward can say “I’m brave.” Walking a tightrope over a canyon is a different kind of statement — because a coward, given the same rope, would fall or refuse. The tightrope filters. That’s a signal: an action that a fraud can’t comfortably copy.

Precise definition. A costly signal is an action, taken by the sender, whose cost differs by type — cheaper for the type the receiver wants to identify, more expensive (or unbearable) for the impostor. The signal’s job isn’t to describe quality; it’s to be an action the low type won’t rationally imitate. The information rides on the difference in cost, not on the content of any words.

Write the cost as cost = c × s, where s is the signal intensity (how much you do — years of school, months of warranty, meters of tightrope) and c is the sender’s per-unit cost, which depends on type: call it c_H for a high type and c_L for a low type.

Fully worked example. A firm offers a 10-year free warranty on its product. A firm making reliable goods rarely pays out, so the warranty is cheap for them. A firm making junk would drown in claims, so the same warranty is ruinously expensive for them. The warranty length is s; the expected payout per year is c, and c_junk >> c_reliable. Customers can’t inspect reliability directly, but they can read the warranty — and only the reliable firm can afford a long one. The receiver learns quality from an action, never from a promise.

Common pitfall — “costly = expensive in money.” Cost is whatever the faker can least afford: time (a 4-year degree), risk (a public bet, a duel), energy (a peacock’s tail, a gazelle’s leap), effort (an unpaid grind), or reputation (staking your name). Many of the sharpest signals cost no cash at all. The unit of c is “pain to this type,” denominated in whatever currency bites.

When to use it. When you need to reveal a hidden type — or to read someone else’s — stop looking for the most eloquent claim and look for the action a faker couldn’t stomach. That action is the signal.

The single-crossing / Spence separating condition

Now the load-bearing theorem, from Michael Spence’s 1973 job-market model. A signal separates H from L exactly when the signal is cheaper for the good type than the bad type — precisely enough that there’s a level the H will send and the L won’t. This is the single-crossing condition (the two types’ cost curves cross the benefit line at different intensities). Let’s prove it with real numbers instead of vibes.

The setup.

  • Being believed to be H is worth a reward gap of B = $60 (say, a wage premium). Send a convincing signal and you get +$60; fail to and you get $0.
  • The signal costs c × s. Per unit: c_H = 12 for a high type, c_L = 30 for a low type. (High types find the signal cheaper — the whole ballgame.)
  • The receiver will believe “H” only if the sender sends at least intensity s* = 3 units. (We’ll justify why s* lands in the window in a moment.)

Step 1 — will the H type send s* = 3? Net payoff from signalling: benefit minus cost = 60 − c_H × 3 = 60 − 12 × 3 = 60 − 36 = 24. Payoff from not signalling: $0. Since 24 > 0, the H type signals. Good.

Step 2 — will the L type imitate at s* = 3? Net payoff = 60 − c_L × 3 = 60 − 30 × 3 = 60 − 90 = −30. Payoff from not signalling: $0. Since −30 < 0, the L type refuses. It’s not worth faking. That’s separation.

SenderBenefit if believedCost of s = 3Net if they signalSignal?
High type (c = 12)$6012 × 3 = $36+$24Yes
Low type (c = 30)$6030 × 3 = $90−$30No

Step 3 — where exactly is the separating window? Two conditions must both hold at the demanded intensity s:

  • The H type will pay: 60 − 12·s ≥ 0, i.e. s ≤ 60/12 = 5.
  • The L type won’t pay: 60 − 30·s < 0, i.e. s > 60/30 = 2.

So any demanded signal in the window 2 < s ≤ 5 separates the types. Our s* = 3 sits comfortably inside. Below 2, even the L would fake it (no separation — back to pooling). Above 5, even the H gives up (the signal is now too dear for anyone). The window exists only because c_H &lt; c_L. If the two per-unit costs were equal, 60/c_H = 60/c_L, the window collapses to nothing and no signal can separate — you’re stuck in cheap-talk babble no matter how big s gets.

Success:

The one sentence to memorize: a signal separates the good type from the bad exactly when it is cheaper for the good type to send than for the bad type — cheap enough that the good type will bear it and dear enough that the bad type won’t fake it. Everything else in this course is a footnote to that inequality.

Signalling separator

Drive the separating condition yourself

A signal is only believed if it is too expensive for the wrong type to fake. Set how costly the signal is for a HIGH type versus a LOW type, and how common high types are. Watch the equilibrium flip between pooling and separating.

Separating windowBenefit of being believed “high”nonemore →maxSignal intensity (how big / how much)Cost of the signal
Cost to a HIGH type Cost to a LOW type

What the receiver sees

Equilibrium

Separating

Who signals

Only HIGH types

Belief on a signal

High (correct)

Cost burned

−11

When no signal separates the types, the receiver is stuck paying everyone this pooled average.

Reading the equilibrium

The good type’s signal is cheap for it and ruinous for a faker, so only high types send it and the receiver believes it. The types separate on a signal that is too expensive to fake — costly enough to be honest, and not much more.

You are the receiver demanding a signal. The green line is the cost to a HIGH type, the red line the cost to a LOW type, and the flat line is the $60 benefit of being believed. A signal separates only when there's an intensity a HIGH will pay for (cost below the benefit) but a LOW won't (cost above it) — the shaded 'separating window'. Start with cost-to-high = 12 and cost-to-low = 30 (clean separation), then drag them together: as the cost gap shrinks the window narrows and finally snaps shut into pooling babble. That collapse is the Spence single-crossing condition failing in real time.

Common pitfall — “a costly signal must be honest.” Only if the cost gap holds at the demanded intensity. A signal that’s costly but costs both types roughly the same (say c_H = 28, c_L = 30) barely separates: the window 60/30 &lt; s ≤ 60/28, i.e. 2 &lt; s ≤ 2.14, is razor-thin and easy to fake around. “Costly” is necessary but not sufficient — it must be differentially costly. A five-figure luxury watch signals wealth only because it hurts a broke person disproportionately, not because it’s expensive in the abstract.

When to use it. Any time you want to design a filter (an admissions bar, a warranty, an initiation, a probation period) or diagnose one: ask “is this action cheaper for the type I want than for the type I fear — by enough?” If yes, it separates. If no, it’s theater.

Necessary vs wasteful cost

Intuitive analogy. The tollbooth that keeps freeloaders off the bridge has to charge something, or freeloaders pour through. But the coins tossed in the basket aren’t magically converted into a stronger bridge — from the world’s point of view, they can be pure toll, pure friction. The cost is doing its job precisely by being burned.

Precise definition. For a signal to work, the cost must be real to the faker — an L must genuinely be unable or unwilling to pay it. But that same cost can be, from society’s ledger, deadweight: effort, money, or risk that separates types without producing anything else of value. Spence’s own example is unsettling — a diploma can sort able from less-able workers even if the schooling taught them nothing usable, purely because the able find studying less painful. The signal is informative and wasteful at once.

Worked example. Back to our numbers: separation at s* = 3 costs the H type $36 in signal cost. That $36 buys the H type a $60 wage bump — worth it privately (+$24 net). But if the receiver could see types for free, the H would get their $60 without burning the $36. The $36 is the price of the verification wall — spent to overcome asymmetry, not to create anything. Multiply that across millions of senders and the burn is enormous.

Tip:

Hold this tension without resolving it yet: the cost is necessary (drop it and the signal stops working) and often wasteful (it produces separation and little else). Lesson 6 puts this “so is signalling just an arms race of expensive nonsense?” critique on trial. For now, just notice that “it works” and “it’s a waste” are not contradictory — they’re the two faces of every costly signal.

When to use it. Whenever you evaluate a signalling system, run two ledgers: does it separate types (private value to the sender), and what does the burned cost buy society (often: nothing but the separation itself)? Conflating those two is how people either over-defend or over-attack credentialism, marketing spend, and conspicuous consumption.

Sorting real messages

Time to classify. The test for each item: could a faker of the wrong type send this just as easily? If yes → cheap talk. If it would cost a faker dearly (money, time, risk, reputation) → costly signal.

Drop each real-world message into the bucket it belongs to. The tell: could someone of the WRONG type send this just as cheaply?

  • Burning a public bridge to make a threat credible
  • A CV bullet that says 'detail-oriented'
  • A gazelle jumping straight up in full view of a lion
  • Posting 'we're hiring the best' on a website
  • A verbal 'trust me'
  • A 4-year engineering degree
  • An email signature that reads 'Sent from my iPhone'
  • A 10-year free warranty on a product

Checking the single-crossing condition

A reward of being believed is B = $40. The signal costs c per unit: c_H = 8 for the good type, c_L = 20 for the bad type. The receiver demands intensity s = 3. Does this separate the types?

When does the separating window close? Take B = $40 again and fix the demanded intensity at s = 3, but now let the two types’ per-unit costs drift together. The window in intensity is 40/c_L &lt; s ≤ 40/c_H. For s = 3 to sit inside it we need 40/c_L &lt; 3 (bad type refuses) and 3 ≤ 40/c_H (good type pays) — i.e. c_L > 40/3 ≈ 13.33 and c_H ≤ 40/3 ≈ 13.33.

So separation at s = 3 survives only while c_H ≤ 13.33 &lt; c_L. The moment the good type’s cost creeps above 13.33 (c_H = 14: net 40 − 42 = −2, the H now refuses too — the signal is too dear for anyone), or the bad type’s cost dips below 13.33 (c_L = 13: net 40 − 39 = +1, the L now happily fakes it), the window at s = 3 slams shut and you fall back into pooling babble. The receiver can try demanding a different s, but if the two costs are equal there is no s that works — 40/c_L = 40/c_H, the window has zero width, and the single-crossing condition has been violated everywhere at once. That knife-edge is the whole theory in one worked collapse: informative signalling exists only in the wedge between c_H and c_L.

Putting it together

Big picture

Cheap talk vs costly signals — the map

  • Signalling core
    • Private information
      • Sender knows their type (H/L)
      • Receiver can't verify before acting
      • The verification wall
    • Cheap talk
      • Cost identical across types
      • Both types pool → babble equilibrium
      • Conveys nothing even when true
      • Informative only if interests align
    • Costly signal
      • Action whose cost differs by type
      • cost = c × s (c depends on type)
      • Cost = money, time, risk, energy, reputation
    • Spence single-crossing
      • Separates iff cheaper for good type
      • Window: B/c_L < s ≤ B/c_H
      • Equal costs → window closes → pooling
    • Necessary vs wasteful
      • Cost must be real to the faker
      • Can be pure burn for society
      • The waste critique → lesson 6

The engine is now assembled: information can only cross the verification wall on the back of a cost the faker can’t pay. Words are free, so words are worthless when incentives clash — and the difference between a filter and a fairy tale is one inequality, c_H &lt; c_L.

Next up: lesson 2, The Handicap Principle — nature’s answer to “how costly must the cost be?” is brutal: costly enough to be a genuine handicap. We’ll see why a peacock’s absurd tail is honest because it’s absurd, and how Zahavi turned “this is obviously maladaptive” into the sharpest theory in behavioral biology.

Mark lesson as complete