Turn a first visit into a habit.

Loyalty programs built to drive repeat visits: enrollment that actually happens, rewards worth chasing, and the cadence that brings people back.

For dispensaries and retailers fighting for the second visit: acquisition is expensive; the second visit is where margin lives.

20x revenue at peak · Perpetual

Perpetual Infinity Club loyalty program: earn points with every purchase, trade for branded merch

Perpetual · Infinity Club

Perpetual: a QR loyalty program and budtender incentives, built into a full rebuild.

What it is

Getting someone in the door once is the expensive part.

A loyalty program is how you stop paying for that same customer twice.

We set up the program, drive enrollment where it actually happens (at the register, in the bag, on the site) and run the reward cadence that gives people a reason to come back this week instead of next month.

It’s not a punch card. It’s the engine that makes email, SMS, and your promo calendar worth running: the list they all send to.

Where it fits
  • ▸ The backbone of Retention
  • ▸ Feeds Email & SMS and Promo calendars
  • ▸ Enrollment assets pair with in-store merchandising
  • ▸ Reviews and repeat-visit data compound here
What's included

What we build.

Program setup

Structure, tiers, and rewards built for your margins, not a template’s.

Enrollment engine

In-bag cards, register prompts, and app-download drivers that get people signed up.

Reward cadence

The schedule of offers and points that keeps members coming back, not just holding a card.

Member segmentation

Knowing your regulars from your lapsing members and treating them differently.

App & POS integration

Loyalty wired into the systems you already run: Toast, Dutchie, the register.

Program reporting

Enrollment, repeat-visit rate, and what the program is actually returning.

The work

The piece that drives enrollment.

Perpetual loyalty app flyer - earn and redeem points, insider access, referrals and express pickup, with a scan-to-join QR code.

Loyalty · Perpetual Brands

Loyalty app enrollment flyer

The enrollment piece for Perpetual’s loyalty program: points on every dollar, insider drops, referrals and express pickup, with a scan-to-join code.

Paying to acquire the same customer twice?

A free assessment shows where your repeat-visit gap is, and the program that closes it.

How we do it

AI-native, human-finished.

1

Design the program

Tiers and rewards scoped to your real margins.

2

Drive enrollment

The in-bag and at-register assets that turn shoppers into members.

3

Run the cadence

Offers timed to bring members back, tracked against repeat-visit rate.

How the work splits

AI drafts

80%

AI does the first pass

20%

human-finished: the part you feel

The 20% you can feel

AI handles the segmentation and the send mechanics. What a reward should actually be worth, and which offer earns a return visit without giving away margin, is a human judgment call. A loyalty program that loses money is just a discount with extra steps.

The engagement

Perpetual’s loyalty engine.

Perpetual Brands logo
20x

dispensary revenue: around $20K a month when Spark took over, ~$400K a month at peak.

Spark built Perpetual’s loyalty layer, a branded merch store paired with a budtender-incentive program that gave budtenders credit to spend in it, inside a full brand, retail, e-commerce and paid rebuild.

Perpetual Brands · post-acquisition rebuild, loyalty and budtender program

Talk through what this would look like on your brand.

FAQ

Good questions.

Not automatically, and the vendor benchmarks oversell it. Published operator data has shown loyalty members carrying a higher average basket while their time to next order stayed level with non-members: spend moved, frequency didn’t. That’s the failure mode to design against, because enrollment is the easy number to grow and frequency is the one that pays. We baseline both before launch so you can tell which moved.

Usually both. The POS records the transaction; a loyalty platform (Alpine IQ, springbig, or the native tools in Dutchie or Toast) holds the member record, the segments and the sends. Native loyalty is simpler and more limited; a dedicated platform costs more and does more. We work with what you already run, and ask first whether members are reliably identified at checkout.

One point per dollar is the retail default, with rewards set around a 5% effective return, 100 points for $5 is the common shape, and tiers adding a multiplier above set thresholds. Treat those as starting points, not answers. The numbers get modeled against your real basket and margin, because a reward worth more than the visit it triggers is the version that loses money.

That’s the main way loyalty programs lose money, and it’s a design problem rather than an argument against having one. If rewards land on visits that were already going to happen, the discount is pure cost. So thresholds are set for the reward to be earned by incremental visits, depth stays off your highest-margin lines, and reward cost is reported next to member frequency, never separately from it.

One short ask at the register, backed by in-bag cards and an app-download driver: enrollment has to fit the seconds you actually have, not a form. Sign-up that depends on someone joining later mostly doesn’t happen. We write the budtender line, build the physical assets, and track sign-up rate by shift, because enrollment is a floor-execution number before it’s a marketing one.

They should, and whether they can depends on your stack rather than the program design. If in-store, the ecommerce menu and delivery run on separate systems, a member ends up with a split record and a reward they can’t use where they’re standing. That gets settled before launch: one member identity across every channel, or the program generates support tickets instead of visits.

Yes, and that’s the reporting we insist on. Sign-up counts flatter every program. The numbers that show it working are repeat-visit rate among members versus non-members, average basket by tier, and how many members have gone quiet against their own pattern. We report those three monthly against reward cost, so the return is visible rather than assumed.

Related services

Goes well with.

Spark Advertising mark

See the difference on your own brand.

Book a call and we’ll show you what an AI-native team finishes by hand: on your site, your competitors, your category.