Spreadsheets do not fail on a particular day. They get slightly heavier each month until, at some point, the business is being run by a file that one person is afraid to open on a phone.

Recognising that moment is genuinely useful, because the cost of staying too long is high and the cost of leaving too early is also high. Here are the markers that actually indicate the line has been crossed.

The warning signs, in rough order of severity

More than one person needs to edit it at the same time. This is the first and most reliable signal. Whatever collaborative editing your tools offer, simultaneous editing of a business-critical sheet produces conflicts, overwrites and cautious behaviour. If people are coordinating over chat about who has the file, that is a database problem.

Someone reconciles versions by hand. The moment a role exists — even informally — for merging copies, the tool has failed. This work is invisible, error-prone and grows.

The same entity appears in multiple rows and nobody is sure which is current. Spreadsheets have no concept of identity. There is nothing preventing "Acme Ltd", "ACME Limited" and "Acme" from being three different customers. Once you are cleaning duplicates, you need something that enforces uniqueness.

Relationships are being faked with lookup formulas. One row per order, with the customer's details copied into every row, is a relational structure being simulated. It works until a customer changes their address and you have to update four hundred rows, three of which get missed.

History matters and is not kept. If you need to know what a value was last month, or who changed it, and the answer is "check an old copy in the archive folder", you have outgrown the tool. Audit trails are a database feature.

Rules are enforced by hope. Required fields that are sometimes blank. Dates in three formats. Status values with typos. Every one of these is a validation rule that a database would enforce and a spreadsheet cannot.

It is the only place a fact exists. If the sheet were deleted, would you lose information about your business that exists nowhere else? If yes, an operational file has quietly become a system of record without ever being designed as one.

Nobody understands the macros. A sheet running code written by someone who has left is a maintenance liability, and usually an undocumented one.

It has become slow, or people have stopped opening it on a phone. A practical marker that carries more weight than it should, because it changes behaviour: if field staff cannot use it, they stop contributing to it and start keeping their own notes.

What to move to, and what not to

The instinct is to jump to a custom application. That is usually the wrong next step, and it is where a great deal of money is wasted.

Consider, in order:

1. A system you already own. Very often the data belongs in the CRM, the accounting package or the job management system already in use, and the sheet exists because a field was missing or nobody knew the feature existed. Check this first, properly. It is the cheapest possible answer.

2. A structured, off-the-shelf data tool. Modern database-style tools designed for non-developers handle exactly this transition: rows with real identity, relationships between tables, validation, permissions, change history, and multiple simultaneous editors. They require no engineering and are frequently the correct destination. The trade is a subscription and a dependency on a vendor, which is worth thinking about — see why owning your domain and business data matters.

3. A purpose-built application. Justified when the process is core to how the business makes money, the rules are genuinely specific to you, and the volume or integration requirements exceed what off-the-shelf tools handle. This is a real project with real ongoing cost, and it should be entered deliberately. See build it, buy it, or leave it alone.

Moving without a nine-month project

Model the data before choosing the tool. On paper, list the things the spreadsheet is really about — customers, jobs, parts, sites — and how they relate. Most problem spreadsheets are three or four tables squashed into one grid. Getting this right takes an afternoon and determines whether the move succeeds.

Clean before you migrate, not after. Duplicates, inconsistent values and missing fields imported into a strict system produce a strict system full of bad data, which people then abandon.

Migrate one process at a time. Run the old sheet and the new system in parallel briefly, then cut over decisively. A long parallel period means two systems of record, which is worse than either.

Keep a read-only archive of the final spreadsheet. Cheap insurance, and it settles arguments about what the data used to say.

Bring the exceptions. Every long-lived spreadsheet contains special cases living in a comment or a coloured cell. Find them before the migration; they are requirements, and discovering them afterwards is how migrations get reversed.

Time to move off the spreadsheet?

  • Multiple people need to edit concurrently
  • Someone merges versions manually
  • Duplicate records exist and cleaning them is a recurring task
  • Customer or product details are copied across many rows
  • You need history or an audit trail and do not have one
  • Validation depends on people being careful
  • Facts exist here and nowhere else
  • Macros are unmaintained or unexplained
  • A new employee could not be trusted with it after a short briefing

Two or three of these mean it is worth planning. Five or more mean the business is carrying a risk that will eventually be discovered at an inconvenient moment — usually when the one person who understands the file is unavailable.