I don’t understand the purpose of the Item Availability Model. If you’re getting inventory updates from a store at least once a day, can’t you use a more simple approach to stock prediction than a machine learning model? I.e. they can calculate the historic sale velocity of an item and with the current stock number decide whether the item will be there when the shopper arrives? They give the example of seasonal items, but if a customer tried to order egg nog in July, wouldn’t they have inventory data that the nog hasn’t been in stock for months? Maybe I’m overestimating the fidelity or completeness of the data they receive from retailers, and I guess ML is a way to do all this math without expressing it in code.
There's a great aversion to coding up any heuristic or rule system when you can learn about ML and apply it. It's more interesting, flexible and pads resumes. And sometimes it works as well or better than the rule systems, though it's rare.
I asked a similar question of someone who worked on these systems at Instacart, and the answer was that story inventory is often innacurate or incomplete. The stores just haven't needed the degree of accuracy before.
There's also a fun integration problem: food manufacturers essentially lease shelf space and then the manufacturer handles all the inventory/restocking, and the store itself doesn't know or care what's there. So now you have to contact a bunch of third parties to learn what's in the store.
Yep. The inventory drift from wrong shipments and damaged items varies from store to store, but in the store I work at inventory numbers are often off by 5-10%. And much higher numbers aren't unheard of. Most stores completely re-count every item they have quarterly.
Inventory management is something that's easy in theory, and very very hard in practice.
Totally agree, I work on the COVID vaccine distribution/administration for one state in the US. Inventory tracking is very hard, not technically so much as operationally. For example, healthcare workers didn't go to school to learn how to maintain inventory levels, they went to school to deliver healthcare. Our systems have to constantly remind and nag the users to keep reported inventory at least close to reality.
the store does know, or can figure out if they really wanted to.
every vendor is assigned some shelf space and has some restocking day (like every morning for bread) when the shelves are expected to be 100% full.
then they have purchases data from point of sale terminals/online orders.
We deal with a similar problem in construction materials, and it's not that simple.
Situation:
1)Customer picks up product, other falls on the ground and becomes damaged, product -x
Equation: a-b-x where you don't know how much product is damaged
2)Product arrives in a bad batch, x number is affected, and requires manual adjustment, this doesn't happen, or happens incorrectly
Equation: a-b-x where you don't know how much product is damaged
3)Customer picks up X amount, however x-y was registered as a sale
Equation: a-b-y where you don't know how much product is unaccounted for
4)Delivery is expected on x day, however due to traffic/sickness/equipment failure delivery is delayed
Equation: a-0, stock isn't available as it didn't arrive, however the assumption was that product arrived (trivial to fix this one, but I'm laying out scenarios).
You now have four scenarios that are guaranteed to happen around %10 of the time. Issues can be expanded to the manufacturer/border/trade agreements/ thousands of other potential scenarios that disrupt sourcing.
In terms of taking stock, it's not a trivial task to take accurate inventory on a regular basis. It's a manual problem that can only be done in a reliable fashion in most cases through estimation (therefore inaccurate).
The reason why they provide availability ratings is that it provides a clearer picture of what a customer can purchase, and in the event it has a low rating, prompt for potential replacements. It's not binary, it's a case of 'probably' or 'probably not'.
I've seen stock that should have lasted a week disappear in a day, stock mis-allocated(multiple times for the same item from multiple vendors in the same day), large volumes sold incorrectly resulting in stock adjustments, wastage from random occurrences, etc.
I hope this provides a level of insight into the complexities of
There’s usually a fair few features that can be incorporated into demand prediction: trend, seasonality (daily, weekly, monthly..), special events (e.g. Easter eggs selling faster near Easter), weather, restocking time etc.
I imagine you could get decent improvements in prediction accuracy using a more sophisticated ML model.
That said even the simple sale velocity model you describe has learnable parameters (e.g. historical data window length). This would probably be best done using an ML rather than ad hoc approach. An ML approach might be as simple as a logistic model indicating whether an item will be in stock or out of stock based on time of day + stock levels at the start of the day.