Nobody wakes up and decides to replace their systems. It creeps. An extra spreadsheet here, a workaround there, one person who just knows where things are. By the time it becomes obvious, most businesses have been paying for it quietly for a year or more.
Worth saying up front: QuickBooks is good software. For bookkeeping, invoicing, and filing taxes at a small business, it is hard to beat and we would not try to talk anyone out of it. The problem is not quality. The problem is scope.
QuickBooks is an accounting system. Once your business runs on inventory, production, or purchasing, you need an operations system, and those are different things. Accounting records what already happened. Operations decides what happens next.
Here are the five signs we see most often, and what each one actually costs.
1. Your inventory number is a negotiation
Ask three people what you have on hand and you get three answers. The system says one thing, the warehouse says another, and someone checks physically to settle it.
This happens because QuickBooks tracks inventory as an accounting balance, not as a live operational quantity. It does not know about material committed to an open work order, stock allocated to a sales order that has not shipped, or the pallet that arrived Friday and was not received into the system until Monday.
Two failure modes, both expensive. You buy material you already had — cash tied up in a bin nobody looked in. Or you promise a customer stock you cannot ship, and spend the week managing the fallout instead of selling.
2. Purchase orders live in email
Someone decides to reorder. They email the supplier. The confirmation goes to their inbox. The delivery note ends up on a desk. The invoice arrives three weeks later and somebody has to work out whether it matches what was ordered and what actually turned up.
That three-way match — order, receipt, invoice — is a solved problem in any real ERP. It is automatic. Without it, you are relying on someone's memory and attention on a busy day, and you will pay for duplicate orders, wrong prices, and invoices for goods that were never delivered.
The clearest tell: when the person who handles purchasing takes a week off, things go wrong. That is not a people problem. That is a system problem wearing a person as a costume.
3. Month-end is a reconstruction project
Closing the month should be a report you run. If instead it involves exporting from two or three places, joining it in Excel, chasing people for missing numbers, and a few days of work before anyone can see how the business did — you have outgrown the setup.
The real damage is not the days spent. It is the lag. If you are learning in the third week of September how August went, you are making decisions on information six weeks old. Problems get spotted long after they were fixable.
4. You cannot answer what a job actually cost
This one is specific to manufacturers and anyone doing project or job work, and it is the most expensive of the five.
You know roughly what a job cost. You do not know exactly. Material was estimated, not recorded against the work order. Labour was captured on a timesheet that may or may not match reality. Overhead was allocated with a formula nobody has revisited since 2019.
So the business is profitable overall, but nobody can say which jobs made money and which quietly lost it. And because you cannot see it, you keep quoting the losers the same way.
Pick your three largest jobs from last quarter. Ask what each one actually cost, in material and labour, against what you quoted. If nobody can answer inside an hour, that is your answer.
5. The workarounds have workarounds
Every growing business builds workarounds. That is fine and often smart. The warning sign is when the workarounds themselves need maintaining.
Some versions we see regularly:
- A master spreadsheet that must be updated before anyone can quote accurately
- A second spreadsheet reconciling the first one against QuickBooks
- Customer-specific pricing that exists in one person's head or a private file
- A separate system for one department because the main one could not handle it
- Someone re-keying the same data into two places every week
Any one of these is survivable. Together they mean a meaningful share of your payroll is being spent keeping the seams from splitting — work that produces nothing and that nobody put in a budget.
So when is it actually time?
Not at a headcount. Not at a revenue figure. The honest threshold is this:
When the effort of running your systems starts competing with the effort of running your business. When people you hired to grow the company are spending their week keeping the data straight instead.
In practice, most businesses cross that line somewhere between 15 and 50 employees, and usually notice about a year later.
And when is it not time?
Equally worth saying. If your inventory is simple, your purchasing is low volume, and month-end takes an afternoon, stay on QuickBooks. Replacing a working system because you feel you should is an expensive way to solve nothing. The right time is when the pain is real and named — not when a vendor tells you it should be.
What replacing it actually involves
The fear is usually the same: a long project, a big bill, and a system nobody uses. That fear is well earned — plenty of ERP projects have gone exactly that way.
Three things make the difference:
- Fixed scope before you start. Agree in writing what is being built and what it costs. Open-ended hourly work is how projects drift.
- Phase it. You do not have to move everything at once. Start where the pain is worst — usually inventory and purchasing — and add the rest later.
- Run in parallel before you cut over. Both systems live for a period, numbers checked against each other, so go-live is not a leap of faith.
On cost: the software itself does not have to be the expensive part. ERPNext is open source, so there is no licence fee and no per-user pricing that climbs every time you hire. You pay for the implementation — configuring it to your actual workflows, moving your data, training your people — and that should be a fixed, quoted number before anyone starts.