Westside Market NYCWallet & Loyalty / Westside Market

Nobody saves up
for a grocery run.

Role

Research, strategy, design

Team of 2 + leadership review

Timeline

Sep 2025

One-week sprint

Type

Wallet & loyalty

Accrue embed SDK

Focus

Retention

Behavioural design

Same tactic

We shipped it twice.
It worked once.

Auto-load lets you top up your wallet in one deliberate move. It already ran on a sneaker retailer’s wallet we build, where people used it. At Westside it ran for months and almost nobody turned it on.

The reward economics stayed locked, so I could not buy my way to a better number. Whatever replaced auto-load had to come out of the design.

About 15 days between actions

Most of that traffic came from employees beta-testing. Regular shoppers opened the app to buy, then closed it.

A coupon, not a wallet

The welcome reward brought people in. Nothing held them. After one purchase they stopped opening the app.

Economics were locked

Earn rates and rules were fixed before I arrived. That left attention as the only thing I could change.

TL;DR

Same tactic, twice

The same top-up feature ran on two wallets we build. On the sneaker one it worked. At Westside it sat unused for months, and the reward economics were locked, so money was not available as a fix.

20 customers later

I read the usage data and sat with 20 Westside shoppers. You buy groceries weekly and want the balance already waiting. Sneaker shoppers are saving toward one expensive thing, which is a different animal.

Auto-reload, plus four

I rebuilt the tactic around weekly shopping, took apart 15 wallets that keep people transacting, and added four ways to hold attention without pressuring anyone.

20 customers

The data showed when
people left. Not why.

So I sat with 20 Westside customers and asked how they shop, what they keep in the wallet, and when they think about money at all.

What they told me

You buy groceries every week and you want the money already there when you reach the till. Nobody saves up for a shop.

On the sneaker wallet people are putting money aside toward one $220 pair, so topping up carries part of the anticipation. Auto-load asks you for a funding decision. A weekly grocery run has no room for one.

Sneakers · one big basket

One goal, weeks apart. You top up on purpose because you are saving toward something you already want.

Westside · many small baskets

Every week, mid-errand, holding a basket. A funding prompt in front of the milk is a reason to close the app.

So we went back to the drawing board and replaced the one-time top-up with a threshold. Your balance falls below a line you set, and the wallet refills itself.

15 wallets

Auto-reload was the right shape.
I still had to design it.

I took apart 15 apps that keep people transacting, across seven dimensions each, looking for what makes a recurring balance stick.

The formula it produced

[Trigger] + [Auto-action] + [Loss frame] + [Perk]

All four have to be present. Drop the perk and you have a chore; drop the loss frame and nobody notices the chore is worth doing. The team still uses this when a retention question comes up.

Starbucks

Expiry plus bonus challenges

Stars run out after six months. The urgency belongs to the calendar.

Duolingo

One screen, one streak

No tangible reward anywhere. The streak carries the whole mechanic.

ClassPass

Engineered sunk cost

You paid for credits and they expire monthly. The closest parallel to a wallet balance.

Three postures

Three ways to say it,
with the tradeoffs attached.

Stakeholders then picked a brand position instead of arguing about copy.

01

Safe & Trustworthy

Starbucks / Apple Cash modelRecommended

“When your balance drops below $10, we’ll reload $25.” You set it once and it runs. Every reload includes a guaranteed prize.

Slowest to convert. Holds longest.

02

Aggressive Loss Aversion

TEMU-inspired

Flashing low-balance alerts, and a 24-hour timer to lock in a bonus prize.

Converts faster in the short term. Reads as pressure.

03

Gamified

Dunkin / Grab model

The reload screen doubles as a spin-the-wheel, and auto-loaders get 2× spins a month.

Variable reward. A slot machine in a softer skin.

Re-entry

A posture only matters
at the moment you open the app.

So I mapped every moment you might, and what you are feeling when you arrive at each one.

Five re-entry points, five different states. Treat them as one audience and the wallet ends up cheerful at the worst possible moment.

Balance increase

Positive · ready to spend

Lead with what it unlocks

A reward or deposit just landed. The moment is warm already, so the screen names what the new balance covers and asks for nothing.

Purchase complete

Satisfied · low intent

Ask for the habit, not the sale

You will not buy again ten seconds later. Setting auto-reload costs you nothing here, which is why the ask belongs at this moment and no other.

Reward expiry

Loss frame · 30 / 7 / 1 day

Count down in dollars

“$4.20 expires Friday” lands where “3 days left” does not. The deadline is real, and the reminder escalates toward it.

Drops or campaigns

Brand-led · high energy

Borrow the attention

