Restaurant marketing suite

The two numbers that decide whether a restaurant survives — food cost and labour cost — on the same screen

Menu, floor, guests, orders and rota as real objects. Margin per dish, what the delivery apps really cost, who is drifting away measured against their own rhythm, and labour as a share of takings by service.

Menu performance
Loaded fries
$9.00 · costs $6.40
Across the counter
+$2.60
Through the app at 30%
−$0.10
Breaks even at 28.9% commission
Lunch
72%
of takings on wages
Dinner
31%
of takings on wages
Floor1234712table 7 past its usual turn
23
objects this suite adds — menu, floor, guests, orders, loyalty, catering, events, rota
Full OS
campaigns, CRM, journeys, landing pages, forms, scheduling and analytics — included, not extra
3
data regions — US, EU and Asia, in separate databases
What makes us different

Built for restaurant. From the data layer up.

Most marketing tools model a restaurant as contacts with a favourite-dish field. The real problem is that what the food costs and what the labour costs live in neither the till nor the CRM — the till knows what sold, the accountant knows what was spent, and nobody puts them on one line for a Tuesday lunch. This suite models the work directly: menu sections and dishes with portion costs, named tables and the parties seated at them, a guest book with each guest's own visit rhythm, orders with the commission a delivery app charged, and shifts carrying the rate that was actually paid. It is not a point of sale and it is not payroll.

  • ✓Margin per dish against your own menu's medians — not an industry benchmark
  • ✓What a delivery app costs per dish, and whether you were charged your agreed rate
  • ✓Guests judged against their own visit rhythm, so the weekly regular who vanished is flagged and the twice-a-year couple are left alone
  • ✓Labour as a share of takings, lunch against dinner, with the rate kept on the shift so a pay rise never rewrites last month
  • ✓Missing data is never read as zero — an uncosted dish is not pure profit and an unpaid shift was not free
Day-one playbook

Your first afternoon on BorakDesk

  1. 1Add a site — your public menu link exists the moment it does
  2. 2Build the menu; it publishes to a link you can QR straight onto a table
  3. 3Put a portion cost on your ten best sellers — enough to make Menu Performance useful
  4. 4Enter your delivery-app commission rates and see what they cost you per dish
The math

You know what the apps take. You do not know which dishes it costs you.

Commission is the one restaurant number everybody can quote and nobody can break down. It arrives as a single figure on a payout statement, so the kitchen has no way to know which plates are carrying it — and ends up busiest on the ones it loses money making.

The arithmetic is not hard. It is just never done per dish:

A burger on your menu
what the guest pays
$17.00
Ingredients for one
your portion cost
− $6.40
Commission at 30%
taken on the food, not the total
− $5.10
What the kitchen keeps
against $10.60 sold across the counter
$5.50

That burger survives. A $9 plate of loaded fries costing $6.40 does not — it breaks even at 28.9% commission, so at 30% it goes out at a loss on every single order. Most menus have two or three of those and no way to find them.

Enter your rate once
The VDM works it out per dish, from the orders you already record — and tells you the commission rate at which each dish stops paying for itself.
No app login
required
What no till will tell you

Four numbers, and where each one comes from.

Each is computed from rows you already have. None is an estimate, none is benchmarked against an industry figure, and every one of them says so when it cannot be worked out.

Which dishes are worth having

Every dish on two axes — what it makes per sale and how often it sells — against your own menu's medians. A bakery and a steakhouse do not share a threshold, and a fixed one would tell the steakhouse its whole menu was failing.

A dish with no portion cost is reported as uncosted, never as pure profit.

What the delivery apps really cost

Per dish, after commission — plus whether the rate you were actually charged matches the one you signed for. Where you already mark prices up on the app, the price it went out at there is what gets used.

A channel with no rate on file reports orders and says the margin is unknown.

Who is drifting away

Measured against each guest's own gap between visits. The Tuesday regular who has not been in for a fortnight has gone somewhere else; the couple who come twice a year are behaving normally at ninety days. One fixed rule gets both wrong, in opposite directions.

Under three visits there is no rhythm, and the row says it was judged on a fixed window instead.

What a service cost to staff

Wages as a share of takings, lunch against dinner, with a shift split across the boundary rather than dumped in whichever service it started in. The rate lives on the shift, so a pay rise never rewrites last month.

One shift with no rate withholds the exact figure and gives a floor — "at least 37%" — rather than reading comfortingly low.

Head to head

Against the stack an independent actually has.

Not against a restaurant ERP. Against the four or five things a fifty-cover place is already paying for, plus the spreadsheet doing the rest.

The questionTheir stack todayHere
Which dish should I take off?Till report of what sold, and a guess at costMargin per dish against your own medians, with the gap named
What did DoorDash cost me?One figure on a payout statementPer dish, after commission, with your contract rate checked against what was taken
Who should I email?Everyone who has not been in for 45 daysGuests overdue against their OWN rhythm, with anyone contacted recently held back
How long is the wait?The host's judgementThe same judgement, plus turn times measured from your own floor
Was Tuesday lunch worth opening?A feeling, and the bank balanceLabour share for that service, against what the room took
How do my three sites compare?Three logins and a spreadsheetOne page, one measure at a time, against the median of their peers
What it consolidates

Sixteen tools, one contract.

