The number is right. Ask it why.

Every stock figure in sparx is worked out from what actually happened (every delivery, sale, count, breakage and transfer) rather than stored and overwritten. So any quantity on any screen comes apart in front of you, back to the day somebody last walked out and counted the shelf. And it is re-added every night, so you hear about a problem from us at breakfast instead of from a customer in six weeks.

$29/mo · unlimited users · free with Commerce or B2B · 14 days free either way

Guji Natural: 1kg

Warehouse
Counted on the shelf14 Feb120
Delivered3 deliveries+240
Sold188 orders−312
Came back4 returns+9
Broken on arrival4 Feb−6
On hand51
Held for orders not yet shipped6 orders−10
Free to sell41

1,290 entries · re-added at 04:31 today · agrees to the unit

You don’t quite trust the number enough to promise it.

Somebody asks if you have four of something and you say “let me go and look”, because you have been caught before, and the walk to the back is cheaper than the phone call afterwards. Nothing about that is disorganised. It is what anyone sensible does with a number they cannot check, and it quietly costs you an hour a day and the occasional order.

A shopkeeper handing a paper bag across the counter to a customer.

It is not just you, and it is not carelessness.

An independent survey of 400 people who run stock for a living, published in 2026, found that the overwhelming majority still keep it in a spreadsheet, and that the thing they complain about is not missing features. It is that the number is wrong, the supplier is late, and nobody can tell them why.

85%

still run their stock on spreadsheets, including half of the businesses with 500 or more staff

44.8%

name inaccurate stock data as one of their biggest problems

44%

run out of something at least once a month

52%

name supplier reliability as one of their biggest problems

80%

lose between 1% and 5% of their stock a year and mostly cannot say to what

81% / 11%

want AI somewhere in how they run stock · have any of it today

Figures from the State of Inventory Management 2026 survey, a study of 400 operators published in 2026 by a company that is not us. Checked against the published report on 13 August 2026. They are somebody else’s research about the whole category, not our customer data, and we would rather cite a number you can go and read than invent one you cannot.

So you buy a stock system, and it is confidently wrong by Tuesday

Not a bad one. It syncs every channel every few minutes, it emails you when something runs low, and the dashboard is genuinely accurate most of the time. Then one morning the shelf has thirty-three bags on it and the screen says forty-one, and the whole product has nothing to say about which of the two is lying.

What the screen says

Synced 4 min ago
Guji Natural: 1kg41
Kenya Peaberry: 1kg18
House Espresso: 1kg206
Decaf Colombia: 250g64

Every one of those is a single stored number, overwritten by whichever system spoke last. It is right far more often than it is wrong, which is exactly what makes the wrong ones expensive. You have no reason to doubt any particular one of them.

What you need to know at 8am

“Where did the other eight bags go?”

And there is no screen for that. There is a number, an audit log that records that the number changed from 49 to 41 at 06:12 by “System”, and a support article suggesting a full recount. So you shut the aisle, count four hundred lines to find eight bags, and write the new figure over the old one, which puts you back exactly where you started, with a number you have no way to check.

A week later the same thing happens on a different item, and by then nobody promises a customer anything without walking to the shelf first. That habit is what a stock system was bought to end.

6 broken on arrivalis where they went, on the delivery that landed on the 4th. The next section can say that.

On hand is not a number we keep. It is a sum we can always do again.

Almost every stock system in the world stores one figure per item per place and edits it as things happen. That is why none of them can tell you where eight bags went: the moment the number changed, the thing it used to be stopped existing. sparx never stores that figure at all. It stores what happened, and works the figure out, which is a slower thing to build and the only thing that makes an answer possible.

Nothing overwrites the total

A delivery, a sale, a count, a breakage, a transfer between your own places. Each one is written down as its own line and none of them edits a running figure. There is exactly one way stock is allowed to move, so there is exactly one place it can have gone.

So the total can always be redone

Which means no quantity on any screen is ever just an assertion. Ask it why and it adds itself up again in front of you, back to the morning somebody last walked to the shelf and counted, with a name against every line that moved it.

And we redo it every night, without being asked

The sum is worth nothing if nobody ever checks it against the number on the screen. So sparx checks all of them, every night, and tells you the morning they stop agreeing: rather than leaving you to discover it from a customer four weeks later.

Switch Inventory on →

$29 a month, unlimited users. Free if you sell with Commerce or B2B.

Every number opens.

