A food truck inventory spreadsheet tracks stock in two places, the commissary and the truck, one service at a time. For each item: what was on the truck at the start, what you loaded from the commissary, and what was left at close, of which how much was thrown out. Used is start plus loaded minus left. Compare that with what the menu says you should have used, from what sold, and the gap tells you what walked off, got dropped or was scooped heavy. Tomorrow's load list is the par minus whatever stays on the truck. Below is a Saturday service worked through and a free Excel template.
The short version
- List what the truck carries, with a par for one service and whether it can stay on the truck overnight.
- Before the service: load the par, minus what's already on the truck and good.
- At close: count what's left, and note what gets thrown out.
- Used = on the truck at start + loaded − left at close.
- Should have used = each menu item sold × its recipe. The gap is used minus that.
- Next load = par − what stays on the truck. Perishables don't stay.
- TaroStack keeps the commissary and the truck as two stock locations, counted offline. More below.
What the truck carries
Windward Roots, the made-up taro business I use in these examples, runs a truck at weekend markets, stocked from its kitchen, which is its commissary. The items, their cost and the par for one service:
| Item | Unit | Cost | Par per service | Stays on the truck? |
|---|---|---|---|---|
| Taro patties | each | $1.10 | 70 | Yes (freezer) |
| Taro sweet rolls | each | $0.35 | 170 | No |
| Slaw | kg | $3.00 | 6 | No |
| Sauce cups | each | $0.12 | 80 | Yes |
| Kalua pork | kg | $14.00 | 6.5 | No (hot held) |
| Clamshells | each | $0.18 | 140 | Yes |
| Taro chips, 3 oz | each | $1.45 | 48 | Yes |
| Kūlolo | pack | $1.92 | 40 | Yes (cooler) |
| Canned drinks | each | $0.60 | 120 | Yes |
The chips and kūlolo are made in the kitchen, so their cost is what they cost to make. The rolls, slaw and pork don't stay: they're fresh for each service, and whatever's left at close is thrown out or goes back to the kitchen.
The menu, as recipes
| Menu item | Price | Sold | Uses |
|---|---|---|---|
| Taro burger | $14 | 62 | 1 patty, 1 roll, 50 g slaw, 1 sauce cup, 1 clamshell |
| Kalua pork sliders, 2 | $13 | 48 | 2 rolls, 120 g pork, 40 g slaw, 1 clamshell |
| Taro chips, 3 oz | $5 | 40 | 1 bag |
| Kūlolo | $6 | 35 | 1 pack |
| Canned drink | $3 | 90 | 1 can |
That Saturday took $2,172. Multiply each menu item by its recipe and you have what the service should have used: 62 patties, 158 rolls, 5.02 kg of slaw, 5.76 kg of pork, and so on.
The service, counted
| Item | Start | Loaded | Left at close | Thrown out | Used | Should have used | Gap | Cost of gap |
|---|---|---|---|---|---|---|---|---|
| Taro patties | 0 | 70 | 6 | 0 | 64 | 62 | 2 | $2.20 |
| Taro sweet rolls | 0 | 170 | 8 | 8 | 162 | 158 | 4 | $1.40 |
| Slaw | 0 | 6 kg | 0.6 kg | 0.6 kg | 5.4 kg | 5.02 kg | 0.38 kg | $1.14 |
| Sauce cups | 0 | 80 | 15 | 0 | 65 | 62 | 3 | $0.36 |
| Kalua pork | 0 | 6.5 kg | 0.5 kg | 0.5 kg | 6.0 kg | 5.76 kg | 0.24 kg | $3.36 |
| Clamshells | 40 | 100 | 28 | 0 | 112 | 110 | 2 | $0.36 |
| Taro chips, 3 oz | 12 | 36 | 8 | 0 | 40 | 40 | 0 | |
| Kūlolo | 0 | 40 | 5 | 0 | 35 | 35 | 0 | |
| Canned drinks | 24 | 96 | 30 | 0 | 90 | 90 | 0 | |
| Total | $8.82 |
Left at close includes what gets thrown out. Used is everything that left the truck's stock during service.
What the gaps say
The packaged things came out exact: 40 bags of chips used, 40 sold. That's what a count looks like when nothing's going wrong, and it's a useful check that the count itself is right.
The cooked things didn't. Two patties more than the burgers sold: dropped, or a burger remade. Four rolls: staff lunch nobody rang up, which is fine as long as it's known. The kalua pork, 240 g over, is two portions' worth of heavy scoops across 48 orders, and at $14 a kilo it's the biggest gap on the sheet. A portion scoop that holds 120 g fixes it.
Then the waste: 8 rolls, 600 g of slaw and 500 g of pork thrown out at close, $11.60. The pork is most of it, because 6.5 kg was loaded for 5.76 kg of orders. With the 120 g scoop, a par of 6 kg would have covered the day with two portions to spare. A written record of what was thrown out, and why, is what a waste log is for.
| Sales | $2,172.00 |
| Cost of what the menu says sold | $425.64 (19.6%) |
| Cost of the gaps | $8.82 |
| Cost thrown out | $11.60 |
| Actual food cost | $446.06 (20.5%) |
Almost a point of food cost in one service, from two portions of pork, a few rolls and a par set a little high. The same idea for a whole kitchen, split into price and usage, is in the food cost variance formula.
Tomorrow's load list
Next load = par − what stays on the truck:
| Item | Par | Stays on the truck | Load |
|---|---|---|---|
| Taro patties | 70 | 6 | 64 |
| Taro sweet rolls | 170 | 0 | 170 |
| Slaw | 6 kg | 0 | 6 kg |
| Sauce cups | 80 | 15 | 65 |
| Kalua pork | 6.5 kg | 0 | 6.5 kg |
| Clamshells | 140 | 28 | 112 |
| Taro chips, 3 oz | 48 | 8 | 40 |
| Kūlolo | 40 | 5 | 35 |
| Canned drinks | 120 | 30 | 90 |
That list is also the commissary's pick list for the morning, and the commissary's stock drops by exactly that much when the truck pulls out. How a par relates to reordering the commissary itself is in par level vs reorder point.
Get the spreadsheet
Download the food truck inventory spreadsheet. It has the items with their pars, the menu as recipes, the service sheet that works out used, should-have-used, the gaps, the waste and tomorrow's load list, and the food cost for the service. Count, type, and the rest follows. It's an ordinary Excel file with no macros, it prints, and it works in Google Sheets, LibreOffice and Numbers.
Used =start + loaded - left at close
Should have used =SUMPRODUCT(menu items sold, this item in each recipe)
Load next time =MAX(0, par - what stays on the truck)
Where this stops working
The spreadsheet covers the truck. The commissary is a stockroom of its own, with deliveries coming in, prep batches of pork, slaw and patties made from raw ingredients, and its own count, and a truck at two markets in a weekend draws on it twice. Keeping the commissary's numbers right means writing down every load, every return and every prep batch, and the spreadsheet doesn't know the pork from Friday's batch is the pork that needs using first. If a supplier recalls a lot of pork shoulder, the question is which prep batches used it and which services served it, and that's in nobody's spreadsheet.
How TaroStack does it
In TaroStack, the commissary and the truck are two sites, each with its own stock. The morning load is a transfer, so the commissary's stock drops when the truck pulls out and the truck's goes up, and anything coming back is a transfer the other way. Counting at close happens on a phone, with no signal if the market's in a field, and sends itself later. Pars are minimum and maximum levels per item and site, so the truck's par and the commissary's reorder point live side by side.
The prep happens in the commissary as batches from recipes: the kalua pork, the slaw, the patties, each taking its raw ingredients from their lots, so a supplier's recall is one report away from the prep batches and the days that used them. What's thrown out is written off with its reason, spoiled or expired, and its cost, so waste is a report rather than a feeling. Comparing what the menu says against what was used stays in the spreadsheet for now; TaroStack keeps the stock it's measured against honest.
Counting, lots and waste with reasons are on every plan, from $49 a month. A commissary and a truck as separate sites, with prep batches from recipes, is Standard, at $99, which takes up to three sites. The first 30 days are free. If you'd like a hand setting up, ask, and we'll do it with you.
