A foodservice wholesaler with a chilled depot and an ambient depot supplied about 900 restaurants, hotels, and caterers. Foodservice inventory there meant daily stockouts on a rotating set of fast lines while slow lines kept eating rack space and cash. With nothing more than weekly CSV exports from a legacy ERP, Flowra built a 14-day stockout watchlist ranked by revenue at risk. Stockouts on the fastest lines fell 31% in eight weeks.

−31%stockouts on A-velocity lines, 8 weeks
−12%spoilage-related write-offs
~1 daybuyer time saved per week on emergency POs
0integration work required

The situation

About 3,400 SKUs, half of them chilled with shelf lives between five days and six weeks. Demand spiked every Monday, ahead of public holidays, and whenever the weather turned. Three buyers worked from minimum stock levels that had been set in the ERP years earlier and rarely revisited.

The ERP suggested reorders whenever on-hand dropped below the minimum. It did not prioritise those suggestions, did not account for open purchase orders or backorders, and treated a €3 tin of tomatoes the same as a €90 case of salmon. Buyers spent the mornings raising emergency purchase orders and the afternoons explaining stockouts to sales.

Meanwhile the chilled depot regularly wrote off over-ordered lines that had been bought "to be safe" and then sat past their date.

What the data showed, and didn't say

Historical shipments made clear which items actually drove revenue and which merely looked busy because they appeared in bundle picks. The gap between system on-hand and sellable cover only appeared once velocity was merged with open purchase-order data, and that merge had never been done at line level.

Weekly stock snapshots and delivery history were enough to see the pattern. The ERP simply had no place to put the question: which lines run out in the next 14 days, and what is each one worth?

Connecting Flowra

No API was available, and the integrator no longer supported the ERP. The operations lead exported three CSV files the ERP already produced: sales lines, purchase lines, and a weekly stock snapshot, for the previous three years. Flowra mapped the columns automatically during onboarding through its CSV connector, and the first report was ready within minutes of the upload.

From then on the same exports were dropped into Flowra every Friday. Nightly runs re-scored the catalog, and the weekly snapshot corrected the reconstructed stock trajectory where it drifted from the count.

What Flowra surfaced

  • A 14-day stockout watchlist ranked by revenue at risk: every SKU whose days of supply fell within one supplier lead time was flagged critical, within two lead times reorder soon.
  • Recommended order quantities from average daily sales and lead time at a 95% service level, rounded to case packs and supplier minimums.
  • Ambient and chilled splits so receiving docks were not overloaded on the same morning, with the chilled list capped to what the cold room could accept.
  • An over-cover list for chilled lines where forward cover exceeded the shelf life, which was the spoilage problem stated as a number.
Flowra · recommendation draftConfidence: Medium
Expedite 36 cases of SKU 1180 (chicken breast fillet 5kg, chilled) for Monday delivery
Fact
Stockout signal: critical. Reconstructed days of supply 2, supplier lead time 3 days. 4-week velocity up 19% versus the 12-week baseline, driven by Monday orders from 14 hotel accounts. Open purchase order of 24 cases due Tuesday.
Forecast
Stockout by Monday afternoon, before the open order arrives. Revenue at risk over 14 days: about €6,100, plus substitution on the two hotel contracts with penalties.
Recommendation
Expedite 36 cases for Monday and keep Tuesday's order. Alternative: offer the 2.5kg pack as a substitute to the seven smallest accounts and expedite 20 cases.
Hypotheses
Monday demand matches the last four Mondays; supplier can deliver on 48 hours' notice; the snapshot from Friday is accurate. Confidence is medium because the stock trajectory is reconstructed from weekly files rather than a live source.
Next step
Approve, adjust the quantity, or ask why. Nothing changes in the ERP until you do.
Data refreshed 38 h ago · 3 years of history · Source: CSV export (weekly)

What the team did

Morning ops reviews started from the watchlist rather than from every ERP exception flag. The three buyers split it by supplier, approved or adjusted the quantities, and raised the purchase orders in the ERP themselves. Anything below the 14-day window went to the weekly buying block instead.

The chilled buyer used the over-cover list to cut order sizes on 40 lines that had been bought defensively. Sales received the watchlist by email each morning so account managers could warn hotels before a substitution rather than after.

Overrides were common in the first two weeks, mostly for supplier holidays Flowra could not see. They were logged, the supplier calendar was added as an input, and the override rate fell below 10% by week four.

Results

MetricBeforeAfterTimeframe
Stockouts on A-velocity linesBaseline−31%8 weeks
Spoilage-related write-offs, chilled depotBaseline−12%One quarter
Buyer time on emergency purchase orders~1.5 days per week~0.5 day per weekFrom week 3
Time to first stockout watchlistNever producedMinutes after CSV uploadDay 1

"We used to find out about a stockout when the driver called. Now the list is on my phone before the depot opens, with the revenue behind each line."

— Purchasing Lead, foodservice wholesaler

What made it work

  • A window, not a warning. "Might stock out" became "stocks out within 14 days, worth €6,100". The horizon logic is in stockout risk windows.
  • Cover against real lead time. Minimum stock fields set years ago were replaced by days of supply versus purchase-to-receipt history. See when to reorder.
  • Honest confidence. With weekly files, Flowra showed medium confidence and said why, so buyers knew which lines to double-check. That behaviour is part of how Flowra earns trust.

Frequently asked questions

Can Flowra work for foodservice inventory without an ERP integration?

Yes. This wholesaler uploaded three CSV exports its ERP already produced: sales lines, purchase lines, and a weekly stock snapshot. Flowra mapped the columns automatically, and the first report was ready within minutes. A read-only SQL or API connection can be added later without redoing the setup.

How does Flowra handle shelf life on chilled lines?

By comparing forward cover with the shelf-life window per line. Chilled lines whose cover exceeded their shelf life were flagged as over-cover, and recommended order quantities were capped so a line was never ordered beyond what could sell before its date.

Why was confidence shown as medium rather than high?

Because stock was reconstructed from weekly files instead of a live source, and the data was up to 38 hours old at the morning review. Flowra lowers its confidence badge when data is stale and says so, so the buyers knew which lines to verify before approving.

Related reading

Same playbook, your data. Book a 20-minute walkthrough or upload a file and get your first ranked action list.

Get my free inventory report →