Answer in plain language
Why did gross margin fall in the Austin office last quarter. Which vendors did we pay more than $50,000 to this year. What is our largest unbilled project.
AI capability
Not a chatbot bolted to a sidebar. A read-only interface to the business graph that answers in numbers, shows the transactions behind them, and declines when it cannot answer — which is the property that makes the other answers worth anything.
What it does
Why did gross margin fall in the Austin office last quarter. Which vendors did we pay more than $50,000 to this year. What is our largest unbilled project.
Every answer arrives with the transactions, accounts, and filters behind it. You can open the underlying records rather than take the number on trust.
It answers within the asker’s scope. A department head asking about company-wide payroll gets a refusal, not a redacted guess.
Period over period, entity against entity, budget against actual — with the movement broken into contributing parts rather than reported as a delta.
Any answer becomes a saved view, a scheduled report, or an export. The conversation is a way to build a report, not a replacement for having one.
If the data does not support an answer — the dimension was never captured, the period is not closed — it says so instead of producing a confident approximation.
The common implementation puts a language model in front of a reporting API and lets it summarise. It demos well and disappoints in week two, for a specific reason: the model can reach the reports somebody already built, so it can only answer questions somebody already anticipated. Ask something slightly off that path and it either fails or, worse, produces a plausible number from the wrong report.
Because this one queries the business graph directly rather than a fixed report catalogue, the question does not have to have been anticipated. Margin by service line, by office, for clients acquired in the last eighteen months is a query rather than a feature request.
The failure mode that damages trust is not an unanswered question. It is a confidently wrong number that looks right, gets pasted into a board deck, and is contradicted three weeks later by the actual close.
So the copilot is tuned to decline rather than approximate. If a period is not closed, it says the figures are provisional. If a dimension was never captured, it explains that rather than deriving something adjacent. If the question is ambiguous, it asks which of two readings you meant. Every one of those is less impressive in a demo and more useful on a Tuesday.
Answers are computed within the asker’s scope in the data layer, not generated broadly and then redacted. That distinction matters: a system that computes a company-wide figure and then hides part of it has still leaked the aggregate, which is frequently the sensitive part.
Limits
Every capability page on this site carries one of these, because a feature described without its boundaries is a claim rather than a description.
It answers about what is recorded. Forward-looking questions route to the CFO agent, which models explicitly rather than extrapolating conversationally.
Read-only at every authority level. Asking it to post, adjust, or approve returns a refusal and a link to the thing that can, under proper controls.
If payroll arrived as one lump entry with no department, no phrasing of the question produces department-level labour cost. It will tell you that is why.
Questions
Two periods of data and one real question is enough to judge whether the answers hold up.