Restaurant marketing attribution by location: count covers, not clicks

Restaurant marketing attribution by location, done with covers from Toast or Square: separate ad lift from LTOs, delivery and weather at every store you run.

By The Countlift team · · 11 min read

Restaurant marketing attribution by location comes down to one question per store: how many extra covers did the ads bring in that wouldn’t have come anyway? The reliable way to answer it is to compare each location’s weekly covers with a matched set of your own locations where spend didn’t change, using the counts your POS already keeps.

Ad platforms can’t do this for you. Meta sees an impression, Google sees a tap on directions, DoorDash sees a sponsored-listing order. None of them saw the four-top that walked in on Friday after a week of Instagram ads. Your Toast or Square terminal did, and it knows which location they sat at.

Why click attribution can’t tell you which restaurants the ads filled

Most restaurant visits leave no click trail. A group chat picks the place. Someone remembers the patio from a reel they scrolled past on Tuesday. A regular walks in because it’s Thursday. The ad may have mattered in all three cases, or in none, and no pixel can tell which.

Meanwhile every platform counts the guests it can link to its own ads, inside its own attribution window. Add up Meta, Google and the delivery apps and you will often get more “conversions” than your POS recorded covers. Nobody is lying. They are each claiming the same people, and some of those people were coming anyway.

Nearly 75%
of restaurant traffic now happens off-premises: takeout, drive-thru and delivery.Source: National Restaurant Association, 2025 Off-Premises Restaurant Trends report

That number matters for attribution because your campaigns are not all trying to move the same thing. A dine-in LTO pushed on paid social, a sponsored listing on Uber Eats and a lunch-catering search campaign aim at different counts. The POS can split them. The ad platforms can’t.

Covers, checks or sales: what to measure at each location

Pick one count per brand and keep it. Covers work best for full-service and casual dining. Check count works better for quick service and fast casual, where one check is roughly one visit. Keep net sales as a second read, but don’t make it the headline: check average moves with price increases and menu mix for reasons that have nothing to do with advertising.

Which outcome to attribute ads to, and what can go wrong with each
OutcomeWhere it comes fromBest forWatch out for
Covers (guest count)Guest count by location in Toast or SquareFull-service and casual diningServers who skip the guest-count prompt. Audit the default before you trust the trend.
Check countOrder or check totals by locationQuick service and fast casualCatering and large group orders count as one check
Net salesSales summary by locationA second read next to a countPrice rises and LTO pricing move it with no change in traffic
Check averageNet sales ÷ checksSeeing whether an LTO traded guests upNot an outcome to credit ads with on its own

Then split by dining option. Toast tags every order with one (dine in, takeout, delivery, third-party), and most POS systems can report by order source. A dine-in campaign should be judged on dine-in covers. A delivery promo should be judged on total checks across channels, because a promo that moves a dine-in regular onto DoorDash adds an order and loses a cover.

The data you need for location-level attribution

  • A location list. POS location ID, the market it sits in (a DMA in the US), open date, close date if any, and a note on patio seating.
  • Weekly covers by location and dining option. A year or more, so last spring’s patio season and last December are visible. Six months is the practical floor.
  • Spend by market, channel and week. Meta and Google both report spend by geography. Delivery-app ad spend comes from each merchant portal, usually by store.
  • A calendar of everything else. LTO start and end dates and which markets ran them, price changes, remodels, closures, local festivals and big catering weeks.
The three exports behind restaurant attribution by locationCovers from the POS, spend by market from the ad platforms and a calendar of LTOs and openings are joined into one weekly table per location, which feeds a comparison of test locations against their twins to give extra covers per location.WHAT GOES INTO A LOCATION-LEVEL READPOS · TOAST, SQUARECovers by location,day and dining optionADS · META, GOOGLESpend by market,channel and weekCALENDARLTOs, price changes,openings, closuresWEEKLY PANELLOCWKCOVERSSPENDA1142,140$940A2142,090$940C7141,610$0C9141,880$0One row per location per weekCOMPARISONTest locationsvs. their twinExtracoversper locationNO GUEST NAMES, CARD NUMBERS OR ORDER LINES NEEDED
Three exports, one weekly panel. Covers come from the POS, spend from the ad platforms and the calendar from your marketing team. No guest names, cards or order lines are needed.

How to separate ad lift from everything else at each location

For every location where spend changed, build a reference from locations where it didn’t. Weight the reference so it tracked the location closely for months before the change. After the change, the gap between the two is the lift. That is the whole idea, and it’s why the method copes with restaurants so well: a brand-wide LTO, a cold snap across the region or a holiday weekend hits both sides, so it drops out of the gap.

