Why you can trust the numbers.
The fear with plain-English analytics is made-up numbers. So we made it impossible, three ways, and the third one is a test you can read.
Computed, not generated
Other tools' AI writes a query, runs it, and hopes it matches the dashboard, some even tell you it might not. smolanalytics never generates a query. Your question routes to an exact, deterministic report that returns the real number or nothing. There is no SQL for a model to get wrong, so there is nothing to hallucinate.
Every answer shows its work
Ask a question and the answer comes with a receipt: which report ran, over what window, and that you can open that exact report on the dashboard to check it yourself. No silent wrong-window answers, no invented figures.
The test that keeps it honest
It is not a promise, it is enforced on every build. This is the header of the actual test, verbatim:
// The agreement test — CI enforcement of the product's core promise: the answer your // AI gives over MCP is byte-for-byte the SAME computation the HTTP API returns and the // dashboard renders. There is no second query path that can drift (competitors' AI // layers generate queries and admit results "may not match the UI"; ours cannot, // and this test is why that claim stays true forever). If a default, a window, or a // boundary ever diverges between surfaces, this fails the build.
It seeds events, then asserts the number you get over MCP equals the number the /v1 API returns equals the number the dashboard shows, byte for byte. If any diverge, the build fails and nothing ships. read the whole test →
Common questions
How can it not hallucinate my numbers?
It doesn't write SQL a model might get wrong. Your AI calls exact, deterministic reports (funnels, retention, channels, web overview) that return the real computed number, or nothing. There is no generated query to be wrong.
How do I verify an answer myself?
Every answer shows a 'computed by' receipt: the exact report and the window behind it. Open that report on the dashboard and you get the same number. Nothing is a black box, and it never silently answers a different window than you asked.
What is the CI agreement test?
A test that runs on every build. It seeds events, then asserts the number you get over MCP equals the number the /v1 HTTP API returns equals the number the dashboard renders, byte for byte. If any diverge, the build fails and nothing ships. It's open source, you can read it.
What if I ask for a metric you don't have?
It tells you. Ask for MRR or churn without tracking those events and it says it doesn't invent metrics you haven't sent, then offers the closest real report. Naming what it won't fabricate is the point.