Restaurant Marketing Plan Template: A One-Page Plan You Can Run for 90 Days
Copy a one-page restaurant marketing plan with a finished example, full budget, exact measures, checkpoints, and recovery rules.
A useful restaurant marketing plan fits on one page: one business goal, one suspected constraint, one guest and daypart, one offer, one main channel, a full budget, and a response-to-settled-check scorecard. Use ninety days as a working container for preparation, a controlled campaign, and mature results—not as a promise that every restaurant needs that long or will grow within it.
This plan turns your broader restaurant marketing work into one test your team can run and judge. Copy the blank version, replace every bracketed field, and do not launch while a required field is still blank.
Copy this one-page restaurant marketing plan
The finished plan should let a manager explain the goal, guest path, maximum spend, and stop rule without opening another document.
``text RESTAURANT MARKETING PLAN — BLAN
Restaurant/location: [NAME + ONE LOCATION] Working period: [START–END; 90 DAYS OR YOUR CHOSEN CONTAINER] Plan owner / backup: [NAMES OR ROLES]
BUSINESS GOAL One goal: [CHANGE + EXACT UNIT + LOCATION/DAYPART + DATE] Baseline: [COMPARABLE DATES + COMPLETED CHECKS OR COVERS + AVERAGE CHECK] Capacity available: [COVERS/ORDERS THE RESTAURANT CAN SERVE WELL] Suspected constraint: [FIRST VISITS / RESPONSE-TO-VISIT / REPEAT VISITS / AVERAGE CHECK / CAPACITY / OPERATIONS / INSUFFICIENT EVIDENCE] Evidence for that choice: [RECORDS, DATES, AND EXCLUSIONS]
GUEST AND CAMPAIGN Guest: [ONE LOCAL GROUP] Visit reason and daypart: [ONE SPECIFIC REASON + WHEN] Offer: [COMPLETE TERMS, LOCATION, EXPIRATION, EXCLUSIONS] Main channel: [PAID ADS / INFLUENCERS / SMS / EMAIL / LOYALTY / PROMOTION / EVENT / OTHER] Creative or message: [HOOK + DISH/EXPERIENCE + ONE ACTION] Response path: [CAMPAIGN ID + PAGE/CODE/RESERVATION/MESSAGE + GUEST ID] First-visit handoff: [WHO VERIFIES ARRIVAL + POS/CHECK PROCEDURE] Follow-up: [WHO RECEIVES WHAT, WHEN, WITH WHAT PERMISSION]
COST LIMIT Media: [$] Creative production: [$] Influencer compensation: [$] Commercial usage rights: [$] Incentive treatment: [ACTUAL INCREMENTAL FOOD/FULFILLMENT OR FACE VALUE] Software/platform: [$] Agency/management: [$] Incremental campaign labor: [$] Other named campaign cost: [$] Shared-cost allocation: [ONE WRITTEN, CONSISTENT BASIS] Bundled-cost exclusions: [WHAT IS ALREADY INCLUDED] Total campaign cost: [$] Maximum cost per completed first-time guest: [$] Check costs for contribution: [FOOD, PACKAGING, PROCESSING, FULFILLMENT, INCREMENTAL SERVICE LABOR; EXCLUDE ANY INCENTIVE COST COUNTED ABOVE]
MEASURES AND DEFINITIONS Platform activity: [EVENT; NEVER CALL IT A VISIT OR SALE] Response: [EXACT UNIQUE PERSON/RECORD EVENT] Visit conversion: [MATURED ELIGIBLE RESPONSE RECORDS WHOSE RECONCILED, KNOWN OUTCOME WAS VERIFIED IN-PERSON COMPLETION ÷ THOSE SAME MATURED ELIGIBLE RESPONSE RECORDS] Matured visit population: [FULL ARRIVAL WINDOW ELAPSED + VISIT/CHECK OUTCOME RECONCILED AND KNOWN] Open/immature/ineligible records: [COUNTS REPORTED SEPARATELY] Matched sales: [PAID, NON-VOIDED SETTLED CHECKS LESS REFUNDS, JOINED BY ID] Cost per completed first-time guest: [TOTAL CAMPAIGN COST ÷ UNIQUE IDENTIFIED FIRST-TIME GUESTS WITH VERIFIED ARRIVAL + MATCHED PAID, NON-VOIDED CHECK] Repeat rate: [MATURED ELIGIBLE FIRST-VISIT GUESTS WHOSE RECONCILED, KNOWN OUTCOME WAS A RETURN IN WINDOW ÷ THOSE SAME MATURED ELIGIBLE FIRST-VISIT GUESTS] Matured repeat population: [FULL RETURN WINDOW ELAPSED + RETURN OUTCOME RECONCILED AND KNOWN] Immature, ineligible, or unresolved repeat records: [COUNTS REPORTED SEPARATELY] Weekly-rate rule: [AN EARLY COMPLETION OR RETURN STAYS OUT OF ITS NUMERATOR UNTIL THAT RECORD ENTERS THE SAME MATURED DENOMINATOR] If messaging is used: [SENT/ATTEMPTED, DELIVERED, FAILED, OPTED OUT, SUPPRESSED, PENDING/UNKNOWN; OPT-OUTS ÷ DELIVERED UNIQUE RECIPIENTS] Contribution view: [DIRECTLY MATCHED / OBSERVED / CONTROLLED ESTIMATE] Contribution: [DECLARED SALES − CHECK-VARIABLE COSTS − CAMPAIGN COSTS; LABEL WHAT THE SALES FIGURE CAN PROVE]
LAUNCH CHECK [ ] Live response saves campaign and guest IDs [ ] Staff verifies in-person arrival and attaches the correct check [ ] Paid, non-voided settled test check appears once in the report [ ] A later void/refund removes or updates that same check [ ] Offer, staffing, permissions, suppression, and capacity are ready
WEEKLY DECISION Review day/owner: [DAY + ROLE] Keep when: [WRITTEN EVIDENCE] Repair when: [FIRST BROKEN STEP + ONE CHANGE] Stop when: [COST / CAPACITY / COMPLIANCE / OPERATING LIMIT] Retest when: [WHAT CHANGES, WHAT STAYS FIXED, NEXT ELIGIBLE GROUP] ```
See the same plan completed for a fictional restaurant
Every name, dollar amount, baseline, target, and date below is an illustrative planning assumption—not a benchmark, Feast result, or promise.
``text RESTAURANT MARKETING PLAN — FICTIONAL EXAMPL
Restaurant/location: Juniper Street Café — Northside (fictional) Working period: October 1–December 29, 2026 (90-day planning container) Plan owner / backup: General manager / shift lead
BUSINESS GOAL Goal: Add 40 unique, identified first-time Tuesday-dinner guests with verified in-person completion and a matched paid, non-voided settled check by Dec. 1. Baseline: Prior 8 comparable Tuesdays averaged 32 completed checks, a $42 settled average check, and 9 identified first-time guests per night. Capacity: 12 more covers can be served without adding a shift. Suspected constraint: Too few qualified first-time Tuesday guests. Evidence: The restaurant's fictional repeat rate met its own target; check count and first-time identity were lower than its own goal across the 8 Tuesdays.
GUEST AND CAMPAIGN Guest: Nearby parents choosing a Tuesday dinner. Visit reason/daypart: Easy Tuesday family dinner, 5–8 p.m. Offer: One shared appetizer with two purchased entrées; Northside dining room; one use per response; expires 14 days after claim; dine-in only. Main channel: One paid-social campaign running Nov. 1–Nov. 14. Creative/message: Short kitchen video; “Tuesday dinner is handled”; claim offer. Response path: Campaign TUE90 → claim page → response ID + guest phone → POS code. First visit: Host confirms the identified guest is present; server applies TUE90 once and retains the response ID and settled-check reference. Follow-up: One permissioned email the next morning inviting a return within 30 days. New claims stop Nov. 14; the last 14-day arrival window ends Nov. 28, and its next-morning 30-day return window matures by Dec. 29.
COST LIMIT Media $600; creative $150; influencer $0; usage rights $0; software allocation $90; agency/management $0; campaign labor $100; other campaign cost $0; offer's actual incremental food/fulfillment cost $120. Total campaign cost: $1,060. Allocation: 30% of the $300 software charge shared across November tests, based on TUE90's share of campaign days that month. No bundled item counted twice. Planning ceiling: $1,060 ÷ 40 unique completed first-time guests = $26.50 each. Contribution model: 28 unique paid, non-voided settled TUE90 checks, deduplicated by check ID, at a modeled $60 average check = $1,680 settled sales. The 40-guest goal and 28-check sales model are separate units; a shared check counts once. Across those same 28 checks, $588 in normal check-variable costs (food $420 + processing $50 + packaging/fulfillment $0 + incremental service labor $118; excluding offer food) applies. $1,680 − $588 − $1,060 campaign cost = $32 before fixed overhead. No repeat sales assumed.
MEASURES Platform activity: impressions and clicks, reported only as platform activity. Response: one eligible claim per unique identified person. Visit rate: matured eligible claim records whose reconciled, known outcome was verified in-person completion ÷ those same matured eligible claim records. Matured means the full 14-day arrival window elapsed and the visit/check outcome was reconciled and known; open, ineligible, and unresolved claims stay separate. An early arrival stays out of the weekly rate until its full window elapses. Matched sales: paid, non-voided settled TUE90 checks less later refunds. Repeat rate: matured eligible first-visit guests whose reconciled, known outcome was a return within 30 days ÷ those same matured eligible first-visit guests. Matured means the full 30-day return window elapsed and the return outcome was reconciled and known; immature, ineligible, and unresolved records stay separate. An early return stays out of the weekly rate until its full window elapses.
LAUNCH AND WEEKLY DECISION Pass launch only after one live claim reaches a paid, non-voided settled check; then refund it and verify removal. Review each Wednesday. Keep: The path works and projected full cost stays at or below $26.50 per guest. Repair: Change only the first weak step—creative, claim page, arrival, or POS join. Stop: Pause before the $600 media cap if the path breaks, service capacity closes, or the projected full cost cannot meet the restaurant's written limit. Retest: Save the same goal and ledger; change one failed input for the next group. ```
The example's settled-sales figure is modeled from its stated number of unique checks, not observed or derived from the guest goal. Its contribution figure is also a planning result before fixed overhead, not profit, and the campaign would still need real results before the owner kept spending.
Pick the constraint before you pick the channel
Choose the first part of the business that your own records show is weak: qualified first visits, response-to-visit conversion, repeat behavior, average check, usable capacity, restaurant execution, or measurement itself. Empty seats do not identify the cause; the same symptom can come from opposite constraints.
If you cannot support one choice, write insufficient evidence and spend the first part of the plan fixing identity, check, or baseline records. The acquisition-versus-retention decision helps separate first visits from repeat visits, while your broader restaurant marketing strategy decides which constraint deserves the next test.
“Although we do social media and digital marketing, we can't figure out why it's not working.”
Restaurant owner
A channel cannot answer that question until the plan names the result it is supposed to change.
Use your own baseline, not somebody else's headline
Build the baseline from the same location, daypart, days of week, open hours, and comparable dates you will review later. Keep completed checks or covers separate from average check: covers can fall while spend per guest rises, so revenue alone can hide the real change. Note holidays, events, closures, and capacity changes beside the comparison.
Use only the measures the decision needs. A top-line forecast can translate a goal into new guests, return visits, average check, investment, and time, but it cannot prove which action will cause the result. A restaurant-group case study may give you questions to ask; it cannot replace your restaurant's baseline.
Give one guest one reason to take one trackable step
One plan gets one main channel and one response path. Choosing paid ads, influencers, SMS, email, loyalty, a promotion, or an event as the main channel does not prevent normal marketing from continuing; it prevents several new tactics from claiming the same result.
The response must keep a campaign ID and guest identifier until arrival and checkout. A click, message, claim, or reservation is not a completed visit. Even a video ad cannot be magically connected to an in-store sale without a retained action and restaurant-side join. If the campaign uses a signup, test the signup graphic example. If it uses text, adapt one of these restaurant promotional messages to your approved audience and terms.
Count every cost once before setting the stop rule
Your maximum cost only means something when the numerator includes every applicable campaign expense and each expense appears once.
“I gotta create a spreadsheet so I don't all of a sudden have a two-thousand-dollar extra marketing bill.”
Restaurant owner
Keep the campaign-cost ledger separate from the check-variable ledger. Campaign cost includes media, creative, influencer compensation, commercial rights, software, allocated management, campaign labor, and one incentive treatment. Choose either the incentive's actual incremental food and fulfillment cost or its face value; never both. If software or agency work is shared, write one allocation basis before launch and use it throughout. If a vendor bundle already includes an item, do not add that item again.
For contribution, start with the declared sales view and subtract the variable food, packaging, processing, fulfillment, and incremental labor used to produce those checks, plus campaign costs not already counted. If net settled sales already reflects a discount, do not subtract that face-value discount again. Do not call the remainder profit; fixed rent, salaried labor, utilities, and other overhead still exist.
Keep platform activity, visits, sales, and contribution in separate rows
The scorecard should move through an evidence ladder: platform activity, response, reservation or claim, verified completed visit, directly matched settled check, observed business movement, controlled incremental estimate, then contribution or profit after applicable costs. Each level answers a different question.
Use only eligible records whose full outcome window elapsed and result is known in a conversion denominator. Report open, immature, ineligible, and unknown records separately. A directly matched check supports campaign-linked gross or net sales under the written definition; it does not prove the campaign caused an incremental sale. Equal before-and-after windows show observed movement, not causality.
The restaurant marketing ROI guide covers the full evidence ladder. Once the tracking works, use the restaurant-ad diagnostic to decide whether to keep, repair, stop, or run a cleaner test.
Ninety days holds the work; it does not guarantee the result
A ninety-day plan is useful when it leaves time to prepare, launch, let stated visit and return windows mature, and review the result. It is not a universal campaign length, minimum spend, or promise of growth.
Review the scorecard weekly, but stop sooner for a broken guest-to-check path, an unapproved message, a breached cost limit, poor service, or exhausted capacity. If responses are weak, repair the guest, message, offer, or channel. If responses arrive but visits do not, inspect terms, timing, booking, and capacity. If visits happen without matched checks, repair the staff handoff and POS record. If one-time guests do not return after full windows mature, repair the follow-up or experience before buying more first visits. If demand exceeds capacity, cap the campaign rather than measuring a service failure as marketing success.
Successful use does not mean the ninety-day target came true. It means your restaurant retained the plan, costs, IDs, eligible denominators, exceptions, and decision—so the next test begins with evidence instead of a guess.
When the plan becomes a weekly data-joining job
Feast becomes relevant when the hard part is repeatedly connecting content, paid acquisition, guest capture, follow-up, and the supported POS check. Feast's public product pages document campaign pages, phone capture, SMS follow-up, supported-POS identity matching, and POS-linked sales by campaign; those sales remain attributed sales, not profit or causal lift.
You still choose the business goal, offer, cost limit, and when service can handle demand. If you want the acquisition, follow-up, and check reporting in one restaurant system, Book a demo of Feast.