Restaurant Inventory Management With AI: Par Levels and Orders

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Restaurant Inventory Management With AI: Par Levels and Orders.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Restaurant Inventory Management With AI: Par Levels and Orders.

From weekly counts, work out each item's usage (opening count plus deliveries minus closing count), split it by weekday using POS sales, and set par as expected usage until the next delivery plus a safety margin. Order is par minus stock on hand, rounded to pack size. AI builds the sheet and drafts the message; you check the sums.

The AI is a spreadsheet assistant here, not a forecaster. It writes formulas, tidies messy count notes and drafts orders, but it makes unit and pack-size errors and cannot see your shelves. The counts are the numbers that matter, so a sloppy count produces a confident, wrong par. Paid tools such as MarketMan automate the costing and ordering around your counts from $249 a month (Starter, as of October 2026), and the sheet below is the cheap way to learn what you would be buying.

Follow me on Instagram@sagnikteaches

Par is a sum: usage until the next delivery, plus a cushion

A par level is the stock you want on the shelf so you do not run out before the next delivery lands. A common version is a number someone chose years ago that no longer matches the menu. The version here is derived: par equals the expected usage until the next delivery arrives, plus a safety margin, and at order time you order par minus what is on hand, in the units you buy.

Connect on LinkedInSagnik Bhattacharya

The example restaurant seats 40, opens Tuesday to Sunday, closes on Mondays and has a main supplier delivering twice a week. The Monday order arrives on Tuesday morning and has to last through Thursday service. The Thursday order arrives on Friday and covers Friday to Sunday. Because Monday is a closed day, nothing is used between the Sunday count and the Tuesday delivery, so the Monday order is simply the expected Tuesday to Thursday usage, plus safety, minus the Sunday count.

Subscribe on YouTube@sagnikteaches

That formula needs three inputs. Usage comes from your counts, because counts are what actually left the shelf. The weekday shape comes from your POS, because a Tuesday to Thursday delivery should not be sized as if it feeds a Saturday. The safety margin is your decision, and about half a service day of usage is a sensible start for items with reliable delivery. You can raise it for items that arrive late or sell out mid-service, and lower it for short-life items such as salad leaves, where extra stock is waste.

The weekly count sheet, and turning messy notes into rows

Count once a week after Sunday close, walking the same route every time: walk-in, freezer, dry store, back-of-house. Record each item in the unit your recipes use (kilograms, litres, each), not in "a bag" or "half a box", and keep the pack size in its own column so ordering is a separate step from counting. A sheet needs only these columns: item, area, unit, pack size, supplier, last close, delivered, this close, used and waste logged. Used is last close plus delivered minus this close. Three filled rows show the pattern (illustrative):

ItemUnitPackLast closeDeliveredThis closeUsed
Chicken thighskg5 kg bag3.025.03.025.0
Whole milklitres6 L case2.042.04.040.0
Butterkg500 g block1.09.01.58.5

Your first count of 100 or so items will take most of an hour, and the repeat counts get faster as the sheet follows your shelves. Count the fast and expensive items weekly, plus a quick midweek count of those same fast movers before the Thursday order. Slow dry goods can wait for a monthly count. The stocktake tutorial with a phone scanner covers ways to speed the count itself up.

AI helps most at the messy end. Staff dictate notes into a phone, and an assistant turns them into rows. The prompt must include your item list with units and pack sizes, or it will guess them. Here is a typical failure when the list is missing (illustrative):

Notes: Chicken thighs, one opened 5 kg bag, about 3 kg left. Milk 4 litres. Salad
leaves roughly 800 g. Butter, three blocks. Eggs, one full tray. Brisket, two
packs, about 1.2 and 1.0.
Turn this into a table: item, count, unit. Ask me if anything is unclear.

The reply rows were mostly right, but two were not. It wrote butter as 3 kg because it assumed 1 kg blocks, where yours are 500 g and the true figure is 1.5 kg. It wrote eggs as 30, because a tray holds 30, where your unit is trays and the count is 1. The fix is to paste the item master first ("Butter: kg, 500 g blocks; Eggs: trays of 30") and tell the assistant to ask rather than assume. If a count looks strange after that, the tutorial on stock count variance lists the usual reasons.

