Winter Table.
More covers for Saffron Table.
This is the plan a Growth client receives before a dollar is spent: the goal, the money, the ads, the forecast, the rules, and the one message that approves it. Saffron Table is a sample client with sample numbers. The method is the real one.
01 · The brief
One result.
One budget.
One price.
Saffron Table seats 70, runs at 61 percent on weeknights and turns tables away on Saturdays. December is strong; January and February are the problem. The owner can take about 450 more covers a month without adding staff.
Goal
176 bookings a month
About 440 extra covers a month at 2.5 guests a table, from 1 December to 28 February. Counted in OpenTable, not in ad platforms.
Budget
$3,000 a month in ads
Paid by the restaurant straight to Meta, Google and TikTok. Never held, never marked up. A monthly cap is set on every account so it cannot be exceeded.
Target
$17 a booking, $22 cap
A booking is worth about $82 at the table, at the $32.75 average check. We agreed the ads may cost up to $22 a booking; anything over that for three days, with at least five bookings, is paused without asking.
Secondary goals
Private dining for the holidays. The back room seats 24 and sold out two weekends last December by word of mouth alone. Target: 20 enquiries, 6 parties, at up to $45 an enquiry.
First-party guests. Every booking from an ad lands on a page that asks for a birthday, so by March the restaurant owns a list it can fill quiet Tuesdays with for free.
02 · Where the money goes
One budget,
three jobs.
Instagram makes people hungry. Google catches the ones already looking. TikTok reaches the under-35s who decide where their group eats. The split moves ten percent a week toward whichever is cheapest per booking.
Reels of the food and the room, a holiday-party lead form, and retargeting everyone who visited the menu.
"Private dining Brooklyn", "Persian restaurant Brooklyn", the restaurant's own name, and Maps directions within three miles.
Boosting the two best organic videos a month to 18–34s within five miles. Small, because it is measured last.
What is not in the budget
The landing page, the film day, the ads themselves, the tracking and the dashboard. Those are the Growth retainer. Ad money buys reach and nothing else.
How the split changes
Every Monday the worst-performing platform gives ten percent of its budget to the best one, inside the $3,000. Below $300 a month a platform is paused and the money moves. That is a standing rule, approved once.
03 · The ads
Three hooks,
three formats, nine ads.
Every ad is shot in the restaurant, written in the owner's voice, and carries the same promise: a table, tonight, three blocks from the train. The three mockups below are one hook in each format; the matrix shows the rest.
The lamb has been on the bone since 6am. The room is warm, the train is three blocks away, and there is a table with your name on it tonight.
solved.
that fixed
my week
@saffrontablebk Chef Noor plates the Tuesday thali in one take. Sound on. Book from the link, we hold it 15 minutes.
| Hook | Instagram Reel (9:16, 12 s) | Feed or carousel (1:1) | Search ad |
|---|---|---|---|
| Dinner is solved | Lamb coming off the bone, the room filling, the booking screen | Three dishes, three prices, one button | "Dinner tonight near Atlantic Ave" with the hours and the walk from the train |
| The back room | The room empty at 5, full at 8; the host closes the door | Carousel: the room, two menus, last December's dates sold out | "Private dining Brooklyn 12–24" with set-menu prices and the hold-a-date link |
| The Tuesday thali | Chef Noor plates it in one take, price on screen | The thali from above with the line "Tuesdays, $19, until it sells out" | "Persian lunch Brooklyn Heights" with the thali and the pickup time |
Each hook runs as two copy variants. Samia bot, our software, rotates in the next approved variant when an ad's frequency passes 3.5 in seven days or its click rate drops 30 percent from its first week. Faces of staff appear only with written consent; no generated people, ever. Every number in an ad, the review count included, is checked against its source before launch; a mismatch holds the ad.
04 · The forecast
What a booking
should cost.
These are planning assumptions, written down before launch so that the Monday numbers have something honest to be compared with. A forecast is a promise to measure, not a promise of results.
| Platform | Spend | Cost per 1,000 views | Click rate | Clicks | Page to booking | Bookings | Cost per booking |
|---|---|---|---|---|---|---|---|
| Meta | $1,500 | $14 | 1.2% | 1,290 | 8% | 103 | $14.60 |
| $1,100 | $2.40 a click | 6.5% | 458 | 12% | 55 | $20.00 | |
| TikTok | $400 | $8 | 0.9% | 450 | 4% | 18 | $22.20 |
| Month one | $3,000 | 2,198 | 176 | $17.05 |
About $14,400 in covers
176 bookings at about $82 a table, the $32.75 average check. Against $3,000 of ads and the $6,500 retainer, that is about $1.50 in covers for every dollar if the forecast holds, before the back room.
Plus the back room
20 enquiries, six parties at about $1,800 each: another $10,800, from $600 of the Meta budget and the search ads.
If it does not hold
The Monday text says so in plain numbers. Over $22 a booking for three days, with at least five bookings, and the ad set is paused, rebuilt and relaunched at our cost. That is the Growth promise.
05 · The rules that run it
Approved once.
Runs itself.
Samia bot, our software, pulls every number nightly and applies these rules every morning. It never writes a new ad or spends outside the budget on its own; those wait in a queue for a person. Everything else runs inside the rules you approved, and every action is logged on the dashboard with the number that triggered it.
- Pause over the cap. Any ad set over $22 a booking for three days, with at least five bookings, is paused and its budget moves to the best performer.
- Shift toward what works. Each Monday, ten percent of the budget moves from the worst platform to the best, inside the monthly $3,000.
- Rotate tired ads. Frequency over 3.5 in seven days, or click rate down 30 percent from week one, and the next approved variant goes live.
- Respect learning. Nothing is touched within 72 hours of a change, so the platforms can settle.
- Hard caps. A monthly spending limit is set on every ad account, so even a platform error cannot overspend.
- Floors. No ad set below $20 a day; below that, it is paused rather than starved.
- Calendar. Ads pause on the two closed days and ramp 30 percent in the ten days before New Year's Eve.
- Ask first. New creative, a new audience, a budget change above 10 percent, or any claim about price or health waits for a yes.
06 · Before a dollar is spent
Bookings,
not clicks.
The number on the dashboard is the number in OpenTable. Ad platforms get told about bookings so they can find more of them, but they never get to grade their own homework.
One tag container
Google Tag Manager on the site, with Analytics, the Meta pixel and the TikTok pixel inside it. Consent mode on. Nothing fires before a visitor agrees.
Bookings sent back
OpenTable confirmations reach Meta's Conversions API, Google's enhanced conversions and TikTok's Events API from the server, so blocked browsers do not hide results.
Tracked phone numbers
A number per platform, forwarding to the restaurant's own line. Calls over 40 seconds count as a booking enquiry; the recording is kept 30 days.
One naming rule
Every link carries source, platform, campaign and ad in the same order, so the dashboard can say which ad filled which table without guessing.
07 · The calendar
Twelve weeks,
four approvals.
The client reads four things in three months: this plan, the ads before launch, the first Monday text, and the monthly report. Everything else happens.
- Week 0 · 16–20 November
Access and tracking. The onboarding form, partner access on each platform, tag container live, phone numbers live, a baseline month of OpenTable pulled. Nothing runs until bookings count. - Week 1 · 23–27 November
The film day and the page. Four hours in the restaurant on a quiet Tuesday. The Winter Table landing page is built on the restaurant's own domain. Approval two: the nine ads. - Week 2 · 1 December
Live. All three platforms, all nine ads, at half budget for five days while the platforms learn. First Monday text on 7 December.
- Weeks 3–6 · December
Holiday peak. The back-room ads take over the Meta budget. Budget ramps 30 percent before New Year's Eve, pauses on the 24th and 25th. - Weeks 7–10 · January
The quiet months, which is the point. The Tuesday thali and the first-party email list carry January. Approval three: the January report and the February plan, in one message. - Weeks 11–12 · February
Review. Cost per booking against the $17 forecast, covers against 440, what the list is worth. Approval four: the spring plan.
08 · One message to approve
This is the whole
approval.
A plan should be short enough to approve from a phone. This is the message the owner of Saffron Table would receive, and "yes" is all it takes.
Text message · 20 November
Winter Table, ready to go. $3,000 a month across Instagram, Google and TikTok, 1 Dec to 28 Feb. Goal 176 bookings a month at $17 each, cap $22. Nine ads, all shot at the restaurant, no prices in the Reels, licence line on every search ad. Standing rules: pause anything over $22 a booking for three days with at least five bookings, shift 10% a week to the best platform, never above the cap, pause on the 24th and 25th. You will get numbers every Monday at 8am. Reply YES to launch on 1 December, or call me with changes.
Everything in that message is on the dashboard the same morning, and every action the rules take is logged there with the time and the number that triggered it.
Start here
A plan like this
for your business.
Three questions, two minutes. We reply within one working day; after a thirty-minute call you get a two-page plan and a fixed price, written the way this one is.
Notes from the agency
An email when we have something useful to say.
What is working for owner-run businesses, in plain numbers. No schedule and no selling. Leave any time by replying.