DEV Community

speed engineer
speed engineer

Posted on

Your Hiring Freeze Has an Adverse Selection Problem

The problem

Every hiring freeze I've watched up close follows the same script: leadership announces a freeze, comp reviews get "paused pending Q results," and six months later someone asks why the team feels weaker than it did a year ago — even though the attrition numbers look fine on a dashboard.

The dashboard is lying. Not with fake numbers, but with the wrong number. Total attrition can sit at a perfectly normal 8-10% while the composition of who's leaving quietly inverts.

Why it happens

A freeze almost never freezes just headcount. It freezes comp too — off-cycle adjustments get shelved "until things stabilize." Meanwhile the external market for the same role doesn't freeze at all. Two years of that gap and you have real comp compression: a senior engineer hired externally today would clear a number your three-year tenured senior engineer is nowhere near.

Here's the part that doesn't show up in an attrition chart: the tenured engineer's ability to act on that gap is not evenly distributed. Your strongest performers pass external loops easily — they have a portfolio, a track record, recruiters already in their inbox. A credible outside offer is a phone call away. Your average-to-below-average performers don't have that option nearly as reliably; external interviews are a real filter, and they know it.

So when comp quietly falls behind market during a freeze, the population that's able to leave and the population that's underpaid only partially overlap — and the overlap skews toward your best people. This is adverse selection, the same mechanic Akerlof described in the market for lemons, just running on your internal talent pool instead of used cars: the participants with better private information about their own value are the ones who exit the pool, leaving a residual population that's systematically weaker than the average you started with.

It compounds. The freeze didn't shrink the workload, so the remaining team — now missing its strongest members — absorbs it. More load lands on a team with a lower average ceiling, which raises the burnout and attrition risk of exactly the people you have left. That's not a one-time dip in team quality. It's a loop.

What to do about it

Three things I've seen actually work, none of which require lifting the freeze:

Track regretted attrition separately from total attrition. A flat 9% churn number can hide a regretted-attrition rate that's climbing fast. If you're only watching the aggregate, you find out about the problem a year after it started.

Compute compa-ratio against current external market data, not last year's band. Bands set eighteen months ago are exactly the thing comp compression exploits. If you're benchmarking against a stale band, you'll conclude you're "fine" right up until your best engineer gives notice.

Spend retention budget as a scalpel, not a freeze. A blanket comp freeze and a handful of targeted off-cycle adjustments for flight-risk high performers cost very differently, and only one of them stops the adverse-selection loop. The org that can't do targeted retention during a freeze is choosing, whether it says so or not, to let the loop run.

Key takeaways

  • A stable total-attrition number can coexist with a rapidly worsening composition of who's leaving.
  • Comp compression during a freeze isn't just "everyone underpaid equally" — the people most able to act on it are disproportionately your strongest performers.
  • This is adverse selection: the exit is correlated with ability, not random.
  • Fix the measurement first (regretted attrition, live compa-ratio) — you can't manage a loop you can't see.

Top comments (0)