From four weeks of usage to a par for each item

Four weeks of counts give you weekly usage per item. The POS gives the weekday shape. Say the last four weeks averaged 38 covers on Tuesday, 42 on Wednesday, 51 on Thursday, 74 on Friday, 93 on Saturday and 62 on Sunday: 360 in all. Tuesday to Thursday is 131 of those, which is 36.4% of the week, so the Monday order should be sized at about 36.4% of a week's usage, and the Thursday order at 63.6%. Covers are a proxy. If an item belongs to a single dish, use that dish's own sales share instead.

Now the Monday order for six items (illustrative figures; "par" is expected Tuesday to Thursday use plus safety):

Item (unit, pack)Weekly use, 4 weeksAverageTue to Thu use (36.4%)SafetyParSunday countShortfallOrder
Chicken thighs (kg, 5 kg bags)26.1, 24.2, 28.0, 25.025.89.42.011.43.08.42 bags (10 kg)
Whole milk (litres, 6 L cases)38, 41, 40, 4039.814.53.017.54.013.53 cases (18 L)
Salad leaves (kg, 1 kg bags)13.6, 14.4, 13.9, 14.114.05.11.06.10.85.36 bags (6 kg)
Butter (kg, 500 g blocks)8.2, 8.9, 8.4, 8.58.53.10.53.61.52.15 blocks (2.5 kg)
Eggs (trays of 30)10.2, 11.0, 10.5, 11.110.73.90.54.41.03.44 trays
Beef brisket (kg, 3 kg packs)17.5, 18.8, 17.9, 18.218.16.61.58.12.25.92 packs (6 kg)

One row shows why the pack column matters. The brisket shortfall is 5.9 kg, and with 3 kg packs two packs (6 kg) is the only sensible answer. The butter shortfall is 2.1 kg, but blocks come in 0.5 kg, so you order five. Rounding up can overshoot, and sometimes you should not order at all. Arborio rice has a weekly use of about 5.4 kg, which makes the Tuesday to Thursday par about 3.0 kg against a count of 2.5. The shortfall is 0.5 kg, a tenth of a 5 kg bag, and the count is still above the safety stock of 1.0 kg, so ordering a bag would leave 7.5 kg on the shelf. A rule handles it: skip the item if the shortfall is under a fifth of a pack and the count is above safety.

Do not ask a chat assistant to calculate 100 pars in conversation. Ask it to write the formulas for your sheet layout, and test them by hand on three rows. For a layout where weekly usage sits in columns D to G, pack size in C, safety in J, count in L and the Tuesday to Thursday share in cell P1, the formulas look like this:

H2  =AVERAGE(D2:G2)                          average weekly use
I2  =H2*$P$1                                  expected Tue-Thu use
K2  =I2+J2                                    par (expected use + safety)
M2  =MAX(0,K2-L2)                             shortfall against the count
N2  =IF(AND(M2<0.2*C2,L2>J2),0,ROUNDUP(M2/C2,0))   packs to order

If the formulas disagree with your hand sum on any of the three rows, the layout description you gave the assistant was wrong, so fix the description and not the answer. The same table is what a paid system builds for you. Understanding it first means you can tell whether a vendor's suggested order is sensible.

Sales data: the weekday split and the waste check

Sales do a second job beyond the weekday split. Multiply the portions sold by the recipe quantity and you get theoretical usage, which you can set beside the actual usage from the counts. Suppose the roast chicken plate sold 58 portions in an average week at 0.30 kg raw each, and the chicken stew sold 24 at 0.25 kg. Theoretical use is 17.4 plus 6.0, which is 23.4 kg. The counts say 25.8 kg went. The gap is about 2.4 kg, roughly 10%, and at a cost of $6.80 a kg it is worth about $16 a week, or around $850 a year (illustrative figures).

