Engineering decisions

When a spreadsheet needs to become an application

EdgeBrain Studios11 min read

A spreadsheet needs to become an application when more than one person has to change it at the same time, when you need to know who changed what, or when a wrong cell can leave the building. Row count is almost never the trigger. Concurrency, history and validation are. Below those three lines a workbook is often the correct tool and replacing it makes the work slower.

The part nobody selling conversion software will tell you: a workbook is three things wearing one coat. It’s a data model, a set of calculations, and a workflow that lives in people’s heads. Take them apart before you accept a quote, because the three cost wildly different amounts and only one of them is the expensive one.

The three things your workbook is doing at once

Quotes go wrong on this kind of project when they price the file as one lump of work. Split it first. The split takes an afternoon and it survives whoever you end up hiring.

The data model, hiding in your tabs

Some tabs are entities: customers, jobs, invoices, sites, shifts. Each row is a thing that exists in the world and keeps its identity over time. Other tabs are views: a pivot, a monthly rollup, the tab called DASHBOARD that reads from four others and stores nothing of its own.

Open the file and mark every tab E or V. Entities become tables and are the structural half of the build. Views become screens and are the cheap half, because a filtered list is a day’s work once the table underneath it is right. Our rule of thumb, not a study: an operational workbook holds fewer real entities than tabs, often four to nine, and that count predicts scope far better than row count does.

The calculations, half of which are presentation

Now sort the formulas into two piles. Business rules encode a decision the company made: a discount band, an SLA clock, a commission split, an eligibility check. Presentation formulas exist to make a grid readable: conditional formatting, TEXT() wrappers, a column that concatenates a first and last name, a blank spacer column that exists purely so the printout breaks in the right place.

Business rules migrate. Presentation mostly evaporates, and that’s a saving, not a loss. The rules are where the archaeology sits. A nested IFseven levels deep with a hardcoded 0.0725 buried in it is a tax rate somebody typed in a hurry years ago. Each rule you can’t explain out loud is a question for a person, not a translation job for an engineer. Budget an hour of attention per unexplained rule.

The workflow that isn’t in the file

The third job is the one the file doesn’t contain. Someone knows column K gets filled after the site visit but before invoicing. Someone knows the yellow rows are on hold and the strikethrough ones are cancelled but not deleted, because deleting them breaks a formula three tabs over.

Colour is data in a spreadsheet, and it’s data nobody validated, nobody can filter reliably, and nobody can report on. Write the sequence down as a list of steps with an owner and a trigger for each. If you can’t produce that list, you’re not ready to be quoted. This is the part that becomes statuses, permissions and notifications, and it’s usually where the actual value of a build is.

The one-day audit that decides everything after it

Four measurements. None needs an engineer, and together they justify the project or kill it before anyone spends money.

Count the copies in circulation

Search the shared drive and your sent folder for the filename. Every result is a fork somebody made because they needed to change something without breaking yours. Count files named with a date, a set of initials, or the word final. If the total is more than about three, the workbook has already stopped being a single source of truth, whatever the folder structure claims.

Find where two people actually collide

Excel co-authoring does work, and it needs the file living on OneDrive or SharePoint in a modern format. A copy on a network share still throws the locked-for-editing dialog, and somebody opens it read-only, works anyway, and saves a second version. Google Sheets removes the lock entirely, and Google publishes the ceilings it replaces it with: ten million cells per spreadsheet and one hundred simultaneous editors, with heavy formulas making it unpleasant long before either.

So the collision usually isn’t the file lock at all. It’s two people editing the same row within the same hour with no record of who won. Watch a Friday afternoon at month end, when everyone is in the file at once. That hour is the business case, and it’s the one thing a database gives you that no amount of spreadsheet discipline can.

Time the reconciliation step

Somewhere in the process a person copies numbers from one place to another and checks them against a third. Exporting from the accounting package, pasting into the tracker, chasing the four rows that don’t agree. Time it honestly for two weeks, then multiply by a loaded hourly cost and annualise it.

