offdataai
Semantic layer

A semantic layer your AI agents and analysts can trust

Define concepts, relations and metrics once, bound to your real tables. offdataai compiles every question into SQL from those definitions, so a dashboard, an analyst and an AI agent all get the same number.

  • From $1/month
  • 8 SQL targets
  • 174 templates
FreshCart ontologyDraft
placescontainssold atCustomer↳ dim_customerOrder↳ fct_orderProduct↳ dim_productStore↳ dim_storeMETRICNet revenue = sum(net_amount)
AI suggestion · Needs review
Published · OWL / JSON-LD
Concepts are drafted from your model and stay bound to their tables; every AI suggestion waits for review.
Watch the demo

See it in action

A narrated walkthrough, recorded in the real app.

How it works

Three steps, minutes not months

1

Describe or import

Answer a short interview, open a template, draw on the canvas or connect a live database.

2

Review a validated model

Keys, grain, history and PII are checked before any code is written. Refine it in plain English.

3

Ship and keep it current

Native DDL, dbt, seeds, docs and an ontology. Push to Git, diff versions, generate migrations.

Overview

Why teams choose offdataai

app.offdataai.com
A business question compiled from governed metrics, with the join path and the SQL that ran

A business question compiled from governed metrics, with the join path and the SQL that ran

  1. 01

    Every data team has the same quiet problem: three people asked for revenue last quarter and got three different numbers.

  2. 02

    One joined order lines twice, one forgot refunds, one used the wrong date column.

  3. 03

    A semantic layer fixes that by writing the definition down once, in business terms, and generating the SQL from it every time.

  4. 04

    With AI agents now asking questions of the warehouse directly, that shared definition has stopped being a nice-to-have.

  5. 05

    An agent with only a schema will guess, and it will guess confidently.

  6. 06

    offdataai's semantic layer is built from your data model, not typed into a YAML file from memory.

  7. 07

    Its concepts, relations and metrics are derived from a project created by the AI interview, one of 174 templates, the Model Builder or a live database read by the Database Modeler.

  8. 08

    Each concept stays bound to the tables and columns that store it.

  9. 09

    Semantic modelling becomes a review task rather than a blank page: you accept, edit or reject what was derived, and the published ontology contains only what your team approved.

  10. 10

    When someone asks a question, the language model's only job is to choose the metrics, dimensions and filters by name.

  11. 11

    A deterministic compiler does the rest.

  12. 12

    It walks the relations to find the join path, applies the metric formula and writes dialect-correct SQL for each source system.

  13. 13

    If a question spans two systems, offdataai pushes down what each one can run and joins the results in memory.

  14. 14

    The answer comes back as a sentence, the rows and the exact SQL, so nothing is a black box.

  15. 15

    The same layer serves people and machines.

  16. 16

    Analysts ask in plain English in the app.

  17. 17

    Agents such as Claude connect through the built-in MCP server or the REST API with a scoped API key, under the ontology's access rules, row filters and PII masking.

  18. 18

    On Databricks you can also publish the definitions as a Unity Catalog metric view so Genie reads governed metrics too.

  19. 19

    Pair it with the data catalog to see which tables each concept uses, and the context layer to give agents everything they need in one call.

Real output

The code it writes, not a sketch

This is the shape of what offdataai generates here, straight from the validated model. Copy it, download it, or push it to Git.

  • Metrics defined once
  • Compiled, never guessed
  • Across systems
net-revenue-by-segmentsemantic query → sql
1// A structured question, named by concept — not by table
2{
3 "metrics": ["Net revenue"],
4 "dimensions": ["Customer.segment", "Order.order_month"],
5 "filters": [{ "field": "Order.order_month", "op": ">=", "value": "2026-01" }]
6}
7
8-- What the compiler emits for Snowflake, walking
9-- Order → placedBy → Customer through the bindings
10SELECT c.segment,
11 DATE_TRUNC('month', o.order_date) AS order_month,
12 SUM(ol.amount - ol.discount) AS net_revenue
13FROM sales.fct_order_line ol
14JOIN sales.fct_order o ON o.order_id = ol.order_id
15JOIN sales.dim_customer c ON c.customer_sk = o.customer_sk
16WHERE DATE_TRUNC('month', o.order_date) >= '2026-01-01'
17GROUP BY 1, 2;
Capabilities

