NORMAL
← cd ~/blog
deep-dive #economics#algorithms#invariants#pricing#backend

A raked winner-take-all pool can't promise small groups a fixed return multiple

Someone wanted a clean rule: whoever wins a pooled contest nets at least K× the stake they paid in. It's impossible below a field size, and no amount of pricing fixes it. If N people each stake `s` and one winner takes the pot minus a fixed cut `f` (platform fee, tax, house rake), the winner's take is at most `(1 − f)·N·s` — so `takeHome ≥ K·s` needs `N ≥ K / (1 − f)`. A 3× promise with a 30% cut is arithmetically impossible below ~5 contributors, and real per-head costs push it higher. The fix wasn't better pricing; it was to stop baking the multiple into the enforced floor and instead guarantee a healthy positive pool at any size, letting the headline multiple emerge only where the field is large enough to produce it.

The promise that can’t be kept

A stakeholder asks for a clean guarantee: the winner of a pooled contest should always walk away with at least K× what they put in. It sounds like a pricing problem — set the buy-in high enough and the pot covers it. It isn’t. It’s arithmetic, and for small groups the arithmetic says no.

The ceiling

N contributors each stake s. One winner takes the whole pot, but a fixed fraction f is skimmed off the top first — a platform fee, a withholding tax, the house rake; it doesn’t matter which. The pot is at most N·s (it only shrinks once fixed costs come out), so the winner’s take-home is bounded:

takeHome ≤ (1 − f) · N · s

Require takeHome ≥ K·s and divide by s:

N ≥ K / (1 − f)

With a 30% cut and K = 3, that’s N ≥ 3 / 0.7 ≈ 4.3at least 5 contributors — and that’s the ceiling, assuming zero other costs. Anything charged per participant or per round only raises the threshold. Below it, the guarantee isn’t “hard to price,” it’s impossible, full stop. I’d been trying to tune a floor to hit it; you can’t tune your way past an inequality.

The fix: split the guarantee from the showcase

Once you see the ceiling, the design falls out. Don’t encode the multiple in the enforced price floor — a floor that tried would reject every small contest and demand absurd buy-ins near the threshold. Instead:

  • Floor: guarantee only what’s always achievable — a positive, healthy pool (the pot after the cut clears fixed costs with a margin). That holds at any N above a small minimum.
  • Showcase: let the big multiple appear where the field size actually produces it. Large groups clear K× comfortably; feature those, don’t promise it everywhere.

The general lesson outlives the money: before you enforce output ≥ K × input anywhere — payouts, cache hit-rates, compression ratios, batch amortization — check the ceiling the inputs impose. A guarantee that’s arithmetically impossible over part of the domain isn’t a bug you tune away; it’s a spec you have to split.