A brand-wide LTO lifts test locations and their twin; paid media lifts only the test locationsIllustrative. Weekly covers indexed to 100: a green line for the test locations and a grey dashed twin. In weeks 9 to 14 an LTO runs at all locations and both lines rise about 4.5 percent. The test locations, which also get paid media, rise about 3.5 percent more. That extra gap, shaded green, is the ad lift.WEEKLY COVERS, INDEXED (100 = BEFORE)95100105110WEEKS 9–14LTO at all 30 locations, paid push in test metros onlyAd lift ≈ +3.5%LTO, both groups ≈ +4.5%1591420WEEKS →8 test locationsTwin from 22 steady-spend locationsAd lift
Illustrative. A brand-wide LTO lifts the test locations and their twin alike. Only the extra rise in the test locations, where paid media also ran, counts as ad lift.

Read results by location, but make decisions with some pooling. A single store’s week is noisy. Rain, a home game or one 30-top birthday party can move it 5–10%. Location reads are excellent for ranking stores against each other. They are weaker as stand-alone verdicts on one store’s month.

Worked example: attributing an LTO push across eight locations (illustrative)

A 30-location casual-dining group runs a brand-wide LTO for six weeks. In two metros, covering eight locations, it adds $7,500 a week of paid social and streaming video on top of normal spend: $45,000 in total. The other 22 locations get the LTO and their usual spend.

The eight test locations ran about 8% above their prior six weeks. A naive before-and-after read would credit the media with roughly 6,800 covers. But the 22 comparison locations, which also had the LTO, rose about 4.5%. Weighted location by location, the gap comes to 504 extra covers a week.

Illustrative. Six-week push, $937.50 of added spend per location per week
LocationCovers / week beforeLift vs twinExtra covers / weekCost per extra cover
Metro A · 12,000+6.0%120$7.81
Metro A · 22,000+5.0%100$9.38
Metro A · 31,800+4.0%72$13.02
Metro A · 41,600+0.5%8$117.19
Metro B · 11,800+5.0%90$10.42
Metro B · 21,700+4.0%68$13.79
Metro B · 31,700+2.0%34$27.57
Metro B · 41,600+0.75%12$78.13
All eight14,200+3.5%504$14.88
  1. Extra covers. 504 a week × 6 weeks = 3,024.
  2. Cost. $45,000 ÷ 3,024 = $14.88 per extra cover.
  3. Sales. At a $28 average spend per cover, 3,024 × $28 ≈ $84,670. On sales alone that looks like a 1.9× return.
  4. Margin. If about 40% of each extra check is left after food cost and hourly labor (use your own figure), a cover is worth $11.20 on the first visit. 3,024 × $11.20 ≈ $33,870, against $45,000 of spend.
  5. Cut the two that barely moved. Metro A · 4 and Metro B · 4 took $11,250 and returned 120 covers. The other six took $33,750 for 2,904 covers, or $11.62 each: about break-even on the first visit, before any return visits.
Cost per extra cover at eight locations against the value of a coverIllustrative. Three locations, in green, buy extra covers for less than the 11.20 dollars a cover is worth after food and hourly labor. Two, in grey, are close to break-even. Three, hatched amber, cost far more: 27.57, 78.13 and 117.19 dollars per extra cover.COST PER EXTRA COVER · BY LOCATIONILLUSTRATIVE$0$10$20$30$40+$11.20 = what a cover is worth after food and hourly laborMetro A · 1$7.81Metro A · 2$9.38Metro B · 1$10.42Metro A · 3$13.02Metro B · 2$13.79Metro B · 3$27.57Metro B · 4$78.13Metro A · 4$117.19Pays back on the first visitNear break-evenMove the budget
Illustrative. Cost per extra cover by location from the worked example, against the $11.20 a cover is worth after food and hourly labor. Two locations sit far off the scale.

When a location like A · 4 shows almost no lift, check its Friday and Saturday waitlist before you blame the creative. A store that’s full at 7pm can’t seat extra demand. Its budget is better spent two exits up the highway.

Delivery apps, LTOs and other restaurant-specific traps

Delivery apps grade their own homework

DoorDash and Uber Eats report the orders that came through sponsored listings and promos. Plenty of those customers were going to order from you anyway; the ad just sat on top of the search they were already doing. Measure third-party orders by location from the POS (if they flow in through an integration) or from merchant-portal exports, and compare them with twins exactly as you would covers. Then look at dine-in in the same weeks. A delivery promo that adds 200 orders and subtracts 150 covers added 50 visits, not 200.

Brand-wide LTOs cancel out; market-only LTOs don’t

An LTO that runs at all 30 locations shows up in the twin, so the gap isolates the media. An LTO tested in only the two metros that also got the media is a different animal: you’re measuring the menu item and the ads together. Either run the item everywhere or accept that the read covers the package. Just don’t report it as media lift.

Price changes and check average

A 4% menu price rise in one region lifts its sales 4% with no change in guests. That’s another reason to attribute on counts. If you must report sales, log price changes by location and date.

