A store hierarchy that hangs off your locations rather than your company structure, the same product in every size it comes in with a validated barcode on each, and an inter-store transfer booked as the two stock movements it physically is.
Every one of them is a place where the obvious modelling choice is the wrong one, and where getting it wrong is a migration rather than a setting.
Atlas already has a company hierarchy, and it carries a region, a currency and a tax rate, because it models legal entities and every order stores the tax rate of the unit that raised it. Hang forty stores off that and you either invent thirty-nine companies or force real ones to share a node. Stores hang off locations instead, and keep the legal entity that actually owns them.
It is a consumption at the source and a receipt at the destination, which is what physically happens. Atlas writes the pair in one go and links them, so total stock on hand is unchanged by a transfer and every figure computed off the ledger keeps working. Inventing a fifth movement type would mean rebuilding the ledger that holds every movement ever made.
Locations have not always been recorded on every movement, so a store-level balance can be right and incomplete at the same time. Atlas shows the figure with how much of the ledger it could see — because a blank helps nobody and a confident wrong number is worse than either.
Locations nest, so a chain reads as a chain rather than as a flat list of forty names. And because the company structure is a separate thing, a location can sit inside a district and inside a legal entity at once — which is exactly how a chain works.
A variant is a stock item in its own right — it is received, counted and transferred like any other — that knows which product it is a version of. And the barcode is checked rather than stored.
Stock leaves one store and arrives at another. Atlas writes both movements together and links them, so the pair can still be read as one act while the ledger keeps the shape every other figure in the product is computed from.
Atlas refuses a lot here, on purpose, and every refusal carries its reason on the screen. These are the ones this industry meets, in the words the screen actually uses — so that meeting one is a thirty-second fix rather than a support call.
Every one of these is also written into the guidance drawer on the screen it happens on, and into the process guides your own workspace generates — so a person who meets it at four o’clock on a Friday does not need us, or you.
Retail was built last on purpose, because its largest expected component is a programme of work rather than a module and should be decided on its own evidence. It is not here, and this page will not imply it is.
A short demo on your own stores and SKUs — districts and stores under one entity, a product in every size with its barcodes checked, and stock moved between two shops.
Book a demo