Skip to main content
Your AI analyst can be confidently wrong. Nodal makes every answer accountable. A query that returns a confident, well-formed, wrong answer raises no error, no alert, and no objection on its way into a decision — we call that silent SQL. Nodal is the evaluation layer for AI analytics: see what every agent told your business, test the questions that matter against governed ground truth, and catch answer drift when data, definitions, or models change. It starts with context — what your terms mean, which table is canonical, what the standard filters are, and where the landmines are — built with your analyst, verified against the dashboards you already trust, and served to your whole team over MCP.
Prefer to watch? A video series walks through the whole flow — from why the context is interview-built to sharing the hosted MCP with your team: why interview-built context · live demo · add your team. For installation and setup, use the Quickstart.
Nodal never needs access to your database. Your agent queries your warehouse through your own read-only connector. Nodal serves the context — definitions and canonical queries — not your data. See exactly what we access →

Three ways to use Nodal

Nodal Context — open source, free

The Analytics Context Format (ACF) and seven agent skills — an interview that builds your context layer one domain at a time, plan/verify/challenge workflows for answering questions against it, live dashboard verification, and a local eval harness that proves the context makes the agent more accurate. Apache-2.0. Runs on your stack with Claude Code, Codex, or Cursor. Quickstart →

Nodal MCP — team

A hosted, team-shared MCP endpoint that serves the same context to everyone’s agent, so a non-technical user gets the answer the analyst would give. One .mcp.json file, OAuth sign-in, GitHub access only — never your database. Self-serve: $49/month flat for up to 20 users.

Enterprise

For teams whose decisions depend on the answers — hosted by us or deployed in your own environment — with observability of every question, regression tests on every dbt, doc, prompt, or model change, and drift detection pinned to the commit that caused it. Contact us.

Tested in public

Nodal’s claims are reproducible, not asserted:
  • Spider 2.0-Lite — 61.2% on 547 questions. A thin Claude Code + Sonnet harness with the right context, no fine-tuning, no custom analytics agent.
  • Shorelane — 4 of 92 answers drifted after one innocuous dbt commit. Nodal replayed every governed question and named the commit.
  • Two agents, one number. Claude Code and Codex, the same question through the same governed context, landing on the same answer.
Shorelane Commerce is our open reliability testbed: a fictional company with public BigQuery data, dbt models, dashboards, deliberately ambiguous revenue definitions, and a completed analytics-context repo anyone can inspect. Everything in these docs can be tried against it before you touch your own warehouse.

Why interview-built, not auto-generated

The obvious approach — ingest your warehouse, dbt, and query history and auto-generate the context — is what most tools do. Teams who have measured it found it doesn’t hold up as a source of truth:
  • Anthropic’s data team reported that auto-generating metric definitions “encoded the very ambiguities we were trying to eliminate” and was net-negative on evals versus a smaller, human-curated layer.
  • Giving an agent grep access to thousands of prior queries moved accuracy less than a point — the information was present, the agent saw it, and it still resolved questions to the wrong entity.
  • MIT CISR independently recommends the opposite of boiling the ocean: build the semantic layer incrementally, priority data assets first — which is exactly what the one-domain-at-a-time interview does.
Their conclusion, and ours: generate the draft with the model, but have a human own the definition. Nodal auto-extracts your schema, dbt, and query history as a draft to correct so the analyst isn’t staring at a blank page — but the analyst’s confirmations, not the extraction, are what we trust.
A context layer is one idea; ACF is our opinionated, eval-backed take on it. You are not required to use ACF to get value from Nodal — the eval harness reads ACF, dbt models/docs, or plain markdown. Bring whatever context you already have.

Evaluation is built as you go

Every disambiguation the analyst makes in the interview (“active client means X, not Y”) is simultaneously a context entry and a labeled eval pair. Each domain closes by answering real questions context-off and context-on against your live warehouse and reconciling the result with a dashboard you trust — so you can always show accuracy with the context versus without it. Watch a live verification →

Where to start

Quickstart

Install the plugin, connect a read-only warehouse, and run your first domain.

Share it with your team

Put the context in front of everyone’s agent with a single .mcp.json file.