Ask an assistant what could explain it and it will list the usual suspects: trim loss, over-portioning, spoilage, staff meals, miscounts, unrecorded comps. A typical reply puts theft near the top. Do not start there. Check the cheap causes first. Weigh ten portions at the pass during service. Check the trim yield on a bag of thighs. Look at the waste log. Recount the walk-in, since a count off by 2.4 kg is only half a bag. Only if all that is clean does the gap deserve a harder look. Pick your own tolerance after a month of data rather than borrowing someone else's benchmark.

The recipe quantities come from your costing sheet, so if you do not have one yet, build it first with the recipe costing spreadsheet tutorial. The POS side, meaning which reports to export and how to ask for them, is covered in the tutorial on POS insights tools versus a spreadsheet.

Drafting the supplier order, and the unit mistake to expect

Once the order column is trusted, the message to the supplier is a drafting job. Give the assistant the final order lines, the delivery date and your supplier's habits, and ask for a short message:

Draft a short message to my supplier rep for Monday's order. Delivery Tuesday 10
November before 09:00. Lines (item, pack, quantity of packs):
chicken thighs, 5 kg bag, 2; whole milk, 6 L case, 3; salad leaves, 1 kg bag, 6;
butter, 500 g block, 5; eggs, tray of 30, 4; beef brisket, 3 kg pack, 2.
Ask them to confirm by 16:00 today and to tell me about substitutions before
delivery. Use [first name] and [your name]. Add nothing that is not listed.

The first draft (illustrative) came back with three faults. It wrote "10 bags of chicken thighs", using the 10 kg figure as a count of bags, where the order is 2 bags. It added "and our usual lemons", an item that was not on the list. And it gave the delivery as Tuesday 11 November, which is a Wednesday. The corrected message lists every line as pack count and pack size, states Tuesday 10 November, and carries nothing extra. The unit slip is the one to watch, because a supplier who reads "10 bags" may well deliver 50 kg.

Before sending, compare the draft with the sheet line by line, in pack counts. If the supplier takes orders through a portal or an app, the same lines paste in, and the supply ordering tutorial covers comparing prices between suppliers before you send.

Events and menu changes that break a par

A par built from four ordinary weeks is wrong for an unordinary week. Add the known extra on top of par rather than adjusting the average. A private dining booking for 24 guests on Saturday with the chicken main adds 24 times 0.30 kg, which is 7.2 kg, to the Thursday order. With 5 kg bags that is two more bags unless your supplier sells by weight. Ask the assistant to do the sums if you like, but check them, since "24 times 0.30" is exactly the sort of line where a slip hides.

Five other things make a par stale, and each is worth a calendar reminder:

  • A menu change. A dish added or dropped shifts the usage of every ingredient in it. Paste the change and the recipe quantities into an assistant and ask which pars to revisit.
  • A change of delivery day. Par depends on days covered. If the Tuesday delivery moves to Wednesday, the Monday formula is wrong from that week.
  • A new pack size. A supplier that moves from 5 kg to 4 kg bags changes the rounding and sometimes the order.
  • A season. Salads and cold drinks in summer, braises and soups in winter. Recompute from the latest four weeks, not the last year.
  • A miscount carried forward. One wrong closing count appears twice, as a low usage this week and a high one next week. If a usage figure looks odd, look at the counts either side of it.

For forecasting covers before you order, the tutorial on forecasting covers and cutting food waste gives a method that feeds straight into the weekday shape above.

MarketMan: what the paid option adds, and what it costs

MarketMan is a paid restaurant inventory and purchasing system. Its pricing page lists Starter at $249 a month, Growth at $299 and Enterprise from $449, with a Book Demo button on each plan and no free trial mentioned. Starter includes recipe costing, actual versus theoretical reporting, waste tracking, one vendor EDI integration and 50 AI-powered invoice scans a month. Growth adds Smart Ordering, Order by Recipe, AI-assisted recipe suggestions, a second vendor integration and unlimited invoice scanning. Its purchasing page says it connects to POS systems including Square, Toast and Lightspeed, and that it monitors stock against the par levels you set and generates a suggested purchase order for you to approve with one click. MarketMan describes Smart Ordering as using predictive analytics to forecast demand. The pricing page does not state a contract term, so ask for that in the demo, and ask which plan includes par-based suggested orders.

