← Back to Blog
Quantitative MarketingBehavioral EconomicsIncentive DesignLoyalty

The Endowed Progress Effect: Two Free Stamps Nearly Doubled Completion

Nunes and Dreze gave 300 car wash customers either an 8-stamp card or a 10-stamp card with 2 already stamped. Identical effort required. Completion went from 19% to 34%. Here is the economics of that change.

SPSantosh Paudel· July 31, 2026· 7 min read
Table of contents

In 2006, Joseph Nunes and Xavier Drèze ran an experiment at a car wash and published it in the Journal of Consumer Research. It remains one of the cleanest demonstrations in behavioural economics, because the manipulation was almost nothing and the effect was large.

The short answer

Three hundred customers received one of two loyalty cards: an 8-stamp card, or a 10-stamp card with 2 spaces already stamped. Both required exactly 8 purchases to earn a free wash. Over nine months, completion was 19% on the plain card and 34% on the pre-stamped one, a 78.9% relative increase from a change that cost nothing but ink.

Why identical effort produces different behaviour

People do not evaluate progress in absolute terms. They evaluate it as a fraction of a goal, and they are more motivated by a goal they have already started than one they have not.

On the plain card, a customer with zero stamps is at 0% of 8. On the pre-stamped card, the same customer is at 20% of 10. The remaining work is identical. The framing is not.

This connects to the goal gradient effect, first described by Clark Hull in 1932 and replicated in modern retail settings: effort accelerates as the goal approaches. If you can make someone feel they have already begun, you move them onto the part of the curve where motivation is rising.

It also connects to the Zeigarnik effect, Bluma Zeigarnik's 1927 finding that uncompleted tasks stay active in memory in a way completed ones do not. A card with two stamps on it is an open loop. A blank card is not yet a task at all.

The economics of the change

The experiment measured completion. Turning that into money requires a few assumptions, stated openly: a $10 wash at $3 cost of goods, and a free wash awarded on completion.

Margin per completed card is 8 paid washes at $7 contribution, minus the $3 cost of the free one, so $53.

CardCustomersCompletion rateCompletersMargin
Plain 8-stamp15019%28.5$1,510.50
10-stamp, 2 pre-stamped15034%51.0$2,703.00

Incremental completers: 22.5. Incremental margin: $1,192.50, which is $7.95 per customer enrolled.

N_PER_ARM = 150
RATE_PLAIN, RATE_ENDOWED = 0.19, 0.34
WASH_PRICE, WASH_COGS, PURCHASES = 10.0, 3.0, 8

margin_per_completer = PURCHASES * (WASH_PRICE - WASH_COGS) - WASH_COGS

for label, rate in (("plain", RATE_PLAIN), ("endowed", RATE_ENDOWED)):
    completers = N_PER_ARM * rate
    print(f"{label:>8}: {completers:>5.1f} completers, "
          f"margin ${completers * margin_per_completer:>9,.2f}")

incr = N_PER_ARM * (RATE_ENDOWED - RATE_PLAIN)
print(f"\nincremental completers {incr:.1f}")
print(f"incremental margin     ${incr * margin_per_completer:,.2f}")
print(f"per customer enrolled  ${incr * margin_per_completer / N_PER_ARM:,.2f}")

Output:

   plain:  28.5 completers, margin $ 1,510.50
 endowed:  51.0 completers, margin $ 2,703.00

incremental completers 22.5
incremental margin     $1,192.50
per customer enrolled  $7.95

The change pays for itself if printing the modified card costs less than $7.95 per customer. It costs a fraction of a cent.

One caveat worth stating: this counts completers only. Non-completers in both arms still bought washes, and the study design does not let us separate their spend cleanly. The true incremental figure is therefore somewhat lower than $1,192.50, because some of the extra completions came from customers who would have bought several washes regardless and simply finished the card. The direction and the rough magnitude hold. The precision does not.

Applying it without lying

The mechanism only works if the endowed progress is real progress toward a real goal. Three common implementations, in descending order of honesty:

ImplementationWhat the user is toldHonest?
Larger card with genuinely free starting creditYou need 10, here are 2 freeYes, the 2 are a real gift
Progress bar that starts at 20% for signing upSigning up counted as a stepYes, if signup was genuinely effort
Progress bar that starts at 20% for nothingImplied progress that did not happenNo, this is a fabricated state
Bar that resets or slows near the endProgress is being taken backNo, and users notice

The car wash version is the honest one. The customer really was given two stamps. Nobody was told they had done something they had not.

The dishonest variants work in the short run and fail specifically, because a user who discovers that a progress bar was fictional stops trusting every other number in the product.

Where to use it

Onboarding checklists are the obvious case. Mark the steps the user has genuinely already completed, including signing up, verifying an email and anything else that happened before they saw the list. Most products start these at zero even when the user has done three things.

Loyalty cards and punch cards, exactly as in the original study. If your card requires 8, print 10 and give 2.

Profile completeness, referral milestones and tier progress all work the same way. The rule is the same everywhere: give real credit for real actions, then let the goal gradient do the rest.

Free resource

Get the Promo & Bonus Economics Workbook

Every formula for pricing a promo before you launch it: expected value, wagering cost, breakage, breakeven conversion. Worked examples with real executed numbers.

No spam. Unsubscribe anytime.

Browse all free guides →

Want to implement this with guidance?

Santosh helps founders turn insights like this into real systems.

Promo Economics Audit

External Resources

Further Reading & Tools

Related Posts

01
9 min
Risk ManagementPromo Economics
TodayQuantitative Marketing

Value at Risk and Kill Switches for Live Promotions

A spend cap set at expected payout shuts down 46% of perfectly healthy campaigns. The right multiple is 1.52x. Sizing exposure limits and automated kill switches against a real payout distribution.

Read article
02
8 min
Incentive DesignBehavioral Economics
TodayQuantitative Marketing

The Line Between Motivating and Manipulating: An Incentive Design Ethics Test

Every mechanic in this series works because of a cognitive bias. That makes them powerful and makes some of them indefensible. A six-question test for which side of the line your design sits on, and what regulators have already acted against.

Read article
03
8 min
Price DiscriminationPricing
TodayQuantitative Marketing

Why Promo Codes Beat Sales: Price Discrimination in Practice

A blanket 20% discount earns $20,000 less than no discount at all. The same discount behind a code that only bargain hunters bother to find earns $64,000 more. The friction is the entire mechanism.

Read article