Semantic Layer

Define metrics once. Query them anywhere.

Stop duplicating metric definitions across dbt models, LookML, and Jupyter notebooks. Loomkindle's YAML-first semantic layer gives every downstream tool — Sigma, Hex, dbt, REST API clients — a single consistent answer to "what does MRR mean?" We're not a replacement for dbt — we sit above it and enforce consistency across everything consuming its output.

Request Early Access Read the docs
1 definition
N consumers
Git-native
Reviewable changes
Agent-aware
LLM query context
What it does

What the semantic layer does

The semantic layer sits between your warehouse and every downstream consumer. It translates business definitions — "monthly recurring revenue", "30-day active user", "net revenue retention" — into warehouse-specific SQL queries, regardless of which tool is asking. When Sigma and your dbt model ask for MRR, they get the same definition, computed the same way, from the same source table.

With Loomkindle, these definitions are declared in YAML, committed to git, and served consistently to dbt models, Sigma workbooks, Hex notebooks, REST API clients, and LLM-based data agents. One definition file. No more divergence in board decks.

  • No more metric divergence between BI tools and data models
  • Data architects own the definitions — not each tool's admin
  • Changes reviewed in pull requests before they hit production
YAML-first

YAML-first semantic model

metrics/revenue.yml
# Loomkindle semantic model
version: 1

metrics:
  - name: monthly_recurring_revenue
    label: MRR
    type: sum
    expression: subscription_mrr
    source: subscriptions
    filters:
      - field: status
        operator: equals
        value: active
    dimensions:
      - plan_type
      - billing_period
      - region

  - name: net_revenue_retention
    label: NRR
    type: ratio
    numerator: ending_mrr
    denominator: beginning_mrr

entities:
  - name: subscription
    primary_key: subscription_id
    source: subscriptions

No proprietary DSL

Standard YAML syntax. No vendor lock-in. Your semantic model is portable and readable by any engineer on the team.

Git-versioned definitions

Metric definitions live in your repo. PR reviews enforce consistency. Rollback is just git revert.

Agent-aware context

Loomkindle exposes your semantic model as structured context for LLM-based data agents — no hallucinated metrics.

Multi-warehouse pushdown

Queries execute with pushdown optimization against Snowflake, BigQuery, or Redshift — not a single translation layer.

Use Cases

Use cases

Analytics engineering teams

Analytics engineers spend less time answering "which metric is right?" and more time building new models. With a single semantic layer, your dbt models and BI layer speak the same language.

  • Replace duplicated metric logic across dbt and Looker
  • Enforce dimension naming conventions at the semantic layer
  • Detect and alert when schema changes break metric definitions
# Before Loomkindle
dbt model: revenue = SUM(arr)
Looker: revenue = total_arr * 12
Script: mrr = monthly_charge
→ 3 different numbers in board deck
# After Loomkindle
metrics/revenue.yml: one source
→ consistent everywhere

Data architects

Define the canonical data model once and enforce it across the entire stack. When organizational definitions change, update one file — not twenty.

  • Centralize metric governance for multi-team data orgs
  • Audit entity relationships and dimension hierarchies
  • Schema evolution handled automatically by the agent
loomkindle validate --strict
✓ 24 metric definitions
✓ 11 entity relationships
✓ 3 warehouse targets
All definitions consistent.

Agentic AI data pipelines

LLM-based data agents need structured context to answer questions accurately. Loomkindle exposes your semantic model as a queryable context layer — reducing hallucinated metric definitions.

  • Serve semantic context to LLM agents via REST API
  • Ground natural language queries against verified definitions
  • Agent routing adapts as your schema evolves
GET /api/v1/metrics/context
{
"metric": "mrr",
"definition": "active subscription sum",
"dimensions": ["plan_type", "region"],
"agent_ready": true
}

One metric definition for every tool.

See how Loomkindle's semantic layer fits into your data stack.