| Channel | Gross sales (S$) | Commission % | Other fees (S$) | Merchant-funded promos (S$) | Platform-funded promos (S$) | Refunds/adjustments (S$) | Packaging cost (S$) | COGS (S$) | Packing labour (S$) (opt.) |
|---|---|---|---|---|---|---|---|---|---|
| GrabFood | |||||||||
| foodpanda | |||||||||
| Direct (website/WhatsApp) |
Reading time: 12 minutes. First calculation: 30 minutes once you have the data.
Why this matters: headline delivery revenue hides everything. A S$20 order on a platform might leave you with S$6 after fees, packaging and a partly merchant-funded promo. Run this once and you'll know which channels are actually profitable and which are buying you turnover at a loss.
| Input | Where to get it | Notes |
|---|---|---|
| Gross sales per channel (last 30 days) | Platform merchant dashboards (GrabFood, foodpanda) + direct | Use the same window for every channel |
| Commission % per channel | Latest signed agreement / merchant statement | Watch for tiered rates |
| Merchant-funded vs platform-funded promo split | Platform statements (usually itemised) | This is the silent margin killer |
| Refunds and missing-item adjustments | Platform statements | Pull total S$ value, not count |
| Packaging cost per order | Supplier invoices ÷ orders fulfilled | Average is fine for first pass |
| Food cost per order (COGS) | Plate cost from menu engineering or stock movement | Use a blended channel average |