Analytics

Explore

Self-serve BI over the database integrations your company already connects. Save a SQL query as a Chart, pick a visualization, pin charts onto a Dashboard the team reads at a glance. Distinct from Bases (the team writes into those) and from running queries inside an Integration tool by hand.

What ships

  • Chart — a saved SQL query against one database Connection plus a visualization choice (table, scalar, bar, line, area, pie).
  • Dashboard — a grid of Charts, each one a DashboardCard with its own size and position.
  • Run — every execution (ad-hoc from the editor or from a saved Chart) goes through the same executor with a 30s wall-clock timeout and a 5,000-row cap.
  • Grants — give AI Employees read or write access to a specific Chart or Dashboard so they can author and run analytics alongside humans.

What you need first

Explore reads from Integrations — specifically Connections of provider postgres, mysql, or clickhouse. Set one up under Settings → Integrations, then it shows up in the Connection picker inside Explore.

Authoring a Chart

  1. Open Explore from the sidebar, click New chart.
  2. Pick the Connection that holds the data.
  3. Write SQL in the editor. Run previews the result table. Errors come back inline so you can iterate without leaving the page.
  4. Pick a visualization. The picker shows a live preview of every viz type against your current result set — switch between them in one click until the shape fits.
  5. Configure the viz in the side panel (dimension column, measure column(s), bar orientation + stacking, pie slice column …). Save.

The six visualization types

table
Raw rows. Good fallback when the data doesn't have an obvious shape — and useful as a sanity check before picking a richer viz.
scalar
A single big number. Reads the first cell of the first row. Use for KPIs: MRR, weekly signups, p99 latency.
bar
Categories on one axis, measure on the other. Configurable orientation (vertical / horizontal) and stacking when there are multiple measure columns.
line
Time on the x-axis, measure on the y-axis. Best for any series indexed by a date or timestamp.
area
Like line, but filled. Better for cumulative or volume-style series where you want the whole shape to feel weighty.
pie
Share of total across a single dimension. Don't reach for it when bar would do — pie is rarely the right call for more than four or five slices.

Building a Dashboard

  1. From Explore, click New dashboard. Title + description, save.
  2. Open the dashboard in Edit mode. Drag any Chart from the side panel onto the grid — drop it where you want it. Resize by dragging the bottom-right corner.
  3. Each DashboardCard can override the Chart's title for the context it's pinned in (you might call the same Chart "MRR" on the finance dashboard and "Revenue (MTD)" on the home dashboard).
  4. Hit Done editing. The view mode reloads each card's data — same 30s / 5,000-row envelope as the editor.

Sharing with AI Employees

Charts and Dashboards default to read for every employee in the company. Bump an employee up to write on a specific Chart and they can edit + delete it through the MCP tools below; bump them up on a Dashboard and they can add or move cards.

Open the Share menu on any Chart or Dashboard to change a teammate's level, revoke a grant, or invite an employee who didn't default to access.

MCP tools

Every employee gets these via the built-in genosyn MCP server (subject to the grants above):

  • list_charts, get_chart, run_chart — read paths. The run_chart tool is the one most teams hit: a teammate asks "what was MRR last month?", the employee finds the right Chart and runs it.
  • create_chart, update_chart, delete_chart — write paths. Require write on the row (create requires write on the parent Connection's Grant).
  • list_dashboards, get_dashboard, create_dashboard, add_dashboard_card — dashboard authoring.

Limits

Query timeout
30 seconds, wall-clock. Long-running analytical scans should hit a precomputed table, not the live OLTP db.
Row cap
5,000 rows per query. Larger result sets are truncated server-side. Aggregate before you return, or paginate via SQL OFFSET.
Connectors
Postgres, MySQL, ClickHouse. Snowflake / BigQuery / Redshift are on the roadmap.
No parameters yet
Charts run their SQL verbatim — no :start_date / :customer_id placeholders. Use a SQL view that joins against a date table if you need parameterization today.

Quick recipes

Recurring revenue scalar

sql
SELECT
  ROUND(SUM(amount_cents) / 100.0, 0) AS mrr_usd
FROM subscriptions
WHERE status = 'active'
  AND interval = 'monthly';

Viz: scalar. Pin to a dashboard alongside other finance KPIs.

Weekly signups, bar

sql
SELECT
  date_trunc('week', created_at) AS week,
  COUNT(*) AS signups
FROM users
WHERE created_at >= NOW() - INTERVAL '12 weeks'
GROUP BY 1
ORDER BY 1;

Viz: bar with dimension week, measure signups. Switch to line to see the trend without the buckets.

Plan mix, pie

sql
SELECT plan, COUNT(*) AS customers
FROM subscriptions
WHERE status = 'active'
GROUP BY plan;

Viz: pie, dimension plan, measure customers.

What's deferred

These are on the roadmap but not in v1 — call them out in an issue if you need one:

  • Parameters / filters (date range, dropdown bound to a column).
  • Scheduled deliveries — email a dashboard PNG at 9am.
  • Embedded views — public read-only links, signed.
  • Snowflake / BigQuery / Redshift connectors.
  • Native (no-SQL) query builder over a column picker — for teammates who don't write SQL.
  • AI-suggested charts on a freshly-added connection.