Back to BISGrounded — AI data analystAll demos
Interactive demo

Grounded — AI data analyst

Upload a spreadsheet, ask a question in plain English, and get a chart, a table, and a written interpretation — computed by real Python executed in an isolated sandbox, never a number the model guessed. This is a frozen replay of the real engine's output; the answers, code, and figures below all came from executed code.

Guided walkthrough

Understand exactly what you're looking at

The theory, how the data is acquired and cleaned, how to read the result — and what BIS would do for you next.

An AI data analyst answers a plain-English question about a dataset. The trick that makes it trustworthy is a single, unglamorous rule: never let the model guess a number. Every figure, chart, and table has to come from real code executed over the real data — not from the language model's sense of what the answer should be.

So the loop is: turn the question into Python, run it in a sandbox, and write the interpretation only from what actually printed. A run that never succeeds is never interpreted, so there is no path by which an invented number reaches you. Errors aren't dead ends either — a traceback is fed back to the model to repair its own code, then retried.

The seeded dataset here is a tiny sales.csv — twelve rows, five columns (region, month, product, units, revenue) — small enough to check by eye, which is the point: you can verify that every number in the answer is really in the data.

In the full product you bring your own CSV or Excel file. On upload it is profiled — column types, shape, missing values — and that profile both suggests good questions and grounds the code the model writes, so it references columns that actually exist.

The dangerous part is executing untrusted, machine-written Python over your data. Each analysis runs in a fresh, throwaway container with no network, a read-only filesystem, dropped privileges, and hard memory, CPU, and time limits — isolation enforced at the container boundary, not by trusting the code. A trusted harness loads the dataframe, runs the code, and returns exactly one structured envelope, so the generated code can never corrupt the result it hands back.

Quality isn't asserted, it's measured: an eval harness checks that the expected values appear in the executed output, and that every figure in the written interpretation was actually produced by the code — turning “never fabricate” from a promise into a tested property.

Pick a question. You'll see the phases the engine moves through — generating → executing → interpreting — then the interpretation streams in, followed by the chart and the result table. Hit “Show the generated Python” to see exactly the code that produced them.

That last part is the honesty check: the answer and the code sit side by side, so the analysis is auditable rather than a black box. The same surface is exposed to external agents over MCP — an agent can drive the whole platform and pull back the code, not just the answer.

The interesting engineering in “AI that does X” is rarely the model. It's the boundary where the model's output becomes an action in the real world — executing it safely, grounding it in truth, measuring it, and exposing it so other systems can build on it. That boundary is what BIS engineers.

This preview runs on a toy dataset; yours would run on your data, in your environment, against the questions your team actually asks — with the same rule that no number reaches a decision unless code produced it.

This preview runs on real public data. Yours would run on your data.

We start with a conversation, prove the value on a focused POC with your real data, then ship it — in our environment or deployed into yours.