Restaurant Purchasing
How to Track Restaurant Purchase Orders and Keep a Useful Order History
A simple way to track every restaurant order from sent to closed: what to record, how to check it against the delivery and invoice, and how to use past orders to order better.
To track restaurant purchase orders, keep one log with a line for every order you place. Each line records the vendor, the date, who placed it, what you ordered, and when it should arrive. Give every order a status, such as Sent, Received, or Closed, and update it as the order moves along. An order isn't closed until what arrived and what you were billed both match what you ordered, or until every difference has a credit or an explanation written down.
Do that every time and you have an order history for free. Once a week, look over anything still open. Once a month, look back at past orders to spot short deliveries, price changes, and what you usually buy in a given week.
This guide covers how to set up that log on paper or in a spreadsheet, what goes in it, and how to close out an order.
Why order tracking falls apart in most kitchens
Most independent restaurants order through a mix of channels. One vendor has a portal, produce goes by text, meat gets emailed, and the bakery has its own app. Each order ends up somewhere different: a sent-messages folder, a portal's order history, somebody's phone. The invoices go in a folder in the office.
That works until somebody asks:
- "Did anyone order cream for Saturday?"
- "Were we credited for the case that didn't come last week?"
- "Why is this invoice $40 higher than the order?"
- "What did we bring in for this weekend last year?"
If the answer depends on one person's phone or memory, it isn't really tracked. A purchase order log puts every order in one place, whichever way it was sent.
What to record for every purchase order
You need two levels of detail: one row for each order, and one row for each item on that order.
Order-level details
| Field | Why it matters |
|---|---|
| PO number | A short ID you can write on the invoice and look up later. Something like PO-1042 is fine. |
| Vendor | Who you ordered from. |
| Date sent | When it went in. Add the time if you're close to the vendor's cutoff. |
| Placed by | Who to ask if something looks wrong. |
| How it was sent | Portal, text, email, or phone. This tells you where to find the original. |
| Vendor confirmation | A confirmation number, or "rep replied OK," if you get one. |
| Expected delivery date | So you can tell when an order is late. |
| Status | Draft, Sent, Received, Closed, or Cancelled. |
| Received date and by | Who checked the delivery in, and when. |
| Invoice number and total | So the order can be matched to the bill. |
| Open issues | Shorts, subs, damaged product, price questions, credits owed. |
| Closed date | When everything was settled. |
Item-level details
For each line on the order, record:
- Item as it appears on the vendor's invoice, or close enough that you can match them
- Order unit, such as case, each, or lb
- Quantity ordered
- Expected price per order unit, from the order guide, portal, or last invoice
- Quantity received
- Invoiced price per order unit
- Note, for example "short 1," "subbed 40 lb for 35 lb," or "damaged, refused"
Write quantities in the vendor's order unit, not the unit your team counts in. If you count short rib in packages but order it by the case, the PO and the invoice both say cases. Mixing the two is one of the easiest ways to make a delivery look wrong when it isn't. Our guide to restaurant inventory units covers that conversion.
Use a simple status for every order
A status tells anyone who opens the log where an order stands, without having to read every line. Keep the list short:
| Status | Meaning | Moves on when |
|---|---|---|
| Draft | Being built, not sent yet | It's sent to the vendor |
| Sent | Placed with the vendor, waiting on delivery | The truck arrives and is checked in |
| Received | Delivered and checked, but something still needs to be settled | Every short, sub, or price difference is resolved |
| Closed | Delivery, invoice, and any credits all match up | Nothing more to do |
| Cancelled | Never delivered, on purpose | Nothing more to do |
You can call these whatever you like. The important part is keeping Received and Closed separate. Plenty of orders arrive with one item short or a price that moved. If you mark them closed the moment the truck leaves, the credit you're owed tends to get forgotten.
If an order arrives with nothing wrong, it can go straight from Sent to Closed.
How to set up purchase order tracking on paper or in a spreadsheet
On paper
A three-ring binder by the office door works.
- Keep a log sheet at the front. One line per order, with PO number, vendor, date sent, expected delivery, and status. Update the status in pencil.
- Keep a copy of each order behind the log. Print the email or portal order, or write out what you texted or phoned in. Write the PO number on it.
- Staple the invoice to the order when the delivery is checked in. Mark shorts, subs, and price differences right on the invoice.
- Keep open orders in a separate section until they're closed, then move them to the back.
Paper is cheap and anyone can use it. It gets hard when you want to look back, say to find every short delivery from one vendor over two months. You'd be flipping through pages.
In a spreadsheet
Use two tabs:
- Orders tab: one row per PO, with the order-level fields above.
- Lines tab: one row per item per PO, with the PO number in the first column so you can filter or look up every line on an order.
With a few spreadsheet habits, you can answer most questions with a filter:
- Use a dropdown for Status so nobody types "rec'd" in one row and "received" in the next.
- Use real dates, not "Tues," so you can sort and filter by date range.
- Spell vendor names the same way every time, ideally from a dropdown too.
- On the Lines tab, add calculated columns: ordered × expected price, received × invoiced price, and the difference.
A shared spreadsheet also means the chef, GM, and owner are all looking at the same list instead of separate copies.
How to reconcile an order against the delivery and invoice
Reconciling means comparing three things for each line:
- What you ordered (the PO)
- What actually arrived (counted and checked when the delivery came in)
- What you were billed (the invoice)
The work of checking a truck in at the back door is its own job. Whoever does it should mark quantities received and anything refused or damaged on the invoice before signing. The tracking step comes after that: you take those marks and update the log, then decide what's still open.
For each line, you're looking for one of these:
- Short: fewer units arrived than you ordered. Were you billed for the missing ones?
- Over: more arrived than you ordered. Do you keep it or send it back?
- Substitution: a different item or pack size arrived. Does the price and unit make sense?
- Price difference: the invoiced price doesn't match what you expected.
- Damaged or refused: product sent back with the driver. Was it taken off the invoice?
Anything that needs action from the vendor, like a credit or a pickup, goes in the Open issues field. The order stays at Received until it's resolved.
Worked example: closing out one purchase order
This is an illustrative example. The vendor, items, and prices are made up to show the method, not to suggest typical prices.
On Monday afternoon, the kitchen manager sends PO-1042 to a broadline distributor through its web portal, for delivery Tuesday morning.
| Item | Order unit | Qty ordered | Expected price | Expected total |
|---|---|---|---|---|
| Short rib | Case (6 packages) | 3 | $142.00 | $426.00 |
| Fryer oil, 35 lb | Jug | 4 | $48.50 | $194.00 |
| Heavy cream | Case (6 half-gallons) | 2 | $38.00 | $76.00 |
| Romaine | Case (24 heads) | 2 | $41.00 | $82.00 |
| Total | $778.00 |
On Tuesday the truck arrives. The cook checking it in finds only 1 case of cream, notes it on the invoice, and signs. Later the kitchen manager enters the received quantities and the invoice prices:
| Item | Qty received | Invoiced qty | Invoiced price | Invoiced total | Received × expected price |
|---|---|---|---|---|---|
| Short rib | 3 | 3 | $142.00 | $426.00 | $426.00 |
| Fryer oil, 35 lb | 4 | 4 | $48.50 | $194.00 | $194.00 |
| Heavy cream | 1 | 2 | $38.00 | $76.00 | $38.00 |
| Romaine | 2 | 2 | $44.00 | $88.00 | $82.00 |
| Total | $784.00 | $740.00 |
The invoice is $44.00 more than the value of what actually arrived at the expected prices:
Invoice total: $784.00
What arrived, at expected prices: $740.00
Difference: $784.00 − $740.00 = $44.00
Cream billed but not delivered: 1 case × $38.00 = $38.00
Romaine price increase: 2 cases × ($44.00 − $41.00) = $6.00
Check: $38.00 + $6.00 = $44.00
The order moves to Received, with two open issues:
- Cream: request a $38.00 credit for the missing case. Write down who you asked and when.
- Romaine: ask the rep whether $44.00 is the new price or a mistake. If it's the new price, update your order guide so the next order's expected price is right.
When the credit memo arrives and the romaine price is settled, write the credit memo number in the log and mark the order Closed.
Notice two other things. First, the PO total ($778.00) and the invoice total ($784.00) are only $6.00 apart. If you only compared those two numbers, a $38.00 short and a $6.00 price increase would look like one small difference. The line-by-line check is what catches it. Second, the kitchen still needs cream. That's a decision to make right away, whether that means adding it to the next order or picking some up, not something to leave in a note.
How to review open and past orders
The log only helps if someone looks at it. Two short reviews are enough for most kitchens.
Weekly: open orders (10 minutes)
Filter for anything that isn't Closed or Cancelled, and ask:
- Sent, but past the expected delivery date? Call the vendor.
- Received, with open issues? Chase the credits. Credits nobody follows up on tend not to show up.
- Drafts that were never sent? Delete them, or find out why they stalled.
A good time to do this is before the week's first big order, so you aren't reordering something that's already on a truck.
Monthly: order history
Once you have a few weeks of orders, the history answers questions that are hard to answer from memory:
- Which vendor shorts us most often? Filter the Lines tab for anything where received is less than ordered, and count by vendor. For example, if one vendor shorted 3 of its 8 deliveries in a month, that's worth a conversation with the rep. Once a quarter, you can turn these counts into a vendor scorecard that also covers late deliveries, invoice errors, and price changes.
- Which prices moved? Sort an item's lines by date and compare the invoiced price over time. When one jumps, check it against another vendor's quote by cost per usable unit.
- What do we usually order for a given week? Before a holiday or a big event, pull the orders from the same week last time as a starting point. Adjust for what's different this year.
- How much are we spending with each vendor? Total the invoiced amounts on closed orders by vendor for the month.
These are quick filters in a spreadsheet. On paper they take longer, which is one of the main reasons operators move off paper.
Common purchase order tracking mistakes
- Only logging some orders. If texted and phoned-in orders don't get logged, the log has gaps right where mistakes happen most.
- Closing orders when the truck leaves. Keep shorts and price questions open until they're settled.
- Only comparing totals. A short and a price increase can offset each other. Check line by line.
- Mixing count units and order units. Record the PO and received quantities in the vendor's unit.
- No PO number on the invoice. Without it, matching a stack of invoices to orders at the end of the week takes much longer.
- Not updating expected prices. If the price in your order guide is months old, every invoice will look wrong, and the real problems get lost in the noise.
- One person owns the whole thing. If the log only makes sense to the kitchen manager, it stops getting updated on their days off. Keep the statuses and fields simple enough for anyone who orders or receives.
FAQ
What's the difference between a purchase order and an invoice?
The purchase order is what you asked for. The invoice is what the vendor says it sent and is billing you for. Tracking orders mostly means comparing the two, along with what actually came off the truck.
Do I need PO numbers if I order by text or phone?
It helps. The vendor doesn't need to use your number. It's for you, so every order can be matched to its invoice and found again later. Write it on the invoice when the delivery comes in.
How far back should I keep order history?
For using the history to order, a year back covers holidays and seasonal swings. How long to keep invoices and other financial records for taxes or other legal reasons is a separate question. Ask your accountant.
Should I track orders from vendors I use once a month?
Yes. Infrequent orders, like chemicals, linens, or coffee, are the ones most likely to be forgotten or billed wrong without anyone noticing.
Tracking purchase orders in Proteus Kitchen
A binder or spreadsheet works if someone keeps it up. If you'd rather not maintain one by hand, Proteus Kitchen keeps purchase orders together with your inventory items and vendors. You build an order for a vendor from the items you need, and save it as a draft. Proteus then generates the order as text you can copy into the vendor's portal, a text message, or an email, or print. On a phone, it can also open a pre-filled text to the vendor's number. Once the order is sent, you mark it submitted. Proteus doesn't place orders with vendors for you, and it doesn't need a POS integration.
Past orders stay in one list that you can search and filter by vendor, status, and date range. You can also duplicate a previous order as the starting point for the next one, which helps with the "what did we order last time?" question.
If your order guide or vendor list is already in a spreadsheet, Free Restaurant Setup covers getting it into Proteus.
Next step: start your log this week
- Choose paper or a spreadsheet, and set up the fields above.
- Log every order you place this week, however it's sent.
- Write the PO number on each invoice when the delivery comes in, and mark shorts and price differences.
- At the end of the week, filter for anything not Closed and chase it.
- After a month, look back at shorts and price changes by vendor.
If your vendors' cutoffs and delivery days aren't written down yet, start with our guide to building a vendor ordering schedule. That gives you the expected delivery date for every order you log.
Related articles
Restaurant Purchase Order Template: What to Include (With an Example)
A field by field restaurant purchase order template: what goes in the header and on each line, how to write cases, packs, and eaches so the vendor can't misread them, and a worked example PO with the math shown.
Restaurant Purchasing & Inventory Management: The Complete 2026 Guide
How restaurant purchasing works from count to closed order: units, counts, par levels, order guides, vendor cutoffs, POs, receiving, and order history.
Restaurant Holiday Ordering: Adjusting Orders, Pars, and Vendor Schedules for Holiday Weeks
Holiday weeks move cutoffs, cancel trucks, and change what you sell. Here's how to rebuild the week's order calendar, set temporary pars, decide what to stock up on before a closure, and plan Thanksgiving and Christmas 2026 orders.