FEATURES
From question to decision, in one place.
Ask in plain English, check the SQL, watch the numbers that matter and share what changed.
01 — ASK
Tessel writes each query against your semantic layer and shows it beside the chart, so anyone can check the logic before sharing.
Edit the SQL and the chart follows
Joins come from your models
Every answer links to its query

Weekly net revenue by region since June
SELECT region,
date_trunc(‘week’, closed_at) AS week,
sum(net_amount) AS net_revenue
FROM finance.invoices
WHERE closed_at >= ‘2026-06-30’
GROUP BY 1, 2
Ran in 0.8 s
52 rows
02 — MONITORS
Point a monitor at any metric. Tessel learns its normal range and posts to Slack when a number leaves it, with the likely cause attached.
Thresholds that know your seasons
Cause broken down by segment
Slack, email or webhook

Signups
−23% vs last Tuesday
2m
Trial to paid
+4.1 pts this week
1h
Refund rate
Back within range
3h
03 — METRICS
Define each metric once or import it from dbt. Every question, chart and digest runs on the same logic.
dbt import in one click
History on every change
An owner for every metric

net_revenue
sum(amount) − refunds
active_teams
count(distinct team_id)
churn_rate
lost_mrr / start_mrr
cac_payback
cac / (arpa × margin)
04 — DIGESTS
Send a chart or a whole board to Slack or email on a schedule. Each digest says what moved and why in two lines.
Daily, weekly or on change
Live links, not screenshots
Threads on any chart

Tessel
#revenue · 9:00
Monday digest: net revenue $1.38M (+3.2%). EMEA recovered after two renewals closed.
05 — ACCESS
Roles and row rules come from your warehouse or identity provider. Your data stays where it is.
SSO and SCIM
Row-level permissions
Full audit log

F
Finance
All tables
S
Sales
crm.*, finance.invoices
S
Support
support.*
06 — INTEGRATIONS
Connects to the stack you have.
Snowflake
Databricks
BigQuery
dbt
Supabase
MongoDB
Salesforce
HubSpot
Stripe
Sheets
Slack
Notion