That figure is your budget ceiling, and it’s the number to bring to any conversation with us or anyone else. Our own position on it: if the annual cost of reconciliation is under roughly $5,000, a custom build is unlikely to pay back inside three years, and you should read the two sections below about no-code and about doing nothing before you read the pricing one.

Ask what a wrong number costs

A spreadsheet accepts anything. Text in a date column, a negative quantity, a formula overwritten with a pasted constant that now never updates. If a bad cell reaches an invoice, a regulator or a payroll run, validation stops being a nicety and becomes the reason for the project. If it just annoys one team internally, it doesn’t.

The four honest destinations

Page one of this search has one answer on it, because everyone writing it sells the same product. There are four, and three are cheaper than we are.

DestinationFits whenRough costWhat ends it
Keep the spreadsheetOne owner, shape changes weekly, analysis not record-keepingNothingA second regular editor
Harden it in placeRules are right, discipline is missingTwo to five days of internal timeNeeding history, permissions or an audit trail
No-code app on the same dataStable shape, small team, forms and views are the needPer editor, per month, foreverSeat count, custom logic, integration limits
Custom applicationReal rules, real integrations, data outlives staffPlatforms from $28,000; most $18,000 to $45,000Nothing. It becomes maintenance instead

Harden the workbook before you replace it

We’d do this before quoting a build, and we’d rather tell you during the audit than after the invoice. Most of a workbook’s pain is unenforced discipline rather than a missing database.

Put data validation on every input column. Protect the calculation ranges so nobody pastes a constant over a formula. Collapse the copies into one file with one owner and use version history rather than filenames. Replace volatile functions like INDIRECT and OFFSET, which force a full recalculation on every keystroke, with structured references. Move imports into Power Query rather than a chain of manual pastes.

Two to five days of that often buys a year of runway, and it produces a cleaner brief if you do build later. It cannot give you row-level history, per-person permissions, or a guarantee that two people didn’t both edit the same job. When you need those, no amount of tidying gets you there.

When a no-code tool wins, and we say so

This is the section that costs us work, so here it is plainly. Airtable, Glide, Softr, Noloco and Retool are genuinely good at the thing most outgrown workbooks need. A form so field staff stop typing into cells. A mobile view. Per-record permissions. A kanban and a calendar over the same rows. An afternoon of configuration, not a project.

Take that route when the entity count is small, the records are in the tens of thousands rather than millions, the editor count is stable, the logic is expressible as filters and formulas, and nobody needs an audit trail that satisfies a regulator. A project tracker, a request intake queue, a lightweight CRM, an asset register: buy the tool.

The arithmetic isn’t obviously in our favour either. Fifteen editors at a typical mid-tier per-seat price is a real annual line, and it’s still less than a $30,000 build if the ceiling never arrives. Our own estimate of where it does arrive: when seat costs pass what a maintenance retainer would, when automation run limits start shaping your process, or when you need a query the platform can’t express and there’s no query planner underneath to help. That last one is the same wall people hit leaving other visual platforms, described in migrating off Bubble to custom code.

One condition before you pick this branch: check the export. If you can’t get your data out as CSV or through an API on demand, you haven’t chosen a tool, you’ve chosen a landlord.

When the right answer is to keep the spreadsheet

Nobody on this search result page will say this, so we will. A spreadsheet is the best modelling tool ever built for one person thinking. Direct manipulation, instant feedback, no schema migration to change your mind. If the shape of your problem changes weekly, an application is a cage.

Keep it when a single owner does the work, when the output is analysis rather than a record other systems depend on, when the file is a forecast or a scenario model or a one-off, and when the cost of getting it wrong is that somebody redoes it.

The failure mode of ignoring this is specific. A team rebuilds a flexible workbook as a rigid app, discovers the flexibility was the feature, and starts keeping a spreadsheet beside the app to do the thinking in. Now there are two systems, they disagree, and reconciliation is worse than before the project.