What does it replace? Not the physical count, which still has to happen on a phone or tablet. It replaces the spreadsheet maths, the formatting, sending the order and the invoice typing. So work out whether that is worth it on two measures.

  • Cost against waste. Starter is $249 a month, or $2,988 a year. On $18,000 of monthly purchases, it has to save about 1.4% of them to cover its own fee. Growth at $299 needs about 1.7%. Those are break-even tests, not forecasts.
  • Cost against time. If counting, par work and ordering take you 2.5 hours a week, that is about $270 a month at $25 an hour. Software does not make time free, but it can shrink the part that is not counting.

I would move to paid software when you have three or more suppliers with different cut-off times, when invoices are piling up, when you run a second site or a commissary, or when you want theoretical usage calculated from POS sales without a monthly export. Until then, the sheet earns its keep, and it is not wasted effort, because the item list, units, pack sizes and pars you build are exactly what any system will ask you to enter. Questions for a demo: how are pars set (my own numbers, or sales-based), can pars differ by weekday, how are cases and units handled, how long is onboarding, what can I export if I leave, and which of my suppliers are connected electronically?

Five numbers to compare before and after the first month

Measure the same five things before you start and at the end of week four, and keep the measuring identical so a quiet month is not credited to the sheet. Here is what a record might look like (illustrative):

MeasureBeforeWeek 4How to measure it
Items run out mid-service per week62Tally on the pass whenever a dish is taken off
Waste logged, per week$190$140The waste log at cost
Weekly count time75 min45 minPhone timer
Time to build the order50 min20 minPhone timer
Chicken: actual against theoretical+10%+6%Counts against POS portions

If stock-outs fall and waste does not rise, the pars are about right. If waste rises, the safety margins are too generous or a pack-size rounding is overshooting. If stock-outs stay high, look at the weekday shape before the safety numbers, because a Tuesday to Thursday order sized with a Saturday's habits will run out. Keep the weekly routine small, review pars monthly, and re-run the four-week averages whenever the menu changes.

Questions owners ask before setting par levels

How do I set a par level for a restaurant ingredient?

Work out how much you use between deliveries, then add a safety margin. Usage per week is opening count plus deliveries minus closing count. Multiply by the share of the week the delivery has to cover, add about half a service day's worth of stock, and that is par. At order time, order par minus what is on the shelf, rounded to pack size.

Can ChatGPT or Claude calculate my par levels?

They can build the spreadsheet formulas, tidy count notes and draft orders, but they are unreliable at long arithmetic and unit conversion when asked to do the sums in conversation. Have the assistant write formulas for your column layout, test them by hand on three rows, then let the sheet do the maths.

How often should a small restaurant count stock?

Weekly for proteins, dairy and fresh produce, with a quick midweek count of the fastest movers before the second order. Dry goods can wait for a monthly count. Count after close, in the order you walk the storerooms, and always in the same unit you use in your recipes.

Is MarketMan worth it for one small restaurant?

It depends on what your time and waste cost. Its Starter plan was listed at $249 a month in October 2026, with Smart Ordering from Growth at $299. On $18,000 of monthly purchases, Starter must save about 1.4% to pay for itself, before counting your time. Ask for a demo and for the contract terms, which the pricing page does not state.

Further reads

Sources: MarketMan's pricing page and its restaurant purchasing and inventory pages (checked October 2026); par-level method worked through with illustrative restaurant figures; POS and supplier details are examples for you to replace with your own.

Want your par levels and ordering set up properly?

On a 1:1 call we'll look at your suppliers, delivery days and POS exports, build the count and par sheet around them, and decide whether paid software is worth it for you.

Book a 1:1 call with me