← All posts

Why nightly batch jobs are killing your stock accuracy

If your web shop and your stores agree on inventory once a day, they disagree the other 23 hours. Here is what that costs — and what real-time actually requires.

By Veedo Digital

Ask a store manager how much stock of a given line they have and they will check the shelf. Ask the e-commerce team and they will check a number that was true at 2am. Between those two answers sits most of the customer frustration in modern retail: the "in stock" that isn't, the click-and-collect order that gets cancelled an hour later, the markdown applied to product that already sold.

The reconciliation tax

Nightly integration was a reasonable design in 2008. POS systems were on-premise, bandwidth was expensive, and the web was a side channel. None of that is true anymore, but the architecture persists because replacing it feels risky. The cost is paid daily, in small amounts: cancelled orders, safety stock buffers set too high, and a team whose first job each morning is to find out what broke overnight.

What "real time" actually means

Real-time inventory does not mean every channel queries a central database on every page view. It means there is one ledger of record, every transaction — sale, return, transfer, count — writes to it as an event, and every channel reads a projection of it that is seconds old, not hours. Dynamics 365 Commerce is built this way; the hard part is committing to it rather than layering it over the old batch jobs.

Where to start

Pick one flow — click-and-collect is usually the right one — and make it truly event-driven end to end. Measure cancellation rates before and after. That single number tends to make the business case for the rest of the estate.

Next step

Let's talk about your stores.

Tell us where you are today and what's getting in the way. We aim to reply within one business day with a point of view — not a sales pitch.