Daily Milk and Bread Order: Size It From Leftovers
Size tomorrow's milk and bread order from tonight's leftover count, the day-of-week pattern and the cost of one unsold packet versus one missed sale.
ShelfLifePro Editorial Team
Inventory management insights for retail and pharmacy
The order that gets placed by habit
The milk van shows up before you've had tea. The driver asks "same as yesterday?" and you say yes, because thinking it through at 6am isn't happening. The bread guy comes an hour later and gets the same answer.
That's how daily-delivery items get ordered in a lot of shops: by habit. Whatever number felt right a few months ago sticks around. Some evenings there's a crate of pouches nobody bought. Other evenings someone walks in at 8:30 asking for brown bread and you've got nothing to sell them.
Neither of those is bad luck. They come from an order quantity that never looks at what actually happened yesterday.
Why habit drifts away from demand
A habit number gets set once, usually after a day that went badly. You ran out on a busy Sunday, felt stupid, and bumped the order up. Or you threw away a pile of bread and cut it back. Then the number freezes.
Demand doesn't freeze, though. A school reopens nearby, a new building fills up, or the shop down the road starts stocking a cheaper brand. Each day also has its own shape. Your Sunday might look nothing like your Tuesday, but the habit order treats every day the same.
There's another problem too. When you sell out, you don't see how much more you could have sold. Leftovers you can count. Missed sales leave no trace. So over time the habit number leans whichever way your last painful memory pushed it.
Step one: count leftovers at close
This takes five minutes and does most of the work. At closing, count what's left of each daily item. Do it by product and by date, not just "milk".
Write down three things for every daily item:
- Units left, split by date: today's delivery vs anything older.
- Sellable tomorrow or not. Check the date on the pack. If yesterday's pouches can still sell tomorrow morning, they aren't waste yet. They're tomorrow's first units, so take them off tomorrow's order.
- Sell-out time, if you ran out. "Gone by 7pm" is worth writing down. A sell-out hides demand, and that time tells you roughly how much you missed.
From that, units sold = opening stock + delivered − left at close. On a day you sold out, mark the figure with a plus sign. It means real demand was at least that much, and probably more.
Step two: read the day-of-week pattern
Don't compare today with yesterday. Compare it with the same weekday. Thursday's order should come from the last four Thursdays, not from Wednesday.
Lay out a simple grid: products down the side, the last four same-weekdays across the top, units sold in each cell. Circle any cell with a plus sign (a sell-out). Then:
- Average the four numbers.
- If one or more were sell-outs, nudge the average up. A sell-out at 6pm counts for more than one at 9:45pm.
- Flag anything unusual: a festival, a local holiday, a rainy day that kept people indoors. Leave those out of the average, or set them aside as their own case.
If you want the full arithmetic for working out a reorder level from sell-through, see reorder point calculation using the sell-through method. Daily items are the same idea with a one-day lead time.
Get the day-old & markdown rotation log
For product that lives hours: markdown steps with times, day-old transfers at close, and an honest waste column. Printable PDF + Excel. See what's inside.
Instant download. No spam, unsubscribe in one click.
Step three: price one unsold packet against one missed sale
This is the bit habit always skips. Being over by one unit and being short by one unit don't cost the same, so your order shouldn't aim straight at the average.
One unsold unit costs what you paid for it, minus anything you get back. That might be a supplier return, a markdown, or selling it next day at a discount. One missed sale costs the margin on that unit, plus whatever else the customer would have bought. Someone who came in for milk and found none often leaves without the bread and eggs too.
For example, here are illustrative figures for a half-litre pouch:
- Bought at ₹25, sold at ₹27, so ₹2 margin.
- An unsold pouch that can't sell tomorrow loses the full ₹25.
- A customer who leaves empty-handed also takes their bread and eggs with them. Call that another ₹10 of margin, so ₹12 lost in total.
In that example an extra pouch risks ₹25 and a missing pouch risks ₹12. Over-ordering costs about twice as much as under-ordering, so you should order a bit below your average and accept that you'll run out late in the evening on some days. If your supplier takes back unsold stock, the cost of a leftover drops and the balance swings the other way. Order at or a bit above the average.
Bread usually lasts a couple of days, so a leftover loaf isn't a total loss. You can push it as day-old stock. Day-old bread profit shows how to turn yesterday's loaves into money instead of waste. That lowers the cost of a leftover, which in turn means a slightly bigger bread order is fine.
A worked order for Thursday
Worked example: it's Wednesday night and you're sizing Thursday's toned milk. The last four Thursdays sold 38, 41, 36 and 40+, and the 40+ was a sell-out at 8pm. The average is just under 39. Because of that early sell-out, call true demand about 41.
At close tonight you counted 4 pouches still in date for tomorrow morning, so they go against the order: 41 − 4 = 37. The unsold-vs-missed comparison above says lean low, so trim one or two. Order: 35 or 36. The habit number was 45. On a day like this, that's nine or ten pouches that would have soured or been sold at a loss.
Now brown bread, same example. The last four Thursdays sold 12, 14, 11 and 13, with no sell-outs. Two loaves are left with a day of life, and those go to the day-old rack instead of counting as fresh. Because a leftover loaf can still earn something, you don't trim. Order: 13. Habit said 15.
Run the same check for curd and paneer, where the window is even tighter. 48-hour shelf life: paneer and curd wastage covers why those two need their own rhythm.
Keeping the habit on paper
A notebook can run this method. One page per weekday, a column per product, and leftover and sell-out time written in every night. After four weeks you'll have the grid. If you'd rather not draw columns by hand, the day-old & markdown rotation log has the bakery and dairy fields laid out already.
What paper won't do is the boring part, day after day. It won't redo the four-week average every night, notice that the Tuesday figure has crept up for three weeks running, or remind you that the leftover count is missing on the busiest day. It also can't tell you which of fifteen daily items is losing you the most money this week. And the night someone skips the count, the method quietly stops working.
Where a daily agent helps
This is the kind of routine ShelfSense was built for. Once a day it reads your stock, batch, cost and expiry records, works out a reorder size from sell-through and cost basis with a safety buffer, and lists what needs attention, ranked by money at risk. It shows the arithmetic, so you can check it the way you just checked the Thursday milk. It only recommends. You decide, and you still give the van driver the number yourself. It also learns over time which calls actually sold.
You can start with a CSV export of your stock and expiry dates. If you're on Tally, export to CSV today; a direct connection is on request. ShelfSense's free audit reads one CSV export, no account needed. Try it on your daily items and compare its numbers with tomorrow's habit order.
ShelfLifePro Editorial Team
The ShelfLifePro editorial team covers inventory management, expiry tracking, and waste reduction for pharmacies, supermarkets, and retail businesses worldwide.
See what batch-level tracking actually looks like
ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.
Prefer to talk it through? Book a 30-min call
Get the monthly expiry brief
One short email a month, only when there is something worth reading. FEFO tactics, markdown math, and stories from Indian retailers. No spam.
No spam. Unsubscribe in one click. Email only, no WhatsApp spam.
Get expiry tips on WhatsApp
Leave your number and we say hello on WhatsApp, then share expiry-tracking tips for Indian retail now and then — FEFO, markdowns, monsoon stock. No broadcast lists; reply STOP any time.