Built by an analyst.
Built for analysts.

Your queries, hosted. Your questions, answered. Your database, safe.

An analyst built Chion to host queries, ask them in new ways, and run them without blowing up production. Data engineering sits underneath. Data science shapes the question. Prompt engineering keeps the SQL honest. The analyst on your team gets six of them, whether you've hired them or not.

Starter $29 · Pro $99 · Max $299. 10-day trial, no credit card, cancel anytime.

What Chion is for analysts

Chion is three things in one environment. A hosted library for every query your team has ever run, versioned and searchable. An AI layer that reads your schema and your saved queries, so follow-up questions build on what your team already trusts. And a validator chain that keeps all of it read-only, capped at 1,000 rows, with the SQL shown under every chart. Host. Ask. Run safely.

Two paths, same guarantees

Hand-crafted SQL and AI-generated SQL pass through the same validation pipeline.

Write your own SQL

  • A SQL editor with syntax highlighting, line numbers, and a Test button that runs the query against your connection in read-only mode
  • Save it as a template and it's in your library — searchable, versioned, ready for AI follow-ups
  • Parameter binding ($1, $2) for reusable templates with rollback and diff
  • Same three-layer validation as AI-generated queries

Ask in plain English

  • Natural language → verified SQL via 13-phase pipeline
  • Multi-turn follow-ups that refine without starting over
  • Entity resolution via vector search over your column samples
  • Every chart shows the exact SQL underneath

Six agents, three disciplines

They do the work an analyst would delegate if they had the headcount for it.

Schema Profiler

Data Engineering

Profiles every column — data types, cardinality, null rates, value distributions — before any query runs. Your schema context is built automatically, not guessed.

Semantic Labeler

Prompt Engineering

Assigns human-readable labels to every column. 'revenue_q' becomes 'Revenue by Quarter.' Embeddings are generated for retrieval-augmented search across your templates.

Discovery Engine

Data Science

Seven discovery strategies — entity lookup, comparison, top-K ranking, extrema detection, dimension breakdown, universal quantifier, time-bounded — route your question to the right analytical pattern.

SQL Validator

Data Engineering

Three passes on every query. L1 rejects anything that isn't a read-only SELECT. L2 lints for missing LIMITs and SELECT *. L3 truncates at 1,000 rows so nothing exits the database you didn't authorize.

SQL Contract Builder

Prompt Engineering

Generates a structural boundary — allowed columns, filters, aggregations, grain, ordering — before SQL is written. The generator cannot introduce out-of-contract elements.

Template Versioner

Data Engineering

Every query template is versioned with full change history. Parameter binding ($1, $2), rollback, and diff across versions — the same workflow you'd build in dbt, already wired.

Migrate your queries into this environment

Bring your library. Keep your knowledge.

Start with a few queries

Bring your existing SQL — the queries pinned in Slack, buried in notebooks, scattered across BI tools. Paste them into Chion's template editor, connect your PostgreSQL database, and start asking questions and generating charts without rebuilding anything.

Bring your whole library

Got a library of queries in Slack threads, Looker folders, or someone's ~/scripts/ directory? We'll move it in with you. One working session, a versioned repository your team can search, and AI that can reference any of your queries when someone asks a follow-up. The dashboard backlog doesn't get fought — it gets bypassed.

Talk to the founder

Built by an analyst. Supported by one too.

Chion was built by Jonathan Dag, a former analyst across enterprise data teams. He reviews migrations personally and can walk through how your queries map into Chion's template system.

That's the tool I kept wanting someone else to build.

Reach out directly

Examples: analyst questions → SQL

Real questions, verified SQL output.

"Revenue by region last quarter"

GROUP BY + date filter
SELECT region, SUM(revenue) AS total_revenue
FROM orders
WHERE order_date >= date_trunc('quarter', CURRENT_DATE - INTERVAL '3 months')
  AND order_date < date_trunc('quarter', CURRENT_DATE)
GROUP BY region
ORDER BY total_revenue DESC;

"Median order value by city"

PERCENTILE_CONT
SELECT city,
  PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY order_value) AS median_value
FROM orders
GROUP BY city;

"Conversion funnel by channel"

FILTER (WHERE)
SELECT channel,
  COUNT(*) FILTER (WHERE step = 'visit') AS visits,
  COUNT(*) FILTER (WHERE step = 'signup') AS signups,
  COUNT(*) FILTER (WHERE step = 'purchase') AS purchases
FROM funnel_events
GROUP BY channel
ORDER BY visits DESC;

"Customer lifetime value distribution"

CTE + CASE bucketing
WITH ltv AS (
  SELECT customer_id, SUM(amount) AS lifetime_value
  FROM orders GROUP BY customer_id
)
SELECT
  CASE
    WHEN lifetime_value < 100 THEN '<$100'
    WHEN lifetime_value < 500 THEN '$100-$500'
    ELSE '$500+'
  END AS ltv_bucket,
  COUNT(*) AS customers
FROM ltv GROUP BY 1 ORDER BY 1;

Analyst FAQ

Try it on your own data

Host your queries. Ask them in new ways. See the SQL before anything runs.