Restaurant Month-End Inventory Close, Step by Step
It's the first of the month, and someone needs a food cost number for the P&L meeting. The trouble is nobody can say for sure whether last week's walk-in count ever got approved, two invoices from a rush order never made it into the purchase log, and this month's count was taken the morning after a big delivery instead of before it, like last time. The number that comes out the other end isn't wrong exactly — it's just not comparable to anything.
A month-end inventory close isn't one calculation. It's a sequence of checks that has to happen in order, every period, the same way, before any number from it is trustworthy enough to act on.
This close is the last step in a longer chain — see Restaurant Inventory Valuation: The Complete Guide for how clean records, FIFO, and weighted-average pricing feed into it.
TL;DR
- Schedule your closing count at the same point in the cycle every period — same day, same position relative to deliveries — so periods are actually comparable to each other.
- No count is part of the official record until it's been submitted and approved by a manager.
- Reconcile count totals against purchase records and close out any unexplained gaps before you treat the period as final.
- The formula itself is simple — beginning inventory + purchases − ending inventory = COGS — but it only works if the steps before it were done in order.
Why a Clean Close Is Harder Than It Looks
None of the individual pieces of a month-end close are hard on their own. Someone counts the walk-in. Someone else pulls invoices from the month. Someone runs a formula. The difficulty is that these pieces are done by different people at different times, and none of them automatically checks whether the others were done correctly.
A count taken two days early because the regular counter was off that week. A manager who signs off without really reviewing because it's the fifth count that day. A delivery billed on the last day of the month but not counted until three days later. None of these are dramatic failures — they're ordinary restaurant friction — but each one quietly breaks the comparability of the number you're about to report.
A month-end close is a discipline problem, not a math problem. The math is one line. Getting clean, comparable inputs into that line is the actual work.
The Month-End Close, Step by Step
1. Lock the closing count to the same point in the cycle, every time
Pick a consistent point in your operating cycle for the closing count — the same day of the month, and ideally the same position relative to your delivery schedule (always before the big weekly order lands, or always after it, not sometimes one and sometimes the other). A count taken the morning before a large produce delivery and one taken the morning after aren't measuring the same thing, even if both get labeled "end of month." The whole point of a period-end number is comparing it to the last one — measured inconsistently, it doesn't tell you anything about the trend, only that the cycle drifted.
2. Confirm every count for the period is submitted and approved
Before you treat any count as final, check that it actually went through a review step. A count a team member submitted but a manager never opened isn't part of the official record yet — it's a draft sitting in a queue. Dinezy's inventory counts run on a submit-and-approve workflow: a team member with count-editing permission submits the count, and a manager reviews and approves it before it becomes the official number. That approval step is where accountability actually comes from.
If your closing count — or any interim count feeding into the period — is still sitting unapproved when you go to close the books, get it reviewed first. An unreviewed number shouldn't be the one your food cost percentage is built on.
3. Reconcile counts against purchase records — and close the gaps
This is the step that gets skipped most often, and it's the one that quietly ruins a close. Before treating the period's numbers as final, check whether what the counts show can actually be accounted for by what your purchase records say came in the door.
When a count reports more units on hand than purchase records can explain, that's not a rounding error to wave off — it's a gap that needs a source: a delivery received but never logged as a purchase, a transfer that wasn't recorded, or a miscount. Dinezy flags this directly: when a stock count reports more units than existing purchase records can account for, it doesn't guess at a cost for the unexplained portion — it shows the gap as an unexplained quantity and lets you add the missing purchase record to resolve it. The quantity is still trusted; it's the cost of that unexplained piece that stays open until you close the gap.
Resolve every gap before moving on. A discrepancy left open doesn't disappear — it shows up as noise in next month's trend, and by then it's much harder to trace back to its source. If a gap turns out to be a real quantity variance rather than a missing purchase record, that's a separate investigation — see restaurant inventory variance analysis for the five-step process to trace it to a cause.
4. Total the period's purchases
With counts approved and reconciled, pull your purchase total for the period by filtering purchase records to the date range you're closing. Dinezy totals the purchase amount for whatever you've filtered, so there is no stack of invoices to add up by hand. The total is only as complete as the purchase records behind it, which is why any delivery that never made it into the system needs to be recorded before you treat this number as final.
This is also where the daily discipline of tracking supplier price changes pays off. If prices were checked and recorded consistently at receiving throughout the month — see how to track food supplier price changes for that workflow — your purchase records for the period are already clean going into the close, instead of needing to be untangled after the fact.
5. Pull the period's beginning and ending inventory value
Beginning inventory is the value at the start of the period; ending inventory is the value at the end. If every count in between was submitted and approved on schedule, both are already sitting in your records — you're picking two dates, not reconstructing two numbers from old count sheets.
Every approved count becomes a permanent record: quantity, weighted-average cost, and inventory value at that point in time. That value isn't just the most recent purchase price times the quantity on hand — it's the weighted average across whatever's actually left in each batch, so a shelf holding stock from three different deliveries at three different prices gets valued the way it was actually bought.
6. Run the formula
With all three inputs in hand, the calculation itself is one line:
Beginning inventory + Purchases − Ending inventory = COGS
Apply your period's sales figure to that COGS number and you have your food cost percentage. This is the same formula covered in full — including why raw invoice totals aren't the same thing as actual consumption, and a worked example — in how to calculate restaurant food cost percentage. The close described here is what makes the three inputs to that formula trustworthy in the first place.
7. What a clean close gets you
The payoff isn't this month's number — it's next month's comparison. A food cost percentage on its own tells you almost nothing; next to last period's, measured the same way, it tells you whether things are getting better or worse. That comparison only holds if the same discipline — timing, approval, reconciliation — was followed both times. Skip the reconciliation step once, and next month's "trend" might just be this month's unresolved gap showing up as new variance.
Frequently Asked Questions
Does Dinezy calculate my food cost percentage automatically at month-end? Dinezy automatically tracks your beginning and ending inventory value from every approved count, from every approved count. Your period's purchase total comes from your filtered purchase records, which Dinezy adds up for you rather than leaving you a stack of invoices, and that gives you everything the formula requires: beginning inventory + purchases − ending inventory = COGS. Applying your own sales figure to that result gives you the food cost percentage; no screen displays that ratio directly, since it depends on revenue data Dinezy doesn't track.
What if my closing count doesn't match my purchase records? Dinezy flags the difference as a gap rather than guessing at a cost for it — if a count reports more units than your purchase records can account for, you'll see exactly how many units are unexplained and can add the missing purchase record to close it. If the gap turns out to be a real quantity issue rather than a missing record, that's a separate variance investigation worth walking through on its own.
How do I total my purchases for the period? Filter your purchase records by date range for the period you're closing and total them from there. Dinezy totals the purchase amount for whatever you've filtered, so filtering by date and supplier is all it takes, with no adding up invoices by hand.
Does an unapproved count count as part of the official close? A count becomes part of the official record once a manager has reviewed and approved it — any team member with the right permission can submit a count, but that approval step is what makes it trustworthy enough to close the books on. If a count for the period is still unapproved, get it reviewed before treating the period as final.
How often should a restaurant run this close? Monthly is the minimum for a meaningful trend line; weekly gives more chances to catch a problem before it compounds. Whichever cadence you choose, run it the same way every time — same point in the cycle, same approval standard, same reconciliation before calling the numbers final.
Key Takeaways
- Schedule your closing count at the same point in the cycle every period so the numbers are actually comparable to last period's
- A count isn't part of the official record until it's been submitted and manager-approved
- Reconcile count totals against purchase records and resolve every gap before treating the period as closed — an unexplained gap left open carries into next period's trend
- COGS = beginning inventory + purchases − ending inventory; apply your sales figure to that result for food cost percentage
- A clean close is what makes period-over-period comparison meaningful — the discipline has to be identical both times, not just the formula
Every approved count in Dinezy becomes a permanent record of quantity, weighted-average cost, and inventory value — so pulling a period's beginning and ending inventory value means picking two dates, not rebuilding them from old count sheets, and unexplained count-vs-purchase gaps get flagged instead of silently carried forward. Try Dinezy free at dinezytech.com