No restaurant buys sixteen separate products — the categories arrive bundled, three or four at a time. A place arriving from a typical stack cancels three to five subscriptions and stops paying per cover for the one that charges that way. Each row below is what the VDM does today, and where that capability is going next.

CapabilityUsually bought asAvailable todayRoadmap
Public menu pagePopmenu, BentoBox, Owner.comA live link per brand and per site — real prices, allergens, dietary labels, open-now in the site’s own timezone, sold-out dishes hidden, a truck’s next stops instead of an addressComplete
Commission-free direct orderingChowNow, Owner.com, Toast Online OrderingBasket with modifiers, pickup, delivery or dine-in, order tracking on a guest link, confirmations to guest and kitchenCard payment on the page; today it is pay on collection and says so
Table reservationsOpenTable, Resy, SevenRoomsBooking from the menu page, confirm, change or cancel on a guest link with no account, operator alert on every requestComplete
Walk-in queueYelp Waitlist, Waitwhile, a stack of pagersQueue with a public status link per party, and a wait quoted from the floor rather than guessedComplete
Floor plan & turn timesSevenRooms, OpenTable floor toolsNamed tables with covers, seat from the queue or a booking or the door, turn times per party size, one table one party enforced in the databaseComplete
Menu engineering & food costMarginEdge, Restaurant365 module, a spreadsheetPortion cost with a staleness clock, margin per sale and in total, stars / plough horses / puzzles / dogs on your own medians, per-site margin from one cost against several pricesRecipe-level costing driven from supplier invoices
Delivery commission reconciliationOtter, a spreadsheet, nothingA rate per app, contract against charged, net per order, per-dish margin after commission and the rate each dish breaks even atComplete
Guest CRM & lifecycleSevenRooms, Punchh, Thanx, MailchimpGuest book over your contacts, position against each guest’s own rhythm, birthdays and first-visit anniversaries, audiences handed to Campaigns with per-stage cooldownsComplete
LoyaltyPunchh, Thanx, Como, Square LoyaltyPunch card or points, tier ladder, rewards, readable member codes, and a ledger carrying the balance after every movementComplete
Guest email campaignsMailchimp, Constant ContactThe standard Campaigns surface, fed by restaurant audiences — one email allowance, not a second mailer to reconcileComplete
Labour against sales7shifts, Homebase, Restaurant365 labourStaff list with no logins needed, shifts carrying the rate actually paid, labour share by day and by service, cost per coverBuilding the rota itself — shift offers, swaps and availability
Catering enquiry pipelineCaterease, Total Party PlannerNew to won or lost with a reason required on every loss, win rate, pipeline value, and why you lose groupedGenerating the quote document
Events & private diningTripleseat, Perfect VenueTicketed, free or RSVP-only events, capacity counted in covers rather than bookings, waitlist promoted in order when somebody dropsA public event page that takes the booking and the payment
Multi-site reportingRestaurant365, Avero, TenzoPer-site margin, labour, covers and channel mix; one ordering per measure within a site’s own kind; outliers named against peers; the same dish compared across every siteComplete
Truck location updatesStreet Food Finder, posting it yourselfStops with times and arrival notes, sold-out recorded separately from finished, and a public next-stops list that keeps itself currentComplete
Daily specialsA chalkboard, a social post, a menu add-onRecurring specials on the days you choose, live on the public page while they are on and absent when they are notComplete
In production todayRoadmap — the next thing it gains

Named products are a comparison by capability category, not an audit of another vendor's software. Three things are deliberately not on this list and not in the product: it is not a point of sale — no order reaches a kitchen printer, no bill is split, no card is taken; it is not payroll — no tax, no filing, no payments; and it does not log in to the delivery apps. The commission figures come from the orders you record and the rates you enter, which is also why they work on day one.

Where this is going

What is next, and what is not ours to promise.

Ours to build
  • Review requests that actually send
    The screen holds the settings today and the send is not wired — so it is not claimed above. Requests triggered by a completed visit, with moderation before anything is published.
  • Payment on the ordering page
    Online orders are pay-on-collection today and say so plainly. A payment surface carries its own compliance work, which is why it was kept out of R3 rather than half-built.
  • Building the rota, not just costing it
    Shifts are recorded and costed now. Offering a shift, swapping one and collecting availability is the next layer.
  • Recipe costing from invoices
    Portion costs are entered by hand. Reading them off supplier invoices is the obvious next step and a real piece of work.
  • A public events page
    Events, capacity in covers and the self-promoting waitlist all exist; selling a seat on your own page does not yet.
Gated elsewhere — no date
  • Reading orders from the delivery apps
    Each marketplace runs its own developer programme and approval. Until one approves us there is nothing to connect, so the commission work was built to need no login at all — which is why it works today.
  • Text messages to guests
    There is no SMS channel on these accounts, so nothing in the product promises one. The host calls the name, as they always have.
  • Pulling reviews back from Google, Yelp or TripAdvisor
    Reading a platform's reviews is a function of that platform's terms, not of our roadmap. Asking a guest for one is ours; collecting them back is theirs.
  • Till and POS integration
    The till remains the till. Where a POS opens a usable interface this becomes possible; naming a date for somebody else's API would be inventing one.

Run your restaurant marketing on a platform that gets it.

14-day free trial. Full feature access. No credit card. Solution engineer walks you through the Restaurant suite on day one.

Start free trialTalk to a human →