# Kater for data teams

> Most BI tools added an AI feature. Kater is BI your agent can build.

Your models, metrics, dashboards and apps are files in git. Your coding agent writes them. Kater compiles every change, and you approve the diff.

Everyone else reads the result in the browser, or asks in Slack, Claude or ChatGPT. Every answer uses the definitions your data team governs.

URL: https://kater.ai/data-teams/

- [Start a 30-day free trial](https://kater.ai/free-trial-request/)
- [Book a demo](https://kater.ai/request-demo/)
- [Compare Kater with the tool you use today](https://kater.ai/switch-to-kater.md)

## The semantic layer

**Most semantic models are YAML. Kater’s is SQL.**

### 1. Write SQL (Data team)

Start with the SQL you already write. It runs on your warehouse as it is.

`scratch.sql`:

```sql
SELECT
  s.region,
  SUM(s.orders) / SUM(s.visits) AS conversion_rate
FROM shop.web.sessions AS s
GROUP BY s.region
```

### 2. Define measures and dimensions (Data team)

Wrap each column in DIMENSION or MEASURE. Each one becomes a field with one definition.

`modeling/kater_objects/sessions.sql`:

```diff
 SELECT
-  s.region,
+  DIMENSION('region', s.region) AS "Region",
+  DIMENSION('visit_date', s.visit_date) AS "Visit Date",
-  SUM(s.orders) / SUM(s.visits) AS conversion_rate
+  MEASURE('conversion_rate', SUM(s.orders) / SUM(s.visits)) AS "Conversion Rate"
 FROM shop.web.sessions AS s
-GROUP BY s.region
```

- Region (dimension)
- Visit Date (dimension)
- Conversion Rate (measure)

### 3. Consumers (Business users and agents)

Business users and AI agents use the fields, with no SQL. Every chart and answer reads the same measure.

Business user, Conversion Rate by Region:

| Region | Conversion Rate |
| --- | --- |
| West | 4.8% |
| East | 12.7% |
| North | 8.0% |
| South | 9.0% |

AI agent, asked "Which region has the best conversion rate?", reads the same Conversion Rate measure.

## Layers and promotion

**Business users build in their own workspaces. Collaborate on what becomes shared.**

A new metric starts in one query, and moves up a layer when it proves useful. Its meaning stays the same.

- **Source layer.** Database datasets. `kater sync --resource-type db_dataset` writes one for each table in your warehouse, such as Snowflake.
- **Shared layer.** Kater datasets, Semantic models. Each Kater dataset adds fields and metadata to one database dataset. Semantic models group them.
- **Workspace layer.** Queries, Charts, Dashboards. A workspace is private or shared with your team. Its root reads one shared model.
- **Consumers.** Team, Agents, Apps. Your team, your agents and apps read one or more workspace queries. Your team also builds workspaces.

1. **In a query.** A person or an agent declares a measure in one query. Only that query reads it.
2. **In the workspace.** Promote it to the workspace root. Every query in the workspace reads one definition.
3. **In the shared layer.** The data team approves the request. Every workspace on the connection reads it, and it shows as verified.

Kater finds the same formula in more than one place, and recommends a promotion for it. [How modeling works](https://kater.ai/docs/model/overview/)

## Make it yours

**Most BI tools ship an agent you cannot change. Kater gives you what works, and you own all of it.**

Kater ships 6 agents, 28 skills and 5 workflows, each a file in your content store. Change any of them, or write your own:

- **Change any file.** Ask your agent "Lead every brief with revenue by region", and it writes `ai_tools/skills/brief-me.md`.
- **Write your own.** Ask your agent "/new-skill a weekly win-back report", and it writes `users/you/ai_tools/skills/win-back.md`.
- **Teach it about you.** Ask your agent "I own email and SMS. Insight first, please", and it writes `users/you/about.md`.

- [Customize Your AI Analyst](https://kater.ai/free-trial-request/)
- [Learn More](https://kater.ai/docs/ai/overview/)

## Why teams switch

**BI as code used to cost a lot of typing. An agent now does the typing.**

What is left is the part a person should do: decide what a metric means, read the diff, and approve the change. Software teams already work this way. Data teams are next, and Kater is built for it.

- **Everything is a file.** Models, metrics, queries, dashboards and apps live in git. Search them, review them, roll them back, and take them with you.
- **Your agent does the building.** Claude Code, Codex or Cursor works through the Kater MCP. Kater compiles every write and refuses one with an error.
- **One definition behind every number.** Revenue is defined once, in SQL. Every dashboard, app and agent answer reads that same measure.
- **Everyone else just asks.** Business users read dashboards and apps in the browser, or ask in Slack, Claude or ChatGPT. Nobody needs a seat in a BI editor.

## Define each metric once. Your agent builds the rest.

Start a 30-day free trial on your own warehouse, or book a demo.

- [Start a 30-day free trial](https://kater.ai/free-trial-request/)
- [Book a demo](https://kater.ai/request-demo/)