What the semantic layer does

  • Metrics defined once

    Net revenue, active customers or churn are written once against concepts, with their formula and grain, and reused by every question, dashboard and agent.

  • Compiled, never guessed

    The model selects metrics and fields by name; a compiler walks relations and bindings to write the SQL. Approved definitions decide the joins, not a prompt.

  • Across systems

    Questions that span Snowflake, Postgres, BigQuery, Redshift or Databricks are pushed down per source and federated in memory when they can't run as one statement.

  • Answers you can audit

    Every answer includes the rows and the SQL that ran, and every agent query is logged, so a number can always be traced back to its definition.

  • Governed access for agents

    Access rules and row filters apply to API and MCP questions, and personal data stays masked unless the key carries the pii:read scope.

  • Open standards

    Export the semantic model as OWL Turtle, JSON-LD or RDF/XML, publish resolvable IRIs, and push Databricks metric views to Unity Catalog.

0

Validated templates

0

SQL targets

0

Modeling paradigms

0+

Industries covered

Native output for the warehouses you already run

SnowflakeBigQueryDatabricksRedshiftPostgreSQLSynapseFabricDuckDBdbtSnowflakeBigQueryDatabricksRedshiftPostgreSQLSynapseFabricDuckDBdbt
FAQ

Frequently asked questions

What is a semantic layer?
A semantic layer is the shared definition of what your data means: the business concepts (Customer, Order), how they relate, and how metrics such as net revenue are calculated. Tools and people ask questions in those business terms, and the semantic layer translates them into correct SQL against the physical tables, so every dashboard, analyst and AI agent gets the same answer.
What is semantic modeling (semantic modelling)?
Semantic modeling, or semantic modelling in UK spelling, is the work of describing data in business terms: naming concepts, defining relations between them, binding each concept to the tables and columns that store it, and writing metric definitions once. In offdataai the semantic model is the ontology, derived from your data model and reviewed by your team.
How is offdataai's semantic layer different from asking an LLM to write SQL?
The language model never writes SQL freehand. It turns a question into a structured query made of metrics, dimensions and filters named by concept. A deterministic compiler then walks the ontology's relations and bindings to write the SQL for each source system. The joins and metric formulas come from definitions your team approved, so the same question always compiles to the same SQL.
Can one question span more than one database?
Yes. When a question needs data from two systems, for example orders in Snowflake and accounts in Postgres, offdataai pushes down everything each system can run on its own, then joins the partial results in an in-memory engine. When the tables live in the same engine (one Databricks workspace, one Snowflake account, one BigQuery project), it compiles a single statement instead.
What does an answer look like?
A plain-English question gets a one-sentence answer, the rows behind it and the SQL that ran, so anyone can check the logic. Up to 25 result rows are sent to the model to phrase the sentence. Each plain-English question uses one AI credit; structured queries from agents run directly against the compiled SQL.
How does the semantic layer control what agents can see?
Each ontology has access rules and row filters that apply to every question asked through the API or MCP. Columns classified as personal data stay masked unless the API key has the pii:read scope. Every query is audited, so you can see which agent asked what and which SQL ran.
Does it work with Databricks Unity Catalog metric views?
Yes. From the Database Modeler, offdataai can publish a Unity Catalog metric view for a Databricks model, so Genie and other Databricks tools read governed metric definitions instead of re-deriving them, which stops the double-counting that happens when fact tables are joined naively.
Is this a metrics layer or a semantic layer?
Both. A metrics layer defines calculations such as revenue or churn; a semantic layer also defines the entities and relations those metrics are measured over. offdataai keeps metrics, concepts and relations in one ontology bound to your tables, so a metric always knows which joins are valid.
Where does the semantic model come from?
From the data model you already have. offdataai derives concepts, relations and metrics from a project built by the AI interview, a template, the Model Builder canvas or a live database read by the Database Modeler. An optional AI pass suggests better names and definitions, and every suggestion waits in a review queue. You can also import an existing OWL ontology.
Which plan includes the semantic layer?
Building and publishing ontologies starts on Starter ($29/month). Answering questions from live databases, the public API and the MCP server for agents, and AI ontology enrichment start on Pro ($99/month). Team ($399/month) adds a shared organization workspace.

Part of the offdataai platform

From business requirements to production-ready data architecture and AI-ready enterprise context.

See all six stages →
  1. 01DesignLogical, physical and dimensional models.
  2. 02GenerateSQL, dbt, documentation and migrations.
  3. 03DefineBusiness metrics, semantic models and ontology.
  4. 04ConnectReal warehouse schemas and metadata.
  5. 05GovernDrift, lineage, impact analysis and approvals.
  6. 06ActivateMake trusted context available to AI agents.

This page covers Define and Activate. Every stage works on the same model, so what you design here carries through to the rest.

Start for $1

From requirements to AI-ready context, in one platform.

Describe your business in a conversation, start from a template or connect your own database. Your first model is ready in minutes.

Get startedBook a demo

Plans from $1/month · cancel any time