SegmentStream
Metrics

Define every metric once. Every agent gets the same number.

The counting half of the semantic layer; Objects are the other half. Metrics live in your repo as code, compile to SQL deterministically and are served to apps, reports and agents alike, so the board deck and the agent's answer can't drift apart.

Define once

Dimensions and measures are declared once in code: Spend, CPC, Revenue, Net burn. Every app, report and agent reads the same definition.

Deterministic queries

Queries compile to SQL deterministically. An agent picks measures; it never writes the join that gets Revenue wrong.

Refuses instead of guessing

When a question is outside the model, the answer is "I can't answer that" instead of a confident wrong number.

Catalog for agents

Browse every model, dimension and measure from the console, the CLI or an agent. Agents read this map before they answer.

In code

pipeline/semantic_models/advertising.py
advertising = SemanticModel(
    name="advertising",
    source="silver/cost_data",
    default_date_dimension="date",
    dimensions=(
        Dimension("date", "date", type="date"),
        Dimension("platform", "data_source_type"),
        Dimension("campaign_id", "campaign_id", scope=("platform",)),
    ),
    measures=(
        Measure("spend", sum_(column("cost")), unit="currency"),
        Measure("clicks", sum_(column("clicks"))),
        Measure("cpc", divide(measure("spend"), measure("clicks"))),
    ),
)
Pipeline SDK reference →

Agents can build your BI. Without a semantic layer, they make numbers up.

Three benchmarks, one result. An agent writing SQL against raw tables gets a share of answers confidently wrong, and nothing tells you which ones. The same agent answering through a semantic layer gets nearly all of them right, and says “I can’t answer that” when it can’t.

84.1% → 100%

accuracy, raw-table SQL vs. a semantic layer

Same model, same questions. Through the semantic layer, wrong answers became refusals.

dbt Labs benchmark, 2026

51% → 90%+

single-prompt SQL vs. a semantic model

GPT-4o writing SQL in one prompt, against an agent answering through a semantic model, on real BI questions.

Snowflake engineering, Cortex Analyst

16% → 54%

on an enterprise schema, with a layer of meaning

GPT-4 answering business questions over an insurance company's SQL schema, before and after adding a semantic representation.

data.world AI Lab benchmark

Use it, install it, or build on it

Every block on the platform comes three ways. Most teams use all three.

Use it

Query any metric from the console, the CLI, an app or an agent.

Install it

Apps from the marketplace ship their metrics with them.

Build on it

Your agent proposes metric definitions from your tables; you approve them in a pull request.

Replaces LookML, dbt Semantic Layer, Cube and Metric spreadsheets.

Install from the marketplace

Solutions built with it

Enterprise pilot

Start a pilot.

Want metrics set up for you? Our forward-deployed engineers build it for you in your workspace, as code you own.

  • One solution, on your data, in your own workspace
  • First version live in two weeks
  • Parity proven before anything is switched off
  • Fixed scope and price, credited to your contract if you continue

Not ready for a pilot? Send the form anyway with your question. An engineer will reply, not a sales rep.

How the pilot works

Goes to our founder’s inbox. No sales queue, no newsletter.

Your company’s context, ready for every agent.

$ segmentstream workspace create acme --region eu

▸ workspace ready · data, objects, metrics and access rules in one place

▸ connect Claude, ChatGPT or Cursor with one connector

▸ tell your agent: “add our billing API as a source”

Start a pilot

Our engineers build the first version on your data in two weeks, at a fixed price.

Or join the waitlist for self-serve:

Pilots are open now. Self-serve opens to the waitlist this fall.