Click a quantity on the stock list, on a product, on a purchase order, on the shelf card, or in your storefront’s own availability check: the same drawer opens, with the same rows in it. Each one names what happened, when, and who or what caused it, and carries the balance it left behind, so you can follow the number down the page and watch it arrive at what the screen is showing you.

Guji Natural: 1kg · Warehouse

last 6 of 1,290
Sold · order #4482 · websiteSat 07:52 · Checkout−251
Sold · 6 wholesale ordersFri 16:20 · Checkout−1853
Delivered · PO-2214 · Lindeman GreenFri 11:04 · Tom, at the door+6071
Came back · order #4390Fri 09:31 · Ana+211
Short pick · aisle B, shelf 3Thu 15:10 · Maya, on a phone+19
Sold · order #4477 · websiteThu 14:55 · Checkout−48

The third row up is worth a second look. A picker could not find one bag, said so on her phone, and the bag went back on hand: because a unit nobody could find was never picked, so the sale that removed it has not happened yet. It is also now reserved for the order still waiting on it, and that shelf has been put on a count.

Who, not just what

Every line records whether it was a person, a scheduled job, another system, or an AI assistant that caused it, and what it was acting on: an order number, a delivery, a count sheet. “It changed at 06:12 by System” is not an answer, and it is the answer most audit logs give.

Take the whole thing with you

Any view of this history downloads as a spreadsheet, filtered exactly the way the screen was filtered, and it tells you plainly when there was more than it gave you rather than quietly stopping at ten thousand rows. Your history is yours, in a file anything can open.

Nobody can edit it

Not you, not us, not an integration, not a script. A mistake is corrected by writing the correction down, so the record of what you believed and when you stopped believing it survives. That is what makes the file above worth anything in an argument with a supplier or an insurer.

It re-adds every number in the building while you sleep.

At half past four every morning sparx takes every item in every location, adds its entire history back up from scratch, and compares the answer to the figure it has been showing you all week. Two numbers derived two different ways: if they ever disagree, something is wrong, and you find out from a screen at breakfast rather than from a customer in six weeks.

Last night’s check

Last re-added04:31 today
Stock lines checked4,812
Disagreements found0
Value in question$0.00
Clean nights in a row61

Sixty-one is a real thing to be proud of and a real thing to lose. That is why it is on the screen: a streak you can break is a number people look after.

And when it isn’t zero, it does not tidy up

A drifted number is evidence. sparx names the items, says what the difference is worth, and leaves both figures exactly where they are for you to look at, because a system that silently writes the “correct” value over the top has destroyed the only trace of whatever caused it, and handed you a screen that looks healthy for the second time.

Every oversell is written down

Three different things get muddled into “we oversold”: an order sparx refused, an order it let through against a cushion you set, and stock that actually went below zero. Each is recorded separately, with what the system believed at the moment it decided, so “are we overselling?” has an answer with a count on it.

Numbers carry their age

If a figure comes from another system (a warehouse you don’t run, a shop floor till, an ERP), you tell sparx how often it should hear from it. When it goes quiet the number is flagged as old on every screen it appears on, and you choose what happens: warn you, hold a bit more back, or stop selling that stock until it speaks again.

The shelf, the phone, and the person actually standing there.

A number is only ever as good as the last time somebody touched the stock behind it. So everything that happens on the floor happens through a phone camera: receiving a delivery, putting it away, walking a pick, counting a shelf, moving stock between your own places. No handheld to buy, no app store, no training day. It is the camera they already carry, and it refuses the wrong item rather than trusting anyone to notice.

Pick walk · 4 stops

Maya · 3 orders
A · 02 · 1House Espresso: 1kg×6
B · 03 · 2Guji Natural: 1kg×2
B · 07 · 4Kenya Peaberry: 1kg×1
C · 01 · 3Decaf Colombia: 250g×4
Wrong shelfis what a scan at B · 07 · 4 gets right now, and it says which aisle to go to instead.

Shelves, not just buildings

Zones, aisles, racks and shelves inside each location, sorted by the order somebody actually walks them rather than alphabetically. Print labels in three sizes; the code is in the label itself, so it still scans in the back corner where the wifi does not reach.

Counting on a schedule

Decide that the fast-moving, high-value lines get counted monthly and the long tail twice a year, and sparx tells you what is due. Count blind (no expected figure on the screen) and a variance worth real money waits for someone to approve it before it posts.

Batches, dates and recalls

Track a batch or an individual serial number from the delivery that brought it in to the order that took it out. Oldest-expiring goes first, automatically, and a recall is a workflow rather than an afternoon with a spreadsheet and a phone.

