The working system

How do multi-unit restaurants track guest complaints across locations?

The same way at every store. One taxonomy for every location, one queue per store, a rule that separates a bad night from a pattern, a named owner for every pattern, and a weekly roll-up that shows which stores are improving. The rest of this page is how to run that, whether you do it in a sheet or in software.

Get Started

Pricing is published per location. No annual lock-in, no location minimum.

Why does complaint tracking break past two or three locations?

Because the tracking lives in people's heads and inboxes, and past the third store no single head holds all of it. Four things fail at once.

  • The GM inbox becomes a black hole. Notifications land on a phone between rushes. The ones that did not get a reply that day are gone by Friday, and nobody above the GM sees them.
  • The corporate dashboard nobody opens. A tool rolls every store into a score. The score moves slowly and gets checked before the monthly meeting. It cannot tell you which store has a fryer problem.
  • The spreadsheet decays. An area director builds a tracker. It is accurate for three weeks. Then one store stops filling it in, the columns drift, and by month two it records who was diligent, not what guests said.
  • The reply gets treated as the fix. A guest writes about cold fries. The store apologizes, sends a coupon, and marks the review handled. The fries are still cold. The next guest writes the same review to a manager who never saw the first one.

Tracking across locations works only when the record is the same at every store, lives outside any one inbox, and keeps "we replied" separate from "we fixed it."

What should one complaint record contain?

Eleven fields, filled the same way at every store.

The complaint record
Store
The location, by the name on the schedule.
Date and daypart
The shift the guest is describing, not the day the review posted.
Source
Google, Yelp, DoorDash, or Uber Eats.
Category
One value from the fixed taxonomy below. Never free text.
Guest's words
Pasted verbatim. Summaries lose the detail the shift leader needs.
Severity
A short scale you can defend: annoyance, lost visit, health or safety.
Owner
One person's name.
Action
The specific change that person will make, in one sentence.
Due date
A day, not "this week."
Status
Open, in progress, awaiting evidence, closed, reopened.
Evidence
What shows the action happened. A photo, a signed checklist, a changed prep step.

The category field is what makes cross-store comparison possible. Ten managers describing the same problem produce ten phrases: "wrong order," "no sauce," "got someone else's bag." A person knows they are all order accuracy. A spreadsheet does not. One shared category, set when the complaint is logged, lets the group count the same thing at every store.

What taxonomy should every store share?

A short, fixed list of operational categories, each one something a shift leader can act on tonight. This is the list we run with:

  • Order accuracy. Wrong, missing, or unmodified items.
  • Food quality. Temperature, taste, portion, cook.
  • Speed of service. The wait at the counter, in the line, or at the window.
  • Hospitality. Rude, indifferent, or absent staff, and how a mistake was handled.
  • Cleanliness. Dining room, restrooms, tables, anything visible in the kitchen.
  • Drive-thru. The lane itself: the speaker, the window handoff, the line.
  • Delivery packaging. Spills, cold food on arrival, missing utensils or sauces in a sealed bag.
  • Pricing and value. Portion for the price, surprise fees, a promotion not honored.
  • Wait and seating. Hosting, table availability, how the wait was communicated.
  • Facility. Broken equipment guests notice, parking, lighting, dining room temperature.

The rule for the list: a category is operational only if a shift leader can act on it tonight. "Order accuracy" passes, because tonight's lead can put a bag check at the window. "Guest experience" fails, because nobody can act on it. If a category needs a meeting to become an action, it is a report heading, not a category.

Keep it fixed. Stores do not add categories. If a store wants a new one, the group decides, and the change applies everywhere the same day.

How do you tell a bad night from a pattern?

A pattern is at least three complaints in the same category at the same store inside a set window. Anything short of that is a bad night.

One complaint can be anything. Two is a coincidence worth noticing. Three in the same category at the same store, close together, is the store telling you something is structurally off. Set the window in advance, keep it the same for every store, and never move it to make a store look better or worse.

This is the rule Replio uses in production, so the number is not invented for this page. Three complaints in the same category at the same store inside the measurement window count as a pattern. Fewer do not.

One-offs get three things: reply, log, move on. The log matters, because a one-off becomes the first of three if the category shows up twice more. Do not assign an owner to a one-off. You will bury your managers in actions that were never patterns, and they will stop reading the ones that are. The exception is severity. A health or safety complaint goes to an owner on the first one.

Who owns a pattern, and how do you assign it?

One named person per pattern per store. Never a department, never "the team." When a pattern belongs to everyone, it belongs to no one.

The assignment carries four things: the guest's words verbatim, the category, the due date, and what evidence closes it. In practice: "Store 12, dinner, order accuracy. 'Missing my sauces two visits in a row.' Due Thursday. Closes with a photo of the bag-check card at the second window."

The owner is whoever can change the behavior on the floor. For a store-level pattern that is the general manager or the shift leader for that daypart. For a pattern at several stores in the same window, an area director owns it, because a fix made at one store will not hold across five.

