← All posts

Dead numbers: why AI pastes values into your spreadsheet.

A spreadsheet is a program, not a table

The entire point of a spreadsheet is that cells compute other cells. Change the input, the waterfall recalculates, the summary updates — that dependency graph is the model. A value where a formula should be is a cached result of a computation nobody kept. It renders identically. It prints identically. The difference only surfaces when an input changes — weeks later, silently, in whatever cell someone happens to trust.

Why every AI tool defaults to this

Hardcoding isn't a bug in one product; it's the natural output of how most AI touches spreadsheets. Four reasons, in rough order of blame:

1. The analysis pipeline produces values by construction. Upload a workbook to a chatbot and your "edit" is Python running over a copy of the data. Pandas computes 1.08 × 42,000 and writes back 45,360. It has no concept that the answer was supposed to be =D4*(1+$B$2) — the computation happened outside the grid, so the grid gets only the residue.

2. Chat is answer-shaped. Language models are trained to answer questions, and "what's revenue in 2027?" wants a number. A formula isn't an answer — it's a small machine that produces answers, wired into a specific location in a specific file. That's a different artifact than chat output, and tools built on chat emit the thing chat is optimized to emit.

3. Flattened context has no geometry. To write =C4*(1+$F$2), the model has to know your growth assumption lives in F2, that revenue history sits in C4, and that both will still be there when the formula calculates. Paste a workbook into a prompt as text and that grid geometry is gone. Emitting a literal is the only move that can't dangle a reference — hardcoding isn't laziness, it's what's left when the model can't see the grid.

Practitioners see this from the outside, too. A recurring complaint from accountants who've tested these tools seriously is that the model "doesn't understand grid layouts" — it confuses how headings relate to the numbers beneath them, even with analysis libraries helping. That's not a bug to be patched next quarter; language models consume the world as a sequence of tokens, and a two-dimensional dependency graph is a genuinely foreign shape. Tools that work have to hand the model the geometry explicitly.

4. Nobody catches it. A pasted value and a computed formula look identical on screen. The demo impresses, the review passes, the file ships. The failure is invisible by design.

The damage, itemized

The classic way this gets discovered: someone changes an assumption the morning of a board meeting, the summary doesn't move, and the next hour is spent finding out how much of the workbook has been dead since March.

Getting formulas out of a chatbot anyway

If a chat tool is what you have, you can raise the odds considerably by hand-carrying the geometry it can't see:

This helps, but two limits don't move. You're doing the context management by hand, one address at a time. And the chatbot never finds out how it went — it can't see the #REF! it just caused, so you're the calculation engine's error handler.

What formula-first looks like when it's built in

The fix isn't a better prompt; it's a tool whose loop runs through the grid instead of around it. Finance users have started evaluating on exactly this axis — in CFO forums, the praise that matters is "proper formula structure, not hard-coded numbers, so what-if scenarios work." Concretely, that means four properties — this is how we built GridPath, but they're worth demanding from any spreadsheet agent you evaluate:

The poster test

Whatever tool touched your workbook, run this before you trust the result: change one input by an order of magnitude and watch the dependents. If the totals move, you have a model. If nothing moves, you have a poster of a spreadsheet — pretty, printable, dead. It takes ten seconds, and it's the single highest-value habit for working with AI in spreadsheets. (For the wider tooling landscape, see our honest look at free Excel alternatives.)