Food Wastage & Stock Rotation Log
Log food thrown away in a kitchen, cafe, bakery or food shop, value it, find the reason and the item costing you most, and print a wastage report. Runs entirely in your browser — nothing is uploaded.
Version 1.0.0 · Updated Aug 5, 2026
Overview
How to use Food Wastage & Stock Rotation Log
The complete in-tool guidance, reproduced here so you can read it before you download.
What this tool does
CM8-112 is a working wastage sheet for a kitchen, cafe, bakery, deli, canteen or food shop. You record one line for each thing thrown away — what it was, how much, what it cost, why it went and where it went from — and the tool values it, groups it by reason, category, item, area and month, and prints a report you can put in front of a head chef, an owner or a franchise auditor.
Everything runs inside this single file. There is no account, no upload and no network request of any kind, so your costs, suppliers and staff names never leave the computer you are using.
The point of a wastage log is not the total. It is the ranking. Almost every kitchen finds that two or three items and one or two reasons account for most of the money, and that the fixes for them are cheap and obvious once they are written down.
What to log, and when
Log at the moment the item goes in the bin, not at the end of the week. Wastage recalled on Friday afternoon is always lower than wastage recorded on the day, and the reason codes become guesses.
Log everything you would have to buy again, including:
- Stock that passed its use-by date or spoiled before it.
- Food you made or baked and did not sell.
- Dishes returned by a customer, dropped, burnt, or sent out wrong and remade.
- Deliveries rejected at goods in — record these even when the supplier credits you, because the credit does not cover the sale you could not make.
- Trim and preparation waste, if you want to see it. Peel, bone and offcut are a normal cost of preparing food, but a bad supplier or a badly written spec shows up here first.
Where a line covers several small items thrown away together, record the total quantity and use the note to say what it was made up of. Where the quantity is genuinely estimated rather than weighed, say so in the note — it changes how much weight anybody should put on that line.
The reason codes
The reason is the field that makes the log worth keeping, because each reason points at a different person and a different fix:
- Reason — What it usually means — Where the fix sits
- Out of date — Reached its use-by unused — Ordering quantity and stock rotation
- Over-production — Made or baked more than sold — Batch sizes and forecasting
- Spoilage — Went off before its date — Storage, temperature, handling
- Prep error — Burnt, dropped, wrong dish — Training, specs, kitchen pressure
- Customer return — Sent back or remade — Recipe, portioning, service
- Damage in transit — Rejected at goods in — The supplier, and your goods-in check
- Trim and prep — Peel, bone, offcut — Product spec and yield
The tool refuses two combinations that quietly corrupt the analysis: an item marked "out of date" whose use-by is still in the future, and an item marked "spoilage" that was already past its use-by. If an item had a shorter secondary life once opened, put that secondary date in the use-by field — that is the date that actually governed it.
Valuing what you threw away
Every line is valued at what it cost you to buy or make, not at what you would have sold it for:
Value wasted = quantity × cost per unit
Total wastage value = the sum of value wasted across every record in the current filter
For a bought-in item, use the delivered cost of one unit. For something you made, use the ingredient cost of one portion, not the menu price. Menu price would include your margin, and counting margin as a loss overstates wastage — often by a factor of three.
Lines with no unit cost are still counted as records, but they contribute nothing to the value. The Records tile tells you how many lines are in that state, and the total is understated by exactly those lines. Fix them before quoting a total to anybody.
Average value per record = total wastage value ÷ number of records
The Average per record tile also shows the median, because the average is easily dragged upward by a single rejected delivery. When the two are far apart, the total is being driven by a handful of large lines — go and look at those, not at the long tail.
Quantities in kilograms, litres, each and portions are never added together anywhere in this tool. Where an item has been recorded in more than one unit, the item table says "mixed units" rather than printing a meaningless total.
Wastage as a percentage of sales
A money total means little on its own, because it moves with how busy you were. The usual way to make it comparable is to express it against sales:
Wastage % of sales = (total wastage value ÷ sales value for the same period) × 100
This figure is only meaningful when the sales value in the settings covers exactly the same dates and the same site as the records the filter is showing. It is the easiest number in this tool to get badly wrong. Filter the register to one week while leaving a whole quarter's sales in the settings and the percentage comes out roughly thirteen times too low, and it will look reassuring rather than obviously broken. The tile detail line and the printed report both repeat this warning, and there is a free-text settings field for stating what the sales figure covers so a reader can check it.
Two further cautions. Use net sales excluding sales tax, because your costs are net too; mixing the two understates the percentage. And a percentage calculated from an incomplete log is not a low wastage rate, it is an incomplete log — the first month of logging almost always produces a flattering number for that reason alone.
Set the target percentage from your own history rather than from an industry figure. Published benchmarks rarely state whether they count trim waste, whether they are on gross or net sales, or whether they include rejected deliveries, so they are not comparable with anything you measure yourself.
Shelf life, use-by and rotation
Where you record a delivery or production date and a use-by date, the tool works out two things:
Shelf life (days) = use-by date − date delivered or made
Life used = (date thrown away − date delivered or made) ÷ shelf life × 100
Life used is the more interesting of the two. A line at or near 100 % aged out — that is an ordering or rotation problem. A line at 0 % or 20 % was thrown away with most of its life still in it, which is over-production, a prep error or a rejected delivery, and needs an entirely different conversation. A figure above 100 % means the item was binned after its use-by date had already passed.
Past use-by = date thrown away is later than the use-by date
An item binned on its use-by date shows as "No", because it was still within its life on that day. Only items binned afterwards show as "Yes". A run of "Yes" in one area is the clearest possible evidence that stock rotation is not happening there — old stock is being pushed to the back and forgotten rather than brought forward and used first.
Both figures are blank for anything with no delivery or use-by date recorded, which is normal for dishes made and sold the same day.
Categories, areas and item names
The category groups the stock list into the eight lines most food businesses already think in. It drives the category chart, which is worth reading against what each category costs you to buy: meat, fish and dairy routinely account for a large share of the wastage value on a small share of the weight.
The area is free text, so use whatever names your team already uses — walk-in fridge, cold store, bakery counter, goods in, service pass, bar. Keep the wording identical each time, because the area summary groups on the text exactly as typed. The same applies to item names: "Vine tomatoes" and "vine toms" will appear as two separate items in the item chart and table.
Recording who logged the line is not about blame. It tells you whether the whole team is logging or whether one conscientious person is carrying the record, which changes how you read every total in the tool.
Reading the charts and tables
The reason donut and the category bar chart are both by value, not by the number of lines. This is deliberate. Counting lines makes bread and salad look like your biggest problem; counting money usually points at fish, meat and cancelled bookings.
The monthly chart shows value by calendar month of the date thrown away. Read it against how busy each month was — flat wastage in a quiet month is a real deterioration, and the chart cannot see that on its own.
The item table shows each item's total quantity, value, share of the value, the reason that accounts for most of that value, and how many separate lines make it up. One large line and thirty small ones need different responses even at the same total.
Share of value = item or area value ÷ total wastage value in the filter × 100
The area table gives value and record count for each place, with the largest reason in that area. Areas are where fixes actually happen: a fridge with a rotation problem, a counter with a batch-size problem, a goods-in bay with a supplier problem.
Turning the log into a decision
A month of records is usually enough to act on. Work down the item table from the top and ask one question of each line: was this bought wrong, stored wrong, made wrong, or sold wrong? The reason column answers it in most cases.
- Out of date, high life used — order less, or order more often in smaller drops.
- Over-production, low life used — cut the batch size and measure again next week.
- Spoilage — check where it was stored, what it was stored under, and at what temperature.
- Damage in transit — take it to the supplier with the dates and the money attached. A wastage log is the only evidence that makes that conversation short.
Then change one thing, keep logging, and compare the same filter a month later. That comparison is worth more than any benchmark.
What this is not
This is a cost record. It is not a food safety record, and it is not evidence of due diligence. It does not replace temperature monitoring, cleaning schedules, allergen records, supplier approval, traceability or a hazard analysis, and it should not be offered to an inspector in place of any of them.
Nor does it decide anything for you. Whether a particular item is still fit to use, whether it can be redistributed, and how it must be disposed of are questions of food safety law and local waste rules, which differ by country. This tool only records what you decided and what it cost.
Printing and sharing
Print Report produces a report from whatever the current filter shows: header, headline figures, all four charts, the item and area tables, the full register and your closing notes. Print to PDF to circulate it.
The scope line under the title states the filter in force. Before you issue anything described as a period report, clear or set the filters deliberately and check that the sales value in the settings covers that same period — otherwise the percentage on the front page will be wrong in a way the reader cannot see.
Saving your work
Records, settings and the report header are written to this browser's local storage as you type, and the toolbar shows the time of the last save. That storage belongs to one browser on one computer: another browser, a private window, a second machine or a clean-up tool that clears site data will not have it.
Treat Export .json as the real save — one file containing everything, which Import .json restores anywhere. Export CSV gives you the register for spreadsheet work and includes every filtered record, not only the ones drawn on screen. Reset asks twice, then erases everything this tool has stored. There is no undo.
Accuracy & disclaimer
This tool calculates from what you enter and nothing else. It cannot tell whether a quantity was weighed or guessed, whether a unit cost is current, whether the reason code is honest, or whether the sales figure in the settings covers the period on screen — and the headline percentage depends on all four.
It is an internal record-keeping and costing aid. It is not food safety advice, not a regulatory record, and not a substitute for your own stock control system or your own judgement about what is safe to use.