A campaign already brought you in. The wallet sits at the front of that flow instead of competing with it.

Purchase cancelled

Negative · unexpected

Say nothing about reloading

Every retention tactic is wrong here. Resolve the cancellation, show the money going back, and leave. Naming the moments where you do not ask is part of the work.

The re-entry map from the sprint. Five moments after a first purchase, each tagged with the state you arrive in.

Staying

Four tactics around it.
None of them a dark pattern.

Auto-reload helps you once you have decided to stay. These work on the decision.

Each borrows a behavioural mechanic, and each has a line it cannot cross. A wallet holding your money is the last product that should be tricking you, so the constraint is what makes them usable at all.

Ambiguity aversion

Value prop at the moment of doubt

Shoppers were not rejecting the wallet. They could not say what it was for. One line at the funding screen, naming what the balance buys and what it earns, beat every persuasive variant I tested.

It states a fact and stops.

Scarcity

FOMO bounded to something real

Reward moments that expire on a date, surfaced in dollars instead of days. The deadline exists in the system already, so the screen reports it rather than manufacturing one.

No invented timers.

Exit intent

Win-back bottom sheets

Leaving without funding raises one sheet: what the balance would have earned on the basket in front of you, and a single tap to reconsider. It shows once, dismisses, and never blocks the door.

It asks again. It does not ask twice.

Variable reward

Delight and play

The reload confirmation has a moment in it, a small reveal on the guaranteed prize. Worth watching, and short of the spin-the-wheel that sank the gamified posture.

Every prize is guaranteed. Only the animation varies.

Where the line sits

A dark pattern makes the exit harder. Everything here works on the offer instead.

Scarcity, exit intent and variable reward run in both kinds of product. What separates them is whether the thing on screen is true and whether the door still opens. Every tactic here had to clear both tests, and the aggressive posture failed the first one, which is why it lost.

The win-back sheet, the value-prop line, and the reload reveal.

The surfaces

The recommended posture,
and two patterns beside it.

Trust

Auto-reload

Set the threshold once

Your balance drops under $10 and $25 lands. Every reload carries a guaranteed prize, so the habit pays you back instead of only protecting you from an empty wallet at the till.

Clarity

With vs Without

What skipping it costs, in dollars

Two states sit side by side at the decision. Load, and $25 becomes $26.25. Skip, and it stays $25 under a red line reading “Lost: $1.25”.

Momentum

Missed-rewards counter

Value lost over a month, not once

“You’ve missed $18.40 in rewards this month.” One skipped reward vanishes from memory by Tuesday. A running total does not.

How I worked

Seven days, end to end.
The tooling is why that fit.

Competitive research via Mobbin MCP

I pulled real patterns from 15 apps straight into the working file instead of screenshotting them by hand. Three days of collection became an afternoon, which is the only reason seven dimensions each was affordable.

Rapid wireframe prototyping

I built the three postures as prototypes that behaved rather than frames that described. Stakeholders reacted to the thing instead of to my summary of it.

Tested with 10 users

Ten people, all three variants. The exit-intent sheet and the plain value-prop line moved the decision. The urgency-led variants did not.

AI-drafted copy, cut by hand

I generated microcopy variants fast and threw most of them away. Volume to choose from was the useful part. Every line that shipped got rewritten.

The AI covered volume. The ten sessions decided. Nothing I generated would have told me the urgency variants were the weak ones. Watching someone shrug at a countdown did that in about four minutes.

What moved

The honest tactics won.
The pushy ones lost.

0
Customers interviewed
0
Wallets taken apart
0
Users in prototype testing
YOUR NUMBERS

Weekly average basket and reward redemption both rose once auto-reload had the four tactics behind it. Drop the real figures in and this becomes the strongest block on the page.

app/case-studies/wsm-auto-reload/page.tsx, the Stats above

The pattern in the feedback was the useful part. People responded to being told what the balance was for, and to the small reveal on a reload. Being hurried did nothing for them.

My learning

What held up

Borrowing a behavioural mechanic is fine. Borrowing one without a line it cannot cross is how a wallet starts working against the person whose money it holds.

Where I wanted data

I recommended a posture from 20 interviews, a teardown and ten sessions. That tells you which variant lands. It does not tell you what the difference is worth.

What proves it worked

Second-purchase rate, days between actions, opt-in by entry point, and whether the win-back sheet earns its place or only annoys people who had already decided.

The same tactic failed at one merchant and worked at the other. That is the finding. A retention mechanic travels between behaviours, and not between products. Someone saving toward one expensive pair of shoes behaves nothing like someone who needs grocery money sitting there already. Everything else in this sprint followed from 20 people telling me that.