Point it at the folder your team already downloads into. Ask the question in plain language. Get the number, the chart, and the file it came from — or a refusal, when the data cannot answer it.
The live app is behind a login. Ask us for credentials, or bring your own exports to a walkthrough.
Finance pulls the export. Someone pivots it. Someone else checks the pivot. By the time the number reaches the meeting, the meeting has moved on.
Every question routes through the two people who know which tab holds the real figure. They are also the two people you need for closing.
Ask a general-purpose model to read your export and it will produce a confident number. Sometimes it is the right one. You will not know which time.
Banner rows, merged headers, subtotals folded into the data, trailing-sign negatives. Every generic tool trips on the first file.
It picks from metrics and dimensions that exist in your catalog. Code compiles that into the query. A number that was never computed cannot be invented.
xlsx, xlsm, xls and xlsb. It finds the real table under the banners, reads the locale per file, and keeps leading-zero keys as text so the joins survive.
Metrics, dimensions, filters, a date range. Each one has to exist in the catalog. If your question needs something that does not, it is refused, not approximated.
The chart type follows the shape of the query, so it is never a guess. The prose only restates rows that exist — anything it cannot account for is caught and rewritten.
Ground truth is computed independently of the product's own semantic layer, so if the catalog is wrong the two disagree and the suite fails.
Measured on a fixture warehouse of roughly 472,000 synthetic SAP rows across aggregates, filters, group-bys, joins, rankings, time series, year-on-year comparisons, currency conversion, and nine questions that are deliberately unanswerable. The suite is re-run on every change.
This is what the ingestion layer is tested against, file by file, before a single question gets asked.
Report title, client and selection-screen rows sitting above the real header.
Two-row merged headers, where the column name is split across both.
Subtotal and grand-total rows interleaved with the data on the sort field.
Trailing-sign negatives — 1.234,56- is -1234.56, not a text value.
German and US number locales in the same deployment. 39,000 is 39 in one and 39,000 in the other, so locale is decided per file.
Dates as DD.MM.YYYY, YYYYMMDD and native Excel serials, in the same folder.
Leading-zero keys like 0000012345, which must stay strings or every join silently drops rows.
German column names and the binary .xlsb format, both handled without a manual mapping step.
Auditors do not accept "the system said so". Each answer carries the metric definition it used, the filters applied, and the source files it read. The query engine is read-only, capped on rows, and killed on a timeout, so a badly phrased question cannot touch your data or your bill.
An unmapped metric fails validation before any query exists. There is no path where it answers anyway.
Source files, filters and definitions fall out of the spec that produced the query.
A quantity in the sentence that no row can account for triggers a repair, then a plain fallback. An unexplained answer is recoverable. A wrong number is not.
Business users get their own answer in seconds. Finance stops being a queue for questions that were always simple.
Every ingested file with its row count, types, missingness, and the keys it can join on. You see what the system sees.
"Your data does not contain that" is a valid answer and a rare one to get from an AI tool. It is what makes the other answers worth trusting.
Re-run the folder as often as you like. Files already loaded are skipped, updated files are re-read, nothing double-counts.
The only data ingress is Excel files in a folder. No connector, no basis team, no change window, no production risk.
Several locales, currencies and column languages in one deployment, resolved per file rather than per install.
Cost follows how many report families you put under management and how deep the history goes, not how many people ask questions. We size it with you before anything is signed. Pilots start on one report family.
A pilot runs on your own exports. You bring ten questions your team asks every month. We show you the answers, the lineage behind each one, and the ones the system refuses.