Multi-location
The brand average
hides the one that’s slipping.
Run eight sites and most dashboards give you one number. It is the average of a branch that is thriving and a branch that is quietly losing its regulars, and it tells you nothing about either. Habitu scores every location on its own, ranks the weakest first, and lets a campaign go to a single site.
Sites arrive from Square carrying their name, address, timezone and opening hours.
Each one gets its own visit, redemption, earn and enrolment rates for the month.
Each site is read against its own last month and against your brand's own averages, and the ones that need attention float to the top.
Build an audience from the guests who actually order at one branch, and send to them alone.
What is a multi-location loyalty program?
A multi-location loyalty program runs one membership across every branch of a brand, so a guest earns at any site and spends at any other. The part that matters to a franchise operator is the reporting underneath it: whether each location is measured on its own, and whether you can act on one of them without touching the rest.
- Location signal
- One label per site per month, chosen from eight. The most severe one wins, so a branch never shows a wall of warnings.
- Brand average
- This month's brand-wide redemption, earn and enrolment rates. Every site's own three rates are read against it, so the comparison is to you rather than to an industry table.
- Needs attention
- The two severe bands. Sites in them are ranked above everything else, most severe first, before anyone opens a spreadsheet.
- Location-scoped audience
- A group defined by where guests actually ordered, or by the home store they saved. It is how a campaign reaches one branch.
Location signals
One number for eight sites tells you nothing about any of them.
Habitu computes each location's visit, redemption, earn and enrolment rates for the month. Visits are read against that same site last month; the three loyalty rates are read against your own brand-wide rates for the same month. What comes back is a single labelled signal per site: the most severe one, not a list to triage.
Eight signals, four severities
No visits and visits down are critical. Low redemptions, low earn rate and weak enrolment are warnings. Top performer and visits recovering are positive. Everything else reads healthy.
Scored against you, not a benchmark
The baseline is your own brand's redemption, earn and enrolment rate this month, computed from live visit data rather than read off a nightly rollup.
Volume floors, so a quiet site cannot cry wolf
A visit-trend signal needs at least three visits last month to fire, and a rate signal at least three this month. Below that, only the no-visits flag can fire.
One signal per site
The highest-priority signal wins outright. A branch with no visits at all is not also told its redemption rate looks low.
Locations.
Every site measured against your own brand average, ranked so the one that needs you is first.
Only the highest-priority signal is shown for a site, so a branch with no visits is not also told its redemption rate is low.
The command deck
The weakest site is the first thing you see.
Location Insights is a ranked list, not a grid you have to read. Sites that need attention are grouped and sorted above the ones that do not, most severe first, then by volume. Select one and the panel beside it is about that branch alone.
Needs attention, then looking good
Two sections with live counts. Critical sorts above warning, and inside a band the site with the most visits comes first.
One site's own panel
Revenue this month, visits, redemption rate and average transaction, for the branch you selected, not for the brand it sits inside.
Below, near, or above your average
Redemption rate and average transaction each carry a verdict against the brand. Under 80% of the brand average reads below; over 110% reads above; the band between them reads near. Revenue and visits carry the change on last month instead.
Revenue closes on local time
A site's revenue for the month is bounded by that site's own timezone, so a branch three hours from head office is not credited against somebody else's calendar month.
Old Mill
Visits down
Visits at this location are under 80% of last month. A win-back to guests who used to come here is the usual first move.
Create reach out →This month
This is the Location Insights screen itself: the command deck, its ranked rail and the 2×2 KPI grid, rebuilt from the screen’s own layout and tokens. The two figures showing an em dash are the currency ones: the product renders them in your brand’s own currency, and this site never picks one.
Acting on one site
A campaign can go to one branch.
A brand-wide send is the wrong instrument for a single quiet Tuesday site. It spends goodwill at seven locations to fix one. The audience builder can define a group by where guests actually ordered, so the message lands with the regulars of one branch and nobody else.
Built on real orders
Add a condition for guests who ordered at a named location within a window you set. It resolves against the order that was placed, not an assumption about where someone lives.
Not where they say they live
A home-store field exists in the builder, but nothing writes it at sign-up yet, so we do not offer it as a filter, since it would match nobody. Location targeting reads the order that was actually placed.
From a flagged site to a draft
A site that needs attention carries a Create reach out button that opens the campaign builder on a template matched to that signal. The audience is still yours to choose.
Sent where sending is live
The in-app inbox and email dispatch today. Push and SMS can be composed and previewed but do not send yet, and WhatsApp can only be previewed.
Launch campaign.
Narrow the audience to the guests who actually ordered at one site.
Live send channels are the in-app inbox and email. Push and SMS can be composed and previewed here but do not dispatch yet; WhatsApp can only be previewed.
Per-location operations
Every site is configured on its own.
Branches are not interchangeable. One closes at nine and one at midnight, one runs a split lunch and dinner service, one is not ready to take app orders at all. Habitu holds those differences per location instead of forcing a brand-wide setting on all of them.
Hours per day, per site
Opening windows sync from Square for each day of the week, including split lunch-and-dinner days and a close that runs past midnight. App hours can override the POS ones, and survive the next sync.
Last orders, not closing time
Ordering stops at closing time minus the longest prep time in the guest's basket, and the app warns them thirty minutes before that point rather than at the door.
Dark until you turn it on
A newly synced store does not appear in the guest app. Someone activates it deliberately, so a POS import cannot publish a site whose hours and photo are not ready.
Sold out here, not everywhere
An item can be out at one branch and on sale at the rest. The catalogue counts how many sites it is out at, and the guest's basket is checked against the branch they picked.
Old Mill.
What this site does differently from the rest of the brand.
Hours are evaluated in this site's own timezone. A newly synced store stays hidden from the guest app until someone switches it on.
Questions operators ask.
How do I compare performance across all my locations?
Every location is scored on its own visit, redemption, earn and enrolment rates for the month. Visits are compared with that same site last month; the redemption, earn and enrolment rates are compared with your brand's own averages for the same period. The Location Insights screen ranks them weakest first. The all-locations table sorts on visits, members, redemption rate, earn rate, average transaction or last activity, so you can read the whole estate or drill into a single site.
Can I send a campaign to just one location?
Yes. The audience builder takes a condition for guests who ordered at a named location inside a window you choose. That group is resolved at send time rather than pasted in as a fixed list. Live send channels today are the in-app inbox and email.
How do locations get into Habitu?
They sync from Square, which brings the name, address, timezone and opening hours with them. Three paths keep the list current: a webhook when something changes in Square, a daily reconciliation job, and a Sync now button in the dashboard. The list updates live when rows change, so a sync does not need a page reload.
Can each location have different opening hours?
Yes, per day of the week, including split lunch and dinner windows and a close that runs past midnight. Hours arrive from your POS, and each site can hold a separate set of app hours for when what the app should show differs from what the POS says. Every site's hours are evaluated in its own timezone.
Can I run different loyalty rules at different locations?
No. A brand runs one loyalty programme, so earn rules and tiers are the same everywhere. A member who earns at one branch can spend at another, which is the point of joining. What is per-location is the layer above it: the scoring, the ranking, the campaign targeting, and the operational settings each site carries.
What happens when I open a new location?
It appears in the dashboard on the next sync and starts hidden from the guest app. Someone has to switch it on deliberately. That is what stops a POS import from quietly publishing a site whose hours, image and description are not ready for guests yet.
Can I mark an item sold out at one location only?
Yes. Availability is held per location rather than as a single brand-wide flag, and the catalogue shows how many of your sites an item is currently out at. On the guest side the basket is checked against the branch they picked, so an item that is unavailable at their site is caught before checkout.
What happens if my POS connection stops syncing?
The locations screen tells you. Because the ranking compares your sites against each other, a stale mirror would quietly change which one looks like it needs attention, so when Square authorisation expires or the connection is dropped, a banner on the screen says these locations are no longer syncing, and links straight to reconnecting. A sync run that fails on its own shows as an error on the sync status beside the Sync now button.
Bring your worst-performing site.
Thirty minutes on your own locations. Not a slide deck.
Book a demo →