Custom Software · The Spreadsheet Problem

When the spreadsheet stops being the right tool

Almost every operational system starts as a spreadsheet, and for a long time that is the correct choice. The point it stops being correct is not when it gets large. It is when the rules that keep it right have moved out of the file and into somebody's head, and nobody is willing to restructure it because too much now depends on it.

01 · SYMPTOMS

The signs you have outgrown it

The first two below are drawn from a build on two spreadsheets we retired. The rest are general, and are here because they are the ones people recognise rather than because any particular client reported them.

Tabs standing in for a schema. In the self-storage operation HDS rebuilt, the shape was explicit. Rent, tenants, and late fees were tracked in a spreadsheet with twelve monthly tabs per year. Reconciling a single tenant history meant opening a dozen tabs, and nothing enforced the late-fee rules consistently.

Rules living in memory. The file records the numbers but not the reasoning, so the person who knows which exceptions apply becomes a dependency. When they are on holiday, work either stops or gets done wrong in a way nobody notices for a month.

Two people, one row. Shared editing makes concurrent work possible without making it safe. Overwritten entries leave no trace, and reconstructing what a record used to say means hunting through version history for a change nobody logged.

Nobody dares restructure it. The clearest signal of all. Once the formulas are load-bearing and undocumented, the file stops being something the business controls and becomes something it works around.

02 · REPLACEMENT

What actually replaces it

A real data model first. The entities the business genuinely has, tenants, units, deals, jobs, payments, with the relationships between them expressed once instead of implied by which tab something was typed into. Almost every downstream benefit follows from getting this right, and it is the part a spreadsheet fundamentally cannot do.

Then the rules, applied by the system rather than by a person remembering. Late fees that calculate consistently, stages that cannot be skipped, values that have to be present before a record moves on. This is where most of the recovered time comes from: not from typing faster, but from no longer checking whether the last person typed correctly.

Then one view across the whole operation. In the self-storage rebuild that meant rent status across every location resolving in one place rather than a dozen tabs. In the brokerage it meant something structurally similar for a different business: The practice runs without a dashboard. Market briefings arrive before the day starts, pipeline and follow-up live in one system of record, and the agent fleet does the research a junior analyst would otherwise be hired for. This is the reference build for the pattern we sell: agents doing standing work, and a messaging app instead of a UI. The pattern repeats because the underlying problem is the same, which is that a spreadsheet per location or per person cannot be added up without somebody doing it by hand.

03 · HONEST

What it takes to get there

This is a build, not an import. Pointing a tool at the file and generating screens produces a worse spreadsheet with a login page, because the value is in the model and the rules, and neither of those is in the file to be extracted. What is in the file is evidence of what the business does, which is why it makes such a good starting document.

Expect the migration to surface things. Records that were fine in context and are ambiguous out of it, exceptions applied so consistently that nobody remembered they were exceptions, and at least one rule two people describe differently. Those questions have to be answered before the data can move, and answering them is genuinely part of the work rather than a delay in it.

Scope it small and start with the most painful process rather than the whole operation. How long that takes is on the timeline page, what it costs is on what a replacement costs, and the practice itself is under custom software engineering.

04 · EVIDENCE

Two spreadsheets, retired

Anonymized by client request. Both of these were literally spreadsheet replacements rather than greenfield systems.

  1. 01

    Self-storage operator

    Rent, tenants, and late fees were tracked in a spreadsheet with twelve monthly tabs per year. Reconciling a single tenant history meant opening a dozen tabs, and nothing enforced the late-fee rules consistently.

    The spreadsheet is retired. Rent status across all five locations resolves in one view, RV parking included, and late fees apply consistently without the owner recalculating them.

  2. 02

    Commercial real estate

    A relationship-led practice cannot run on a generic CRM. Deal tracking, market intelligence, and follow-up all wanted different tools, and every one of them expected the broker to sit at a dashboard rather than work the market.

    The practice runs without a dashboard. Market briefings arrive before the day starts, pipeline and follow-up live in one system of record, and the agent fleet does the research a junior analyst would otherwise be hired for. This is the reference build for the pattern we sell: agents doing standing work, and a messaging app instead of a UI.

Questions from people still in the spreadsheet

How do we know we have actually outgrown it rather than just disliking it?

A useful test is what breaking it would cost. If one person editing the wrong cell could quietly corrupt months of records, if nobody is willing to restructure it because too much depends on it, or if answering a routine question means opening several tabs and cross-referencing by eye, the spreadsheet has stopped being a tool and become a liability nobody wants to touch.

Can we just move it to a database and keep the spreadsheet look?

Sometimes, and where it fits it is the cheapest good answer. What a spreadsheet cannot give you at any layout is enforcement: rules that apply the same way every time, a history of what changed and who changed it, and safe simultaneous use. If those are what you are missing, the grid was never the problem.

What happens to the years of data already in it?

It gets read, modelled, and migrated, and it doubles as the requirements document along the way, because it records how the business genuinely works rather than how anyone would describe it. Cleanup is part of the build. Inconsistent formats, near-duplicates, and rules that were applied from memory all surface during migration, which is usually the first time anybody has seen them stated plainly.

Will the people who rely on the spreadsheet resist this?

Less than expected, provided the replacement removes work rather than adding a system to feed. The person maintaining it by hand is usually the one who most wants it gone. Resistance shows up when a build ignores the informal judgement calls that were keeping the operation running, which is why those get modelled rather than legislated away.

Do we have to replace all of it at once?

No, and it is usually a mistake to try. Replacing the single most painful part first puts working software in front of people early and lets the rest be shaped against something real. Both systems run side by side for a period, which is normal and worth planning for rather than treating as a failure.

Which process would you take out of the spreadsheet first?

Start with a free scoping conversation with Mike Hyams, the person who builds and supports the work.