Boxes that can’t go wrong

Scan every item into the box; anything not on the order is refused. Split an order across three parcels and it is three tracking numbers, not an exception you handle by hand. The packing slip prints with a tick against each verified line.

What to buy this morning, and who has been letting you down.

A reorder point typed in last spring is a guess that has stopped being true. sparx works yours out from what actually sells, how long each supplier really takes rather than what they promised, and what time of year it is, then puts the consequence next to it in money, because “low stock” is not a reason to spend three thousand dollars and “you lose $3,140 next Tuesday” is.

Needs buying

ItemCoverRuns outAt riskBuy
Kenya Peaberry: 1kg2 daysFri 20 Feb$1,88090
Guji Natural: 1kg6 daysTue 24 Feb$3,140120
House Espresso: 1kg31 days———

The third row has thirty-one days of cover, so its last three columns are dashes rather than zeroes. Nothing computed a stockout date for it and nothing measured a risk, and a screen full of reassuring zeroes is how you learn to stop reading a column.

Draft the ordersGrouped by supplier, net of what is already on its way, ready to check and send.

Lindeman Green

last 12 months
Turned up on time62%
Of the order actually sent94%
Lead time quoted / real14 → 21 days
Quoted price vs billed+$0.55 / kg

Fifty-two out of a hundred businesses name supplier reliability as their biggest stock problem, and almost nothing in the category measures it. sparx does, from your own deliveries, and the twenty-one days it learned is the number your reorder points quietly start using, instead of the fourteen on the price list.

And you can just ask it.

Eight in ten businesses say they want AI somewhere in how they run stock; about one in ten has any. The reason is not enthusiasm. It is that pointing a model at numbers nobody can verify produces confident nonsense. Everything on this page is the part that has to be true first.

Your assistant, your data

Connect the AI client you already use and it can read your stock the way a person would: what should I reorder, why did this drop, which supplier is slipping, what is expiring next month. The account is yours and the model is yours; sparx never runs one on your behalf.

It cannot spend your money

A hundred and forty-five tools, and everything that points money at somebody else is deliberately not one of them. An assistant can tell you your worst supplier is late on a third of its orders. It cannot approve the next purchase order, agree a price, or write off a batch.

Tell your other systems

Twenty-five things that happen to your stock can be sent to any address you name the moment they happen. Something running low, a count coming up short, a delivery landing, a feed going quiet. Set it up on a screen, no developer needed.

Your columns, your words

Add fields sparx has never heard of to items, shelves, suppliers or purchase orders: a bond number, a customs code, a bay. They appear in the grid, in exports, and in the API alongside everything else.

You can be off the spreadsheet by the end of the afternoon.

The thing this actually replaces, for most businesses, is a spreadsheet, and the spreadsheet is winning for one honest reason: you can start using it in ten minutes and nobody has to be trained. So the setup is built to beat that, not to beat an enterprise feature list. Four steps, ending in a real count, with a thirty-minute target it is measured against.

First

Say where stock lives

A shop, a back room, a unit, a van, somebody else’s warehouse. One is a perfectly good answer, and you can add the rest later without redoing anything.

Then

Bring the sheet you already keep

Upload it as it is. sparx reads your column names and matches them to its own (“Qty on hand”, “QTY”, “stock”) and asks you about the ones it is unsure of rather than guessing.

Before anything changes

See exactly what it will do

412 items created, 88 updated, 6 rows it cannot read and why. Nothing is written until you say so, and if the answer is “not like that” you fix the sheet and run it again.

Finally

Count it once, for real

The setup ends with an opening count, so day one is a number somebody walked out and verified, not an imported guess that everything afterwards inherits.

And everyone can use it

Nothing here is priced per person. Your pickers, receivers and counters all get an account, and there is a role built for exactly them: it can receive a delivery, enter a count, move stock and look things up, and it cannot see a single cost price. The accuracy of your stock should not depend on how few people you could afford to let near it.

And you can leave

Every list, every report and the entire movement history downloads as a spreadsheet from a button, without a support ticket and without asking anyone, and every export sparx produces imports back into sparx unchanged, which is the only test of an export that means anything. A record you cannot take with you is not really yours.

Everything the category agreed you need, and the four things this isn’t.

Stock software has converged on a fairly settled list of what a serious system has to do. Here is that list, answered honestly, as of August 2026. The last group is the important one: a page where every row is a yes has told you nothing, and the fastest way to find out whether a product is honest about what it does is to see whether it will say what it doesn’t.

The number itself

Live stock by item and by place

