A waiter can hold a dozen unpaid orders in his head perfectly and forget every one the moment the bill is settled. That observation, nearly a century old now, is the usual origin story for the Zeigarnik effect: unfinished tasks sit in memory with a faint tension attached, tugging at attention, and the tug releases the instant the task is done. An open loop is heavier than a closed one.
Builders already use this, whether or not they know its name. A progress bar is an open loop you can see. A checklist with one item ticked is an open loop with a foothold. “Resume where you left off” reopens a loop on purpose. Used well, this is genuinely kind: the tension is real, the finish line is real, and closing the loop hands the user something they actually wanted. I’ve written before about why a non-empty checklist and a visible next step accelerate completion. That version of the mechanism is a gift.
This piece is about the same mechanism pointed somewhere darker.
Because here’s the thing the effect doesn’t require: it does not require the loop to be closeable. The tension comes from the loop being open, not from there being a real reward at the end. Which means you can manufacture the pull without ever offering the release. A red badge that reappears the moment it’s cleared. A “profile 87% complete” ring that’s engineered never to reach 100. A notifications count that regenerates on a timer. An achievement track with no last rung. Each of these borrows the exact same attentional tug as a helpful progress bar — and never pays it back.
The reason this is worth naming as its own trap is that it doesn’t feel like a dark pattern from the inside. Nobody sits in a planning meeting and says “let’s rent out the user’s low-grade anxiety.” They say “engagement is up when we show the badge,” which is true, because a tug you never release keeps people checking. The metric rewards you for the open loop and is blind to the cost, which lands on the user as a background hum of unfinished business they can’t ever clear.
So here’s the test I’d put on any progress cue, badge, or count before shipping it: can the loop actually be closed, and does closing it complete something the user came here to do? A progress ring that reaches 100% and then stays at 100% is a to-do list. A ring that resets, or that was designed never to fill, is an itch you installed. The first respects the mechanism; the second exploits it.
This is distinct from a couple of neighbors worth keeping straight. It isn’t the urgency trap — a loud “act now” cue that hijacks attention by manufacturing time pressure. Zeigarnik tension isn’t about urgency, it’s about incompleteness; the badge doesn’t say hurry, it says unfinished. And it’s not quite the goal-gradient pull toward a visible finish line either — the danger here is precisely a finish line that was never real. Same family of open-loop psychology, three different failure modes.
One honesty note on the science: the original waiter finding is old, and its replications have been uneven — the effect is real but moderated by how much the person cares about finishing, and it’s not the ironclad law pop-psychology makes it. That actually strengthens the design point rather than weakening it. If the tug only shows up when the user is invested in completing, then a loop you keep open with no payoff isn’t just manipulative, it’s manipulative and unreliable — you’re taxing the exact users who trusted your finish line was real, and training everyone else to ignore your badges.
Liked this? Get the next one in Working Theory.
Going weekly in August (it's in beta now). One genuinely interesting read on building, the brain, and the science most people missed.