How to track gross margin by channel and sku as Restaurant and Hospitality Founders

Finance & FP&AFor Restaurant and Hospitality Founders3 apps12 steps~24 min to set up

You run three dinner services a week on your best nights, and you still can't tell you which revenue channel — dine-in, delivery apps like DoorDash and Uber Eats, or private events — is actually making you money after food and labor. Your POS (Toast or Square) shows gross sales. MarginEdge or a spreadsheet shows food cost. Payroll lives in 7shifts or Gusto. The delivery apps take 15–30% off the top before the deposit hits your bank, and that fee never shows up cleanly anywhere. By the time your bookkeeper reconciles everything, it's three weeks old and the menu has already changed. You're flying blind on which channel to push and which to cut.

Finance & FP&AFor Restaurant and Hospitality Founders3 apps12 steps~24 min to set up
Outcome

What you'll set up

A live gross margin dashboard broken down by channel (dine-in, delivery, events) and by menu item or SKU — updated daily from your bank feeds and POS exports, not monthly from your bookkeeper
Automated alerts when a channel's margin drops below your threshold — so you catch a delivery app fee increase or a food cost spike before it compounds across a full week of service
A scenario model that shows what happens to your cash runway if you drop a low-margin channel, renegotiate a delivery contract, or raise average check by $4
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your Plaid bank account data on a schedule — this is where delivery app deposits, event payments, and vendor ACH debits land. Starch also syncs your Stripe data on a schedule if you process cards through Stripe for events or online orders. Toast, Square, DoorDash, Uber Eats, and 7shifts are connected from Starch's integration catalog and queried live when your dashboard runs, or automated through your browser if a direct API connection isn't available — no API needed for those platforms.

