Restaurant Ad Metrics: Why Cost per Verified Visit Belongs at the Top
Put cost per verified visit at the top of your restaurant ad metrics. Learn the exact formulas, costs, boundaries, and weekly scorecard.
Cost per verified completed visit belongs at the top of a restaurant's acquisition scorecard because it is the first ad metric that reaches the dining room. It is not the only metric: clicks and conversion rates tell you where the path is breaking, while matched checks, contribution, capacity, and repeat visits tell you whether those visits were worth buying.
That order matters. A campaign can earn cheap clicks and still produce no known visits, or buy visits that lose money after every cost is counted. The broader restaurant marketing ROI guide covers the whole measurement system; the rule here is simpler: diagnose with the early numbers, but judge acquisition at the door.
“One of the things that I’m really trying to learn is how to calculate my cost per consumer ... and turn whatever it is that I market into translatable sales.”
Restaurant owner
Two cost-per-visit formulas answer different questions
Media cost per verified completed visit event tells you how efficiently ad spend produced qualifying arrivals. Full campaign cost per unique identified first-time guest tells you what it cost to acquire a new person after the rest of the campaign bill is included.
| Metric | Exact calculation | What the denominator counts |
|---|---|---|
| **Media spend per verified completed visit event** | Media spend assigned to one eligible, fully matured campaign cohort and measurement window ÷ verified completed in-person visit events attributed under the written campaign rule | Visit events, not people. If the rule allows two separately verified visits by one guest, that is two events. For a first-time acquisition campaign, count only the first qualifying event and report later visits separately. |
| **Full campaign cost per unique identified first-time guest** | All applicable campaign acquisition costs for one eligible, fully matured cohort ÷ unique identified first-time guests with a verified completed in-person visit and a matched paid, non-voided settled check | Distinct first-time people. The same guest counts once even if that person later returns or pays more than one check. |
Do not switch the numerators. The media-only measure answers whether the ad spend reached the restaurant efficiently. The full-cost measure answers what acquiring a new identified guest cost after creative, software, labor, and other applicable campaign expenses. Neither one proves profit.
A claim, reservation, party, cover, and check are not interchangeable with a visit
A verified completed visit is an in-person event confirmed under a rule written before launch. A claim or reservation is a response; a party is a dining group; a cover is one person served; a check is a payment record. None of those becomes a visit merely because it exists.
| Term | Use this definition before launch |
|---|---|
| **Response** | One retained campaign action, such as an eligible claim, reservation, or message reply, with a campaign ID and person or record ID. |
| **Eligible response** | A response that passes the written location, offer, date, duplication, staff, and exclusion rules for this campaign. |
| **Arrival window** | The fixed time after response during which a qualifying in-person visit may occur. |
| **Known visit outcome** | The full arrival window elapsed and the restaurant reconciled the record as a verified completion or a final no-visit. Immature and unresolved records stay outside the conversion denominator and are reported separately. |
| **Identified guest** | One person whose retained identity connects the campaign response to the restaurant record. Identity coverage must be reported because an anonymous cover cannot be assumed to be that person. |
| **Verified completed visit** | An in-person completion confirmed by the restaurant's written procedure. A click, claim, reservation, party, cover, delivery order, pickup order, or unmatched check is not enough by itself. |
| **Settled check** | A paid, non-voided check reconciled to the identified guest and campaign. |
| **Directly matched net settled sales** | The sum of paid, non-voided settled check amounts joined to the campaign identity, less recorded refunds. This compact label is used below. |
| **Repeat-eligible guest** | An identified first-time guest whose initial in-person visit was verified, whose initial paid, non-voided settled check was reconciled, and who passes the written return-cohort rules. |
| **Repeat visit** | A later verified in-person completion with its own reconciled outcome and paid, non-voided settled check inside a stated return window. |
The restaurant-side join matters. A consistent POS code or dedicated item can preserve the campaign connection; if staff skip that step, attribution can break even when the guest really came in. If you need the implementation from ad click through settled check, use the Facebook and Instagram sales-tracking workflow.
When a reservation is the response, calculate what that reservation is actually worth, but keep it in the response row until the guest's in-person completion is verified.
The $1 response and 10% show-rate example is math, not a benchmark
If media cost per eligible response is $1 and 10% of that same matured response cohort completes a verified in-person visit, then media spend per verified visit is $1 ÷ 0.10 = $10. That is transparent arithmetic from a commonly used internal example, not a universal restaurant target or evidence that a $10 visit is profitable.
The shortcut is valid only after every eligible response in the cohort received the full arrival window and every visit outcome was reconciled. This example also assumes the written rule allows at most one qualifying visit event per response. Use the same media-spend basis and the same eligible response population in both parts:
- Media cost per eligible response = assigned media spend ÷ eligible responses in the matured cohort.
- Mature visit conversion = matured eligible response records whose reconciled, known outcome was a verified completed in-person visit ÷ those same matured eligible response records. A record matures only after its full arrival window elapses and its outcome is reconciled and known; an early completion stays out of the numerator until it enters that denominator.
- Media spend per verified completed visit event = media cost per response ÷ mature visit conversion.
Pending, disputed, immature, and unreconciled responses belong in separate counts. Quietly treating them as no-shows makes the rate look worse; silently dropping final no-visits makes it look better.
Clicks and conversion rates tell you what to repair
Clicks, click-through rate, watch rate, landing-page conversion, and cost per response remain useful because they locate the first weak handoff. They are gauges, not dining-room results.
One Feast audit of a fine-dining lunch campaign reported strong attention—38% thumb-stop, more than 25% hold, and about 8% click-through—alongside an 11.2% click-to-signup rate, $8 cost per signup, and a reported 1.9% show rate. The ad attracted attention, but the campaign still lost people at signup and before arrival. Because the signup count is only reported as “100+” and the verified-visit denominator is not exact, this example does not support a recalculated cost per verified visit.
That is why the upstream metrics stay on the page. A poor click rate points toward the ad or audience. Good clicks with weak response point toward the page, message, or offer. Healthy response with weak mature visit conversion points toward the visit reason, expiration, reminders, reservation handoff, capacity, or front-of-house execution. One number cannot tell you which repair to make.
Every weekly line needs its own unit and known-outcome population
The weekly scorecard should show the path from platform activity to business economics without compressing every result into “ROI.” Read it in order: platform activity, response, completed visit, directly matched settled check, observed movement, controlled incrementality, and contribution or profit after applicable costs.
| Weekly line | Numerator ÷ denominator or total | Decision it supports | What it cannot prove |
|---|---|---|---|
| Platform activity | Platform-defined impressions, views, watches, clicks, and spend, each labeled in its native unit | Whether delivery and attention changed | A visit, sale, or human identity |
| Cost per eligible response | Assigned media spend ÷ eligible unique responses in the same matured cohort | Whether buying a trackable response is getting more expensive | Arrival or sales |
| Mature visit conversion | Matured eligible response records whose reconciled, known outcome was a verified completed in-person visit ÷ those same matured eligible response records. A record matures only after its full arrival window elapses and its outcome is reconciled and known; an early completion stays out until then. | Whether responders came in | Whether the campaign caused the visit |
| Media spend per verified visit event | Assigned media spend for the same eligible, fully matured cohort ÷ verified completed in-person visit events under the campaign rule | Paid-media efficiency at the restaurant door | New-customer acquisition cost, contribution, or profit |
| Identity coverage | Verified visit events with a retained guest identity ÷ all verified visit events observed under the same rule | How much of the visit population can be joined downstream | That an unidentified visit came from the ad |
| Check-match coverage | Identified verified visits with a matched paid, non-voided settled check ÷ identified verified visits whose check reconciliation is complete | Whether visit records connect to usable sales records | Sales from unmatched visits |
| Directly matched net settled sales | The defined directly matched net settled sales total for the campaign cohort and window | Sales linked to identified campaign guests | Causal lift, contribution, or profit |
| Full cost per unique identified first-time guest | All applicable campaign acquisition costs for the same eligible, fully matured cohort ÷ unique identified first-time guests with verified completion and a matched paid, non-voided settled check | The full acquisition cost per distinct new guest | The value of later visits |
| Mature repeat rate | Matured repeat-eligible guests whose reconciled, known outcome was a verified return in the stated window ÷ those same matured repeat-eligible guests. A record matures only after its full return window elapses and its return outcome is reconciled and known; an early return stays out until then. | Whether acquired guests returned | Why they returned or what future cohorts will do |
Show counts beside every rate: total eligible, mature, completed, no-visit, unresolved, unidentified, and unmatched. For observed movement, compare like-for-like covers or checks, first-time guests, repeat guests, and average check while noting holidays, events, closures, open hours, and capacity changes. Revenue alone can rise while covers fall because spending per guest increased. That is observed movement, not causal proof; a defensible holdout or comparable control is needed for an incremental estimate.
If a report provides an estimate instead of an identity-to-check join, treat “estimated” as a different evidence label rather than placing that amount in the directly matched net settled sales row.
Put every cost in one place and count it once
The full ledger needs two visible subtotals: campaign acquisition cost for the cost-per-new-guest formula, and matched-check variable cost for the contribution calculation. Keeping them together prevents a missing expense; keeping the subtotals separate prevents the same expense from being deducted twice.
| Cost | Treatment |
|---|---|
| Media | Actual spend assigned to this campaign and window |
| Creative production | Photography, video, design, copy, or editing bought for this campaign |
| Influencer compensation and commercial rights | Cash, fees, and separately purchased usage rights that apply |
| Offer or reward | Use the actual incremental food, packaging, and fulfillment cost once. Do not also add menu face value or subtract the same reward again later. |
| Software or platform | Direct charge, or the campaign's allocated share of a fixed charge |
| Agency or management | Direct charge, or its allocated share when the work covers several campaigns |
| Incremental campaign labor | Paid labor added for setup, approval, messages, reconciliation, or reporting |
| Other campaign-specific cost | A named expense with its amount; never a plug for an incomplete ledger |
| Matched-check variable cost | Food, packaging, processing, fulfillment, and incremental service labor for the matched checks, excluding any offer cost already counted above |
Choose one written allocation basis for shared software, platform, and agency charges before launch—for example, the campaign's share of active campaign days or media spend during the billing period. Use it every week. If a bundled fee already contains creative, messages, or management, keep that amount inside the bundle instead of adding each component again.
Directly matched net settled sales minus matched-check variable costs and campaign acquisition costs is a contribution view only when all three use the same campaign and time window. It is not store profit, and it is not causal incrementality. If directly matched net settled sales already reflect a discount, do not subtract the discount's face value again. The restaurant ROAS guide goes deeper on the revenue and cost boundary.
Repair the first weak handoff, one change at a time
The scorecard earns a next action only when you change the first weak step and hold the others steady. Otherwise, the next report cannot tell you what helped.
- Response cost is high: keep the arrival procedure fixed and test one change to the ad, audience, page, or offer based on the first weak upstream gauge.
- Mature visit conversion is low: keep the ad fixed and test one change to the visit reason, time limit, reminder, booking handoff, or operating capacity.
- Visits occur but checks do not match: stop making sales claims and repair the identity, staff, POS-code, and reconciliation steps.
- Directly matched net settled sales are present but contribution is weak: change the offer cost, average check, media cost, or another single cost driver; more clicks do not repair bad check economics.
- First visits work but repeat behavior is poor: inspect the visit experience and permissioned follow-up using the same matured repeat-eligible cohort in both parts of the rate. An early return stays out of the numerator until its full return window elapses and its outcome is reconciled and known.
The restaurant ads diagnostic covers the deeper keep, repair, or stop decision. No universal cost per visit can make that decision for you; the limit has to come from your restaurant's check economics, capacity, and repeat value.
The math becomes hard when the campaign, guest, visit, and check live in different places
You can maintain this scorecard manually, but every row depends on the same campaign and guest identity surviving the trip from response to arrival to payment. A spreadsheet does not fix a missing ID, an unrecorded visit, or a check that was never joined.
Feast's Full Package uses a campaign page to capture a guest phone number, supports follow-up SMS, and can match payment using the same phone identity to campaign sales in supported restaurant POS systems. Read that report as POS-linked campaign sales—not proof of causal lift, contribution, or profit—and keep the cost ledger beside it.
Cost per verified completed visit belongs at the top because it makes the restaurant door the acquisition finish line. Keep the diagnostic metrics underneath it, then use full acquisition cost, matched-check economics, and mature repeat behavior to decide whether to keep buying those visits.