With every change that produced it kept, permanently, and readable by you.

Many locations, and shelves inside them

Zones, aisles, racks and shelf positions, walked in pick order rather than A to Z.

Barcodes on everything, scanned from a phone

Receiving, put-away, picking, counting, transfers and lookups. No handheld to buy.

Any quantity taken apart on demand

Back to the day it was last counted, with a name against every line. This is the part almost nothing else in the category can do.

Getting stock in, and out again

Purchase orders, receiving, and the real cost of a delivery

Freight and duty shared across the lines, so a part costs what it cost to get here.

Pick lists, batch and wave picking, pack verification

A guided walk that refuses the wrong shelf, and a box that refuses the wrong item.

Kits, recipes and build orders

What a thing is made of, how many you could build today, and running the build itself.

Buy by the case, stock by the each, sell by the pair

One number underneath, however each part of the business prefers to count it.

Batches, expiry dates and serial numbers

Oldest-expiring picked first, and a recall handled as a process rather than a panic.

Counting on a schedule, plus full and blind counts

Cadence driven by what an item is worth and how predictable it is, with an approval gate on a costly variance.

The money and the maths

Moving average, FIFO layers, or standard cost

Your choice, per business and per item, on a screen that explains what each is for.

Forecasts and reorder points that move

Derived from what actually sells, how long a supplier really takes, and the time of year: recomputed nightly.

Valuation, turnover, aging, dead stock, shrinkage, sell-through, fill rate

Nineteen reports, every one exportable and schedulable, every export re-importable.

Buying in another currency

Converted at the rate on the day the goods landed, and stored alongside the original.

Everything it has to touch

Selling channels and marketplaces kept in step

Eleven of them, each with a cushion you set per channel so one cannot oversell you.

Suppliers with lead times, minimums, price breaks and a track record

Measured from your own deliveries rather than from what the price list promised.

Roles, a full audit trail, and an open API

Including a warehouse role that can do the work and cannot see a cost price. 337 endpoints, documented.

Journal entries and a reconciliation your accountant can check

Stock and cost-of-sale journals, and a reconciliation that names each ordinary timing difference rather than netting them into one figure.

And four things it deliberately is not

Each of these is a real boundary rather than a roadmap item we are being coy about. If one of them is what you came for, we would rather you found out here than three weeks into a migration.

It is not a set of books

There is no general ledger here and no chart of accounts, and there is not going to be. sparx produces the journals and the reconciliation; your accounting package and your accountant keep the books, and both are better at it than we would be.

The direct accounting connection is built, not switched on

The QuickBooks Online and Xero connectors are complete, but this installation has no app registered with either vendor yet, so the screen tells you that and offers the export that works today, rather than a button that dies at the redirect.

It is not on an EDI network

You can receive against a supplier’s advance shipping notice, but somebody enters or uploads it. sparx does not consume EDI transaction sets and does not yet give suppliers an endpoint of their own to post to.

It will not schedule a factory

Recipes and build runs are here, and they move real stock. Production scheduling, machine capacity planning and shop-floor routing are not. That is a different product, and pretending otherwise would waste a manufacturer’s afternoon.

$29/mo. Everyone included

Flat, whatever size your warehouse is, with every picker, receiver and counter on it at no extra charge. Free entirely if you sell through sparx with Commerce or B2B: the stock behind what you sell is not a second product. Fourteen days free regardless, and we don’t ask for a card.

Switch Inventory on →

Stock questions.

What it does, what it deliberately doesn’t, what it costs, and what happens to the spreadsheet you have been keeping: answered straight. Still deciding? Start the 14-day trial, or turn Commerce on and get this for nothing.

Yes, and it is a first-class case rather than a technicality. A workshop, a hire company, a lab, a charity warehouse, a distributor who takes every order by phone. Anyone who has stock in more than one place can run locations, shelves, scanning, counts, purchase orders, suppliers, costing and every report, with no storefront, no website and no orders anywhere in sparx. That is what the $29 standalone price is for. Add Commerce or B2B later and the charge simply stops.

Stop walking to the shelf to check.

Fourteen days free, no card, no contract at the end of it. Bring the spreadsheet you already keep and you can be counting real stock this afternoon, and if you ever leave, every movement, report and figure downloads in full from a button, without asking anyone.

1.

way stock is allowed to move · which is why there is only ever one place it can have gone

0

people who can edit the history · not you, not us, not an integration

04:31

when every number in the building gets added up again, every night

∞

users at the same price: the warehouse does not cost you per head