Prompts to copy
Build me a gross margin tracker that pulls transactions from my Plaid bank accounts and breaks them out by channel — dine-in, DoorDash, Uber Eats, and private events. For each channel, show gross revenue, estimated cost of goods (I'll set a food cost % per channel), delivery platform fees as a separate line, and net margin. Flag any week where a channel's net margin drops more than 5 points versus the prior week.
Show me my top 20 food and beverage vendors by spend over the last 90 days, grouped by category — protein, produce, alcohol, dry goods — and flag any vendor where this month's total is more than 20% higher than last month.
Model three scenarios side by side: (1) current mix with DoorDash at 28% commission, (2) DoorDash renegotiated to 20% commission, (3) DoorDash dropped entirely and replaced with 15% more dine-in covers. Show runway, monthly net margin, and break-even under each.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect your Plaid bank account in Starch — this syncs every deposit and vendor payment on a schedule so your channel-level cash picture is always current, not three weeks stale.
2 Connect Stripe from Starch's integration catalog if you use it for event deposits or online orders — Starch syncs charge and payout data on a schedule so you can separate event revenue from walk-in revenue cleanly.
3 Connect your POS (Toast or Square) from Starch's integration catalog — the agent queries it live each time your dashboard runs to pull daily sales by category or menu item.
4 Connect DoorDash and Uber Eats — if the direct integration is available in Starch's catalog the agent queries it live; if not, Starch automates the reporting pages through your browser and pulls deposit and fee data with no API needed.
5 Connect your payroll provider (Gusto, 7shifts, or ADP) from Starch's integration catalog or via Starch's scheduled sync for ADP and Paylocity — this lets you include labor cost per shift in your channel margin calculation.
6 Open the Transaction Insights app and tell Starch to group your Plaid transactions by channel — match delivery app deposit descriptions (e.g., 'DOORDASH' or 'UBER* EATS') to their channels, and assign food vendor ACH debits to COGS.
7 Prompt Starch to build a gross margin table: for each channel, show gross revenue, platform fees as a line item, food cost at your target percentage, and calculated net margin — refreshed daily.
8 Set an alert: any channel where weekly net margin drops more than 5 percentage points versus the prior week triggers a Slack message or email to you before service that day.
9 Open the Runway Analysis app and verify it's reflecting your actual net deposits (post-platform-fee) rather than gross POS sales — this matters because a DoorDash deposit is 70–85 cents on the dollar of what Toast reports as revenue.
10 Open the Scenario Analysis app and model your delivery channel renegotiation or exit: set baseline from current Plaid and Stripe data, then adjust the commission rate or volume assumption and see the margin and runway impact side by side.
11 Build a weekly summary automation: every Monday at 7am, Starch pulls last week's channel margins, flags the biggest variance versus prior week, and sends you a plain-English summary before your food order goes in.
12 Once the dashboard is stable, publish your custom gross-margin-by-channel app to your own Starch workspace so your ops manager or bookkeeper can view it without asking you to pull numbers.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Week of March 10–16, 2026 — 80-seat neighborhood Italian, Chicago

Sample numbers from a real run
Dine-in gross revenue (Toast)28,400
DoorDash gross revenue (pre-fee)9,200
Uber Eats gross revenue (pre-fee)5,800
Private event (Saturday buyout)6,500
DoorDash platform fee (28%)-2,576
Uber Eats platform fee (30%)-1,740
Food COGS — dine-in (31%)-8,804
Food COGS — delivery (35%, higher packaging)-5,250
Food COGS — event (27%, set menu)-1,755
Labor — FOH + BOH (blended)-14,200
Net margin15,575

Starch pulled Monday's Plaid bank feed and showed the DoorDash deposit was $6,624 — $2,576 less than the $9,200 Toast reported as delivery sales. That gap had always existed, but it had never been a single visible line before. The Uber Eats channel looked worse: $4,060 deposited against $5,800 in sales, a 30% haircut, with a food cost percentage running 4 points higher than dine-in because of single-use packaging. The Saturday buyout event, by contrast, posted a 73% gross margin against a set menu — the best margin of the week. The weekly summary Starch sent Monday morning flagged that delivery net margin had dropped from 18% to 11% week-over-week because one Uber Eats promo had run at a discounted price. The owner ran the scenario model before calling Uber Eats: dropping the platform entirely and moving that volume to dine-in at current average check would add $420/week in net margin and extend runway by 11 days per month. The conversation with the rep happened Tuesday.

Measurement

How you'll know it's working

Net margin by channel (dine-in vs. delivery vs. events) after platform fees — the number that matters, not gross POS sales
Food cost percentage by channel — delivery typically runs 3–5 points higher than dine-in due to packaging and platform-driven discounts
Delivery platform fee as a percentage of gross delivery revenue — tracked weekly so a contract change or promo obligation surfaces immediately
Labor cost as a percentage of net revenue — tied to covers and day-part so you can see if a slow Tuesday lunch is structurally unprofitable
Weekly cash runway — how many weeks of operating expenses sit in the bank account after this week's vendor and payroll ACH debits clear
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

MarginEdge
Built specifically for restaurant food cost and invoice management, which it does well — but it doesn't connect delivery app fee data, payroll, or bank feeds into a single margin view, so you're still reconciling across tabs.
Toast + spreadsheet
Toast reports gross POS sales accurately, but manual spreadsheet reconciliation of platform fees, COGS, and labor takes 2–3 hours a week and is always backward-looking by the time you finish.
QuickBooks Online
Starch syncs QuickBooks data on a schedule and can build views on top of it, but QBO alone requires a bookkeeper to categorize transactions before any channel-level margin view is possible — that's the 3-week lag you're trying to eliminate.
Restaurant365
Deep restaurant-specific accounting and food cost tooling, but it's priced for multi-unit operators and requires significant onboarding; Starch gets you a working margin dashboard in one session without a new software contract.
On Starch RECOMMENDED

One platform — transaction insights, runway analysis, scenario planning all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

My POS is Toast and my delivery is DoorDash — does Starch connect to both?
Toast and DoorDash are reachable from Starch's integration catalog and queried live when your dashboard runs. If a direct API connection isn't available for a specific platform, Starch automates the reporting or deposit pages through your browser — no API needed. Your Plaid bank feed provides the ground truth for what actually deposited, which is how Starch calculates post-fee channel margin regardless of how the POS integration is set up.
Can Starch automatically separate the delivery platform fee from the gross sale amount?
Yes. You describe the logic once — for example, 'DoorDash deposits hit my bank account labeled DOORDASH* and represent roughly 72 cents on the dollar of what Toast reports as delivery revenue' — and Starch builds the reconciliation into your dashboard. If you have access to the DoorDash payout reports, Starch can pull the fee line directly; otherwise it calculates it from the difference between POS sales and bank deposits.
Does Starch store my financial data or just query it live?
Your Plaid bank feed and Stripe data are synced on a schedule and stored in Starch — that's what makes daily updates possible without you doing anything. Data from apps in Starch's integration catalog (Toast, DoorDash, etc.) is queried live when your dashboard runs rather than archived. Starch is not a long-horizon data warehouse, so if you need five years of transaction history in one place, that's worth knowing upfront. For a rolling 12-month gross margin view, it's more than sufficient.
What if my food cost data lives in MarginEdge or a Google Sheet, not in a system Starch connects to?
Google Sheets is available in Starch's integration catalog and queried live — so if your COGS estimates or invoice-level food cost live in a sheet, Starch can pull from it when your margin dashboard runs. MarginEdge is web-based, so Starch can automate pulling export data through your browser if a direct integration isn't available. You can also just tell Starch your food cost percentage by channel as a fixed assumption and update it when your actuals change.
Is Starch SOC 2 certified? I'm connecting bank accounts.
Not yet — Starch is not SOC 2 Type II certified as of today. That's worth factoring in if your investors or partners have formal vendor security requirements. Plaid, which handles the bank connection, is SOC 2 certified on their side.
My bookkeeper already does a monthly close in QuickBooks. Does Starch replace that?
No, and it's not trying to. Starch gives you a weekly operating view — channel margins, cash position, food cost variance — before your bookkeeper closes the month. The monthly close in QuickBooks is still your accounting record. Think of Starch as the dashboard you use to run the business, and QuickBooks as the record you use to report on it. Starch can actually sync your QuickBooks data on a schedule if you want both views in one place.

Ready to run track gross margin by channel and sku on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.