What a real build actually involves

We’ve shipped this exact migration. The SEO platform in our published case studiesreplaced a client’s reporting workbook with a database-backed application, and the shape of that work is the shape described here. The client isn’t named and won’t be.

Model first, screens second

The entity tabs from your audit become tables with real types, foreign keys and constraints. Get this wrong and every screen on top inherits the mistake. It’s also where you decide what a deleted row means, because in a spreadsheet people delete and in an application you almost always want a status instead.

Migrate the history, badly at first, then properly

Historical rows are dirtier than anyone remembers. Dates stored as text, three spellings of one supplier, blanks that mean zero beside blanks that mean unknown, a merged cell in row 400. Load it all into a staging table, run an exception report, and put the rejects in front of the person who knows what they meant.

Our own estimate: cleanup is fifteen to thirty percent of one of these projects, and it’s the line most quotes omit. The width of that range depends almost entirely on how many years of history you insist on bringing across. Bringing two years instead of nine is the single cheapest scope decision available to you.

Run both in parallel, then stop

No cutover weekend with the month end riding on it. Two to four weeks of the application being authoritative while the workbook stays open read-only, so people stop trusting it at their own pace. Then set a date and mean it. A workbook still running in the shadows is how you end up maintaining both.

Ship the export on day one

CSV export of every list view, before any nice-to-have feature. It removes the fear that made people fork the file, it covers the long tail of ad hoc analysis you’ll never anticipate, and it means the next team can leave us. We hold ourselves to that on every web application we build.

What it costs and what moves the number

Our published bands, not a new range invented for this article. A platform of this kind starts at $28,000, and most projects we take land between $18,000 and $45,000. Our minimum for a build is $7,500. If you only want the audit above written up as a scope you can shop around, a scoping sprint is $3,500, credited in full against a build that starts within thirty days. Those figures are estimates in US dollars, not quotations; the quote that follows scoping is fixed in writing before kickoff.

What moves you inside that band, roughly in order of impact: the number of real entities, whether anything has to sync with an accounting or payroll system rather than just export to it, how granular the permission model is, whether you need a row-level audit trail, and how many years of dirty history you want migrated. Two entities, no integration, five users and one year of history is a different project from nine entities and a two-way sync.

A quote that doesn’t ask about those five things isn’t a quote, it’s an average. We take the same number apart in what building an MVP actually costs.

Three mistakes that sink these projects

Rebuilding the grid.Users ask for something that looks like the spreadsheet, because that’s what they know. Give them the form and the filtered view instead, but keep bulk paste on the one or two screens where people genuinely enter forty rows at a time. Removing that is how you get a shadow workbook by week three.

Porting every formula. Half of them were presentation and a quarter encode a rule nobody follows any more. Migrate the rules somebody can defend today. Everything else is archaeology billed at engineering rates.

Treating it as a rewrite of software.It isn’t. There is no existing codebase to judge, so the usual signals don’t apply and the risk sits in undocumented process instead. If you do have an old application in the mix as well, that’s a different question, and how to judge a codebase you inherited is the one to read.

The compressed decision

Split the workbook into its data model, its rules and its workflow. Count the copies, watch a Friday afternoon, time the reconciliation, and ask what a wrong number costs. If reconciliation is cheap and one person owns the file, keep the spreadsheet. If the shape is stable and the team is small, buy a no-code tool and check the export before you commit. If the rules are real, the integrations are real, and the data has to outlive the people entering it, build the application, model first, parallel run second, export on day one.

If you want a second opinion on which of those four you’re looking at, send us the audit rather than the file and tell us what breaks on a Friday. We’ll tell you if the answer is a tool you can buy this week.

Got a version of this problem?

Send a paragraph describing what you’re trying to build and what’s currently in the way. We reply inside two working days with a scope, a price and a start date. If we’re not the right people for it, we say that instead.