Workbooks

The AI in Your Sheet Should Only See What You Can See

By CashSheet Team··8 min read
The AI in Your Sheet Should Only See What You Can See

Two questions, before any of the features

"AI in your spreadsheet" is a sentence that has been shipped a great many times now, and it usually means a chat panel welded to the side of a grid.

The features vary. The two questions that matter do not:

  • What does the model actually see? The visible rows, the whole worksheet, everything in the account?
  • What is it allowed to change? Does it propose, or does it write?

Most products answer these somewhere in a trust centre, in the passive voice. We would rather answer them in the open, because for anyone whose sheet contains cash movements and staff names, the answers are the product decision — not the feature list.

There are three AI features in CashSheet Workbooks. All three are narrow on purpose.

1. Describe the calculation, get the formula

Workbooks formulas reference columns by name — ={Value} * {Count} — rather than by cell coordinate. We wrote about why that matters, but there is a second consequence worth drawing out: a formula language made of names is one a person can describe in a sentence.

So you describe it. "Over/short, counted minus expected." "Total including 8.25% tax, rounded to the cent." What comes back is a formula and one plain-English sentence explaining what it computes, which you read before you accept it.

Three things constrain that generation, and they are the reason the output is usually usable rather than usually plausible:

The model is handed your actual columns. Not a guess at your schema — the real column names and types from that worksheet, with the instruction to reference only those, spelled exactly. A formula referencing a column you do not have is the most common way this kind of feature fails; here the list of legal references is in the prompt.

The response is schema-constrained. It is not free text that we then hopefully parse. The model returns a structured object with a formula field and an explanation field, and the result is validated on arrival — if the formula does not start with =, it is rejected rather than handed to you.

It is told the currency rule the engine actually uses. Currency is stored as integer cents but exposed to formulas in dollars, so a formula must never multiply or divide by 100 to convert units. That instruction sits in the system prompt, kept deliberately in sync with the engine's own translation. It is the single most likely mistake, and it is pre-empted rather than discovered.

Computed columns — formula, lookup, rollup — and attachments are excluded from the referenceable list. The assistant writes formulas over plain data columns and does not build towers on top of other derived values. That is a conservative choice, and we would rather it produce a formula you can verify at a glance.

2. Ask a question about this sheet

The second feature is a question box over the worksheet you are looking at. "Which shift is short most often?" "How much went to Travel last month?" The answer comes back as a short piece of prose, not a table you then have to interpret.

This is the feature where "what does it see" has to be answered precisely, so:

The rows are loaded inside your own permission boundary. The request reads the sheet inside the same tenant-scoped database transaction any other request of yours would use — under forced row-level security, on a role that cannot bypass it. The model is not consulted through some privileged back door with a wider view. It receives rows you could have read yourself by scrolling. If the boundary would have hidden a row from you, it never reaches the prompt.

The context is bounded, and the bounds are visible. The sheet is rendered as a compact table: at most 200 rows, at most 20 columns, each cell truncated at 120 characters, currency formatted in dollars so the model reads money the way you do. If the worksheet is longer than 200 rows, the context says so explicitly — the model is told it is looking at the first 200 of however many, rather than being allowed to answer as though it had seen everything.

That last detail is the honest limit of this feature, and it is worth stating plainly rather than burying: on a large worksheet, Ask AI answers about a window, not about the whole sheet. For "what is the total for March", use a filter and a group summary — those run over every row, on the server, and are exact. Ask AI is for the questions that are awkward to express as a filter, on data small enough to reason about. Using it as a substitute for arithmetic over a hundred thousand rows would be using it wrong, and we would rather say so than let you find out.

3. Describe a workbook, get it seeded

The third is the most opinionated: describe what you need and get a workbook built with starter data in it.

Today this is scoped to one closure — restaurant recipe costing. Ask for "a recipe for a large supreme pizza" and you get an item master with the ingredients and their stock units, plus recipe lines linking each ingredient to a quantity.

Generated data is where AI features usually get dangerous, so the output is filtered before it becomes rows:

  • Units are clamped to a known list. A unit the system does not recognise is replaced with a safe default rather than written through.
  • Every recipe line must match an item exactly. A line referencing an ingredient that does not appear in the generated item master is dropped — no dangling references land in your workbook.
  • Quantities must be positive numbers. Anything else is discarded.
  • An empty result is an error, not an empty workbook. If nothing survives validation, the request fails visibly instead of leaving you a shell to wonder about.

And the interface says the quiet part out loud: seeded quantities and costs are plausible starting points, not authoritative. This is a faster blank page, not a source of truth about what mozzarella costs in your city. Treat it as a first draft with the structure already correct.

What happens when it is unavailable

A design decision that says more about a system than most feature descriptions.

If the server has no AI credentials configured, the AI endpoints return a specific "resource temporarily unavailable" response — and nothing else changes. Formulas evaluate. Grids load. Automations run. Imports land. The AI features are an additive layer over a product that is complete without them, so their absence degrades exactly one thing.

Refusals are handled in the same spirit. If the model declines a request, Ask AI tells you it cannot help with that question rather than emitting something confident and wrong. A spreadsheet is not a place where a plausible fabrication is a harmless outcome.

The rule underneath all three

Read the three features together and one principle connects them: the AI proposes; you commit.

Formula generation returns a formula for you to accept. Ask AI returns prose. Only workbook creation writes rows, it does so once, into a new workbook, from validated output, clearly labelled as starter data.

No feature edits cells in a sheet you are already relying on. Nothing rewrites history in the background. There is no "AI cleanup" that silently changes 4,000 rows while you are at lunch, because in a system of record that is not a feature — it is a liability with a nice icon.

Bounded input, structured output, validation on arrival, and a human between the suggestion and the data. That is a smaller promise than most AI marketing makes. It is also one you can check.

Where to start

The formula generator is the one that pays for itself immediately, because it converts the sentence you would have said into a rule the sheet can enforce. Describe the column you have been computing by hand, read the explanation, accept it if it is right.

Then ask the sheet something you would normally have exported to answer.

Both live in the grid at app.cashsheet.com, and new workspaces start with three months of full access.