Builder's Brain
Builder's Brain · the neuroscience of building · ◉ Evergreen

Pull-to-refresh is a slot machine — build it on purpose, or don't build it

by Shreyansh Ojha·7 min·Working Theory

In the 1950s, B.F. Skinner was running animals through boxes with a lever and a food dispenser, and he found something that has haunted product design ever since. If you reward the lever every time it’s pressed — a fixed, predictable payoff — the animal presses at a moderate, sensible rate, and the moment you stop the rewards, it gives up almost immediately. But if you reward the lever unpredictably — sometimes on the third press, sometimes the twentieth, sometimes not for a long stretch — the behavior changes character entirely. The pressing becomes fast, relentless, and astonishingly hard to extinguish. Take the reward away completely and the animal keeps going far longer than it ever would have on the predictable schedule, because it can never be sure the next press isn’t the one. Skinner called this a variable-ratio schedule of reinforcement, and it produces the highest, most persistent rate of behavior of any schedule he tested.

The reason it grips so hard is the same prediction machinery underneath dopamine: an unpredictable reward keeps the “is it coming now?” signal permanently live. A predictable reward gets anticipated, and anticipation dampens the response — the brain stops being surprised. Unpredictability never lets the signal settle. Every pull is a fresh, unresolved bet. That’s the whole engine of a slot machine: not the payout, but the maybe. The lever is cheap, the outcome is uncertain, and the uncertainty is doing the work.

Now look at your phone with that lens and the pattern is everywhere, because it works. Pull to refresh is a lever with a variable payoff — sometimes new content, sometimes nothing, you can’t know until you pull. An infinite feed is the same bet re-armed after every scroll: the next post might be great. A notification badge is a wrapped box that’s occasionally worth opening. None of these were necessarily designed by someone quoting Skinner, but they converged on his schedule anyway, because the schedule is a local maximum of engagement and A/B tests roll downhill toward it on their own. That’s the uncomfortable part: you can build this accidentally. Optimize hard enough for “sessions per day” and you will reinvent the slot machine whether or not anyone at the table ever intended to.

more 0 cumulative actions rewards stop here predictable · stops fast every action pays unpredictable · keeps going long after a maybe on every action The unpredictable "maybe" both drives more behavior and refuses to extinguish. That's the power — and the reason it needs a conscience.
A variable-ratio schedule (unpredictable payoff) produces more behavior than a predictable one and keeps going long after the rewards dry up. The lever is cheap; the uncertainty does the work. Original diagram · Working Theory

Here’s where I want to be honest instead of clever, because this is a mechanism with a body count of wasted human hours, and pretending it’s a neutral “growth tactic” is how builders let themselves off the hook. The variable-ratio schedule doesn’t care whether the behavior it’s driving is good for the person doing it. It will make someone pull a feed they don’t enjoy, past the point of any real reward, resistant to their own intention to stop — that “I didn’t mean to spend forty minutes here” feeling is not a personal failing, it’s the schedule working exactly as designed. So the question a serious builder has to sit with isn’t can I install this loop (you can, easily, maybe by accident) but should the thing on the other side of the maybe be worth the pull?

That gives you a usable line, and it’s sharper than “engagement good / addiction bad.” Ask whether the uncertainty is wrapped around real value the user actually wants, or around manufactured scarcity that exists only to keep them pulling. A messaging app where “pull to refresh” might surface a message from a friend is variable-ratio too — but the payoff is something the user genuinely came for, and when there’s nothing new, an honest empty state (“you’re all caught up”) lets them leave. A feed engineered to never be caught up, to always dangle one more maybe, has taken the same mechanism and pointed it away from the user’s goals and toward yours. Same schedule. Opposite ethics. The tell is what happens when there’s nothing good to show: a respectful product lets the loop end; an extractive one manufactures a reason to pull again.

So the build decisions are real ones, not hand-wringing. Give the loop an honest floor — a “you’re all caught up” that actually stops, instead of an infinite scroll that never admits emptiness. Make the payoff worth the bet — if the maybe behind the pull is usually junk, you’re not engaging users, you’re conditioning them, and they’ll eventually feel it and resent you. Add friction back deliberately where you’ve noticed the loop overriding intent — batching notifications instead of dripping them, a natural stopping point at the end of a session, a setting that lets someone turn the slot machine off. And the quiet meta-move: watch your own metrics for the signature. If sessions-per-day is climbing while satisfaction, or time-well-spent, or the sheer number of “why am I still here” moments is getting worse, your optimizer may have found the variable-ratio maximum without telling you. That’s the moment to decide on purpose what an experiment found by accident.

None of this is an argument against reward, or surprise, or delight — unpredictable good things are a real part of what makes products feel alive, and a world where every interaction is perfectly predictable is a boring one. It’s an argument for knowing which lever you’re pulling on your users, and pointing its considerable power at something they’d thank you for if they could see the whole machine. The slot machine and the messaging app run the same code. The difference is entirely in what you decided to put behind the maybe.

The science, to look up: B.F. Skinner's schedules of reinforcement, specifically the variable-ratio schedule's high, extinction-resistant response rate (Ferster & Skinner, 1957, 'Schedules of Reinforcement'); the link between reward unpredictability and dopaminergic prediction-error signaling (Wolfram Schultz). For the applied/ethical side: Natasha Dow Schüll, 'Addiction by Design', and the persuasive-design literature read alongside its ethics critiques. The behavioral mechanism is well-established; the human-cost claims are real but individually variable.

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.

Got a reaction, a counter-example, or something I missed? Reply by email — I read everything.
◉ join in

Where have you hit this — in a product you use, or one you're building?

Threads open here soon. For now, the conversation lives two clicks away — discuss on GitHub, or just reply by email. I read and answer everything.