Weather, patios and the home team

Regional weather mostly cancels if the twin is built from locations that share it. Patio-heavy stores are the exception: a warm March helps them far more than an enclosed dining room down the road. Flag patio seating in your location list, and be suspicious of a spring read where the only stores that “responded” have patios. Big local games behave the same way, so keep them in the calendar.

Openings and remodels

A new store in a test metro pulls guests from its neighbours and inflates whichever group it lands in. Keep it out of the comparison until it has settled (our guide on how to measure a grand opening covers the ramp). Remodel closures go in the calendar for the same reason.

How long and how big a restaurant attribution test should be

Don’t run a two-week test. It will lie to you. Restaurant weeks are noisy and ads take time to build up, so plan six to eight whole weeks of media, a two- to four-week tail after it, and at least 26 weeks of clean history before it.

Size the budget before you start. If your locations average 1,800 covers a week and your test can detect a 3% lift, you need 54 extra covers per location per week to see anything. At a best-guess $15 per extra cover, that’s about $810 per location per week. Spend $300 and the test will almost certainly come back “not significant”, which tells you nothing. The geo holdout test guide walks through the minimum detectable effect in more detail.

Common mistakes in restaurant attribution

  • Crediting the season. Comparing this six weeks with the last six. Spring, patio season and holidays lift every store.
  • Adding up platform conversions. Meta plus Google plus DoorDash will claim more guests than you served.
  • Judging on ROAS. A 1.9× return on sales can lose money once food and labor are paid. Use cost per extra cover against contribution.
  • Spreading budget evenly. Full stores gain little. The worked example’s two weakest locations cost ten to fifteen times as much per extra cover as the best.
  • Ignoring dining option. Judging a dine-in campaign on total sales hides delivery swings, and judging a delivery promo on orders hides lost covers.
  • Letting new stores into the twin. A ramping store looks like lift in whatever group it joins.
  • Reading one store’s week as a verdict. Use location reads to rank; use pooled reads to decide.

Questions people ask about restaurant attribution

Can Toast or Square tell me which ads drove sales?

Not on their own. A POS records what happened at each location, not why. Pair POS covers or checks by location with ad spend by market, then compare locations where spend changed with matched locations where it didn’t. The difference is what the ads added. Countlift connects to both Toast and Square natively and does that comparison for you.

How do you attribute marketing to a specific restaurant location?

Map every location to the market its ads target, export weekly covers per location, and build a twin for each location from steady-spend locations that tracked it closely before the change. The gap after the change is that location’s lift. Divide the spend that reached it by the extra covers to get its cost per extra cover.

Should restaurants measure covers or sales?

Measure a count first: covers for full service, checks for quick service. Sales move with price rises, LTO pricing and menu mix, so a sales lift can appear without a single extra guest. Keep sales as a second read and use it to value each extra cover, not to decide whether the ads worked.

How do I measure DoorDash or Uber Eats ads by location?

Export third-party orders by store, from your POS if they flow into it or from the merchant portal, and compare stores where delivery-ad spend changed with matched stores where it didn’t. Check dine-in covers at the same stores over the same weeks, because a delivery promo can simply move existing guests to a different channel.

How many locations do you need for location-level attribution?

There’s no magic number, but the comparison needs options. With a dozen or more locations, a twin can usually be built that tracks each test store well. With fewer, results are more often directional. Larger spend changes and longer tests help small groups see effects they would otherwise miss.

The data for honest restaurant attribution is already sitting in your POS. Pull covers by location, line them up against spend by market, and the stores that the ads actually filled will separate from the ones that would have been busy anyway.

Next step

Put your own locations through the comparison.

Your first location report is free at any size. Bring a CSV of weekly sales and spend, or connect your POS and ad accounts.

Written by The Countlift team at First Byte in The Woodlands, Texas. Questions or corrections? Email hello@countlift.com.

Keep reading

IndustriesRetail store marketing attribution: how to measure in-store sales lift by storeRetail store marketing attribution that holds up: measure in-store sales lift by store from POS data so retail media, CTV and circulars stop double-counting.10 min read · Read guide →IndustriesUrgent care marketing ROI per clinic: visits, flu season and wait timesUrgent care marketing ROI per clinic: count daily visits, separate flu season from the ads, and stop paying for patients your busiest clinics can’t see.10 min read · Read guide →IndustriesHow to measure car wash membership marketing (members who pay, not sign-up clicks)How to measure car wash membership marketing by site: count paying wash-club members from DRB or Sonny’s, separate weather and value new vs converted members.10 min read · Read guide →MethodologyHow MarketTwin™ worksThe method behind every Countlift read: comparable locations, twin markets, intervals and placebo checks.Read the method →

See which of your markets your ads actually move.

Your first location report is free at any size. No card, no customer records.