Actual food cost for a period
The Food Cost tab in Reports answers the question your bookkeeper asks: what did food actually cost this period, as a percentage of sales? It's the number you put on a P&L, and it's computed a different way from the food-cost percentage you see elsewhere in Rinvy. (It's the first tab in Reports, and it's where the old Period and Usage tabs now live together.)
How is actual food cost different from theoretical?
Actual food cost comes from your counts and purchases, and theoretical food cost comes from your recipes and sales. Rinvy already shows a theoretical food cost — recipe cost × units sold, divided by sales (the weekly KPI on your dashboard, and the number the food-cost targets compare against). It answers "if every plate went out exactly to recipe, what would food cost?"
Actual food cost is what really left the building. It's measured between two physical counts:
COGS = beginning inventory + purchases − ending inventory
actual % = COGS ÷ net sales
The IRS walks through the same cost of goods sold calculation in Publication 334, where your ending inventory usually becomes the beginning inventory of the next tax year. Rinvy works the same way: the end count of one period can be the start count of the next.
The Food Cost tab shows both side by side. The gap between them — labelled Unexplained — is the food that left without a sale behind it: over-portioning, spoilage, prep loss, unlogged waste, or theft. A small gap is normal; a widening one is worth chasing. ReFED's food waste data names hard-to-forecast demand, bulk buying, poor storage and prep methods that leave usable food behind as common causes of waste in foodservice.
What you need
Actual food cost is bracketed by two completed inventory counts. Pick a date range that contains both, and Rinvy measures between the earliest and latest completed counts inside it — or pick the two counts directly with the Start count and End count selectors under "Or between two counts". Either way it labels the period with the two count dates it used (for example, "2026-08-20 → 2026-09-01"). If you pick the counts in the wrong order, Rinvy still uses the earlier one as the start. Sales follow the day each count started, so a count started at 11:30 pm and saved after midnight does not pull in the next day's sales. A count started after midnight but before your business-day cutoff (4 AM by default) belongs to the night before, the day its sales are dated. The period label and the count selectors show that day.
Net sales come from your POS feed when you upload sales or sync automatically. No feed? Type your net sales for the period into the box on the report and tap Save. See "Entering net sales by hand" below.
Entering net sales by hand
If your POS does not send sales to Rinvy, you can type net sales for the period yourself.
- Open the period on the Food Cost tab.
- Type the net sales total into the box under the statement. The actual % updates as a preview.
- Tap Save. The figure then shows as "Saved · entered by hand".
Rinvy stores the figure per day. It spreads the total evenly over your operating days in the period, to the cent. Any later period that includes those days uses them, and so do the food cost tile on Home and the weekly review email. The email marks the number "(net sales entered by hand)".
Saving again for the same period replaces the saved figure. Owners and managers can save. Other roles see the box as a preview only.
How to read it
- Beginning / Ending inventory are each count's stock valued at its current cost per case — the same valuation the Inventory Value report uses.
- Purchases is every receipt dated between the two counts. Record-only receipts count too — they're still money spent on food for the period.
- COGS by storage area breaks the same math down per storage area, so you can see whether the gap lives in the walk-in, the freezer, or somewhere else.
- By product lists what each product cost you over the same two counts — the drill-down beneath the storage area table. Each row is that product's share of COGS, so the rows add up to the COGS above. Avg cost is the row's total divided by the quantity used. A product whose stock went up with no delivery (for example, its first count) shows a negative row. Tap the Quantity or Total column header to sort it, largest first, and find the biggest movers.

In the example above, $676.00 + $287.00 − $380.50 gives a COGS of $582.50. If net sales for that period were $1,940.00, actual food cost is $582.50 ÷ $1,940.00 = 30.0%. If your recipes and sales predict 27.5%, Unexplained reads +2.5%. When actual runs above theoretical, the tab adds an Actual runs above theoretical warning that points you to the storage area breakdown.
Transfers between your kitchens
If your kitchen sent stock to another kitchen in its group, or received stock from one, the statement adds two lines: + Transfers in and − Transfers out. A transfer is neither a purchase nor usage, so it gets its own lines, valued at the cost the stock moved at. The lines appear only when the period has a transfer.
Common mistakes
Actual and theoretical are not supposed to match. Theoretical assumes perfect portioning and zero loss; actual is what really happened. The gap is the signal — that's the whole point of the report.
A period is measured between two completed counts. If your date range only contains one count (or none), complete another count and widen the range so it spans both.
A missed count, a receipt with the wrong date, or a skipped delivery throws the math off. See why the numbers look wrong.