The owner's job is four steps: acknowledge, act, attach the evidence, close. Unacknowledged by the due date, the pattern moves up one level. Silence should be visible.

What does the weekly roll-up look like?

A table with stores down the side and categories beside them, showing this window against last, which patterns are open, who owns them, and how old they are. The sample below uses placeholder stores.

Sample data
StoreCategoryLast windowThis windowOpen patternOwnerAge
Store 12Order accuracy25OpenGeneral manager6 days
Store 12Speed of service31Closed, watchingDinner shift lead21 days
Store 31Delivery packaging14OpenArea director12 days
Store 31Hospitality01None
Store 47Cleanliness43Open, carriedGeneral manager19 days
Store 47Food quality10None

Read it in three passes. First, any row where this window reached three and last window was lower: a new pattern, and it needs an owner by Monday. Second, any open pattern older than the window: that fix is stuck or did not work, and it goes to the top of the call list. Third, any row that fell from three or more to under three: a fix that may have held. The next window decides.

Corporate reads the whole table. Each GM reads their own rows. Both see the same counts. Counts, not scores, because a count can be traced back to the reviews it came from and a score cannot.

How do you know a complaint was actually resolved?

Not from the action. From the next window of feedback.

The follow-up evidence closes the action: the photo of the bag-check card, the signed checklist, the changed prep sheet. That shows the owner did the thing. It does not show the thing worked. A completed action does not prove the problem stopped. Only the next reviews decide.

After the next window, record one of four states.

  • Improved. The category count at that store fell against the window before the action.
  • Worsened. It rose.
  • Returned. It fell, then came back in a later window. The fix did not hold, or the store drifted.
  • Insufficient information. The store did not get enough feedback in the window to say. Say so. Do not round a thin window up to a win.

The fourth state keeps the other three honest. A store that gets a handful of reviews a month cannot support a verdict every week. When the state is worsened or returned, the action was wrong, not the guest. Change the action, keep the owner, run the window again.

How does this work when reviews come from delivery platforms too?

Same record, same taxonomy, same queue. Delivery complaints are not a separate program.

DoorDash and Uber Eats feedback comes from the reports those platforms give you, not from a public page you can refresh. Pull the reports on a schedule, log each complaint with the same eleven fields, and file it under the same categories. Order accuracy applies to a sealed bag exactly as it applies to a tray.

Keep them together because the causes overlap. A store with an accuracy problem at the window usually has one on delivery orders too, because the same line is bagging both. If delivery complaints sit in their own tracker, the count at that store splits in two, neither half reaches three, and the pattern never gets called.

Where does software fit, and where does Replio fit?

A shared sheet works for two stores. It decays past five.

At two or three stores, a spreadsheet with the eleven fields and the fixed taxonomy is enough, if one person owns it and fills it every day. The failure is never the sheet. It is the daily filling. Past five stores the reading outgrows one person, categories drift, and the weekly roll-up becomes a Sunday night job that stops happening. That is when software earns its place: reading every platform, applying the taxonomy the same way every time, counting toward the threshold, and keeping owners and due dates visible without anyone building the table by hand.

Replio is built around this system. It reads Google and Yelp reviews, plus DoorDash and Uber Eats feedback loaded from your reports, and categorizes each complaint into a fixed operational taxonomy. It flags a pattern at three complaints in the same category at the same store inside the window, assigns a named owner, and drafts replies for a person to approve. Nothing posts without your tap. After the action, it measures the complaint rate at 30, 60 and 90 days, and marks the receipt insufficient when the window has too few reviews to say anything. What Replio is covers the whole loop in one page, and the product page shows the screens.

Your guests already told you which store is slipping.

Replio reads every platform, counts the pattern, gives it an owner, and keeps the problem from getting lost.

Get Started

Pricing is published per location. No annual lock-in, no location minimum.

FAQ

Frequently asked questions

Do we need software to track complaints across locations?

Not at two or three stores. A shared sheet with the fields above and a fixed taxonomy works if one person fills it every day. Past five stores the reading, the categorizing, and the weekly roll-up outgrow one person, and that is when software earns its place.

How many complaints make a pattern?

Three in the same category at the same store inside a set window. Fewer is a bad night: reply, log it, move on. Severity overrides the count. A health or safety complaint goes to an owner on the first one.

Who should own a complaint at a franchise group, the franchisee or corporate?

The franchisee's general manager owns a store-level pattern, because that is the person who can change the floor tonight. Corporate owns the taxonomy and any pattern that shows up at several stores at once, because a fix made at one store will not hold across the system.

Should we track complaints from delivery apps separately?

No. Log DoorDash and Uber Eats feedback from your reports into the same record and the same categories as everything else. Splitting them means neither half reaches the threshold, and the pattern never gets called.

How long before we know a fix worked?

The next window of feedback decides, not the completed action. Check the category count at that store at 30, 60 and 90 days against the window before the fix. If the window has too little feedback to say, mark it insufficient and keep the pattern open.

Keep reading