OSI Playground

The Open-Source OSI Playground for MetricFlow

Validate MetricFlow YAML against the Open Semantic Interchange spec, convert it to OSI in one click, and diff the two formats side-by-side. Runs entirely in your browser — no upload, no signup.

OSI v0.2.0.dev0·Browser-only·Apache 2.0
metricflow.yml0.8 KB
8 mapped · 5 renamed
OSI v0.2.0.dev0
Dropped fields: model
osi_version: 0.2.0.dev0
entities:
  - name: orders
    description: Fact table of customer orders
    table: fct_orders
    join_keys:
      - name: order_id
        type: primary
      - name: customer_id
        type: foreign
    dimensions:
      - name: order_date
        type: time
        granularity: day
      - name: status
        type: categorical
    metrics:
      - name: order_total
        type: sum
        expr: amount_usd
        description: Gross order value in USD
      - name: order_count
        type: count
        expr: order_id
      - name: revenue
        type: simple
        description: Total revenue across all orders
Overview

What Is the Open Semantic Interchange?

OSI is a vendor-neutral YAML specification for semantic-layer metadata — a shared way for warehouses, BI tools and AI agents to talk about the same metric without redefining it in every product.

Launched in 2025 by Snowflake, dbt Labs, Salesforce, ThoughtSpot and other members of the modern data stack, OSI standardizes how entities, dimensions, metrics and join keys are described. Once a metric like revenue is defined in OSI, Cortex, Cube, Looker, AtScale and Datus can all read the same source of truth.

The current draft is v0.2.0.dev0. It targets an eventual 1.0 alongside production adoption in Snowflake Cortex and dbt semantic-layer exports.

Mapping

MetricFlow → OSI Field Mapping

How every MetricFlow construct is translated into the OSI core schema. The Converter above uses exactly this table — nothing hidden. See the full 8-product mapping in the OSI Field Mapping reference.

metricflow-to-osi.yamlyaml
MetricFlowOSINotes
semantic_models[]entities[]One MetricFlow semantic_model becomes one OSI entity — same name, same description.
model: ref('fct_orders')table: fct_ordersThe dbt ref() wrapper is stripped; the raw table name is used as the OSI table binding.
entities[]join_keys[]primary / foreign / natural key semantics are preserved verbatim.
dimensions[]dimensions[]type is normalized to categorical / time / numeric; time_granularity moves to granularity.
measures[]metrics[] (type = agg)MetricFlow measures become OSI metrics; agg becomes the metric type (sum, count, average…).
metrics[] (top-level)metrics[] (on entity)simple / ratio / cumulative / derived types survive; the referenced measure resolves onto its owning entity.

Want every product side-by-side? Read the OSI Field Mapping reference — MetricFlow, Cube, LookML, AtScale, Snowflake, GoodData, Power BI and Databricks across six layers.

How to

How to Convert MetricFlow to OSI

Three steps, browser only — no CLI to install, no key to paste.

Paste your MetricFlow YAML

Drop your semantic_models file into the input on the left. The Playground parses locally — nothing leaves your browser.

Convert to OSI

Open the Converter tab, click Download, and you have an OSI-compatible .yml file ready to hand to any OSI-aware tool.

Diff and validate

Use the Diff tab to see exactly what changed, then the Validator to confirm the output matches OSI v0.2 before you commit it.

Why it matters

Why an Open Semantic Standard Matters

Four concrete wins your data team gets the day a metric definition stops living inside a single vendor's YAML.

One definition, every tool

Define 'weekly active users' once. Snowflake Cortex, Cube, Looker and the Datus agent all read the same OSI file — no more three answers for the same question.

AI agents that don't hallucinate metrics

OSI is the missing grounding layer for LLM copilots. When your agent reads OSI, it stops inventing join keys and starts quoting the semantic layer verbatim.

Zero-lock migration path

Author metrics in dbt MetricFlow today, export to OSI, and consume them from any downstream tool tomorrow. The interchange format decouples authoring from consumption.

Governance stays where it belongs

Reviewed pull requests, lineage and ownership live in the source YAML. OSI carries the same names into every consumer, so downstream tools show the same governance metadata.
Comparison

OSI vs MetricFlow vs Cube

Interchange formats, engines and platforms solve different problems. Here is where each one fits.

osi-vs-metricflow-vs-cube.yamlyaml
DimensionOSIMetricFlowCube
ScopeInterchange formatSemantic layer + engineSemantic layer + engine + API
Runs queriesNo — spec onlyYes (via dbt SQL)Yes (via Cube API)
VendorNeutral (Snowflake · dbt · Salesforce · …)dbt LabsCube Dev
Primary consumersBI + AI tools that share a definitiondbt projects + MetricFlow-aware toolsBI dashboards, embedded analytics, LLM apps
LicenseApache 2.0Apache 2.0Apache 2.0
MaturityDraft v0.2 (2026)GAGA
FAQ

Frequently asked questions

What OSI is, how the converter works, whether your YAML stays local, and how Datus uses OSI internally.

What is the Open Semantic Interchange (OSI)?

The Open Semantic Interchange is a vendor-neutral YAML specification for describing metrics, dimensions, and entities in a semantic layer. Backed by Snowflake, dbt Labs, Salesforce and others, OSI lets you define a metric once and query it from Snowflake Cortex, Cube, Looker, AtScale, ThoughtSpot and more without redefining 'Revenue' in every tool.

How do I convert MetricFlow YAML to OSI?

Paste your MetricFlow YAML into the Converter tab above. The Datus OSI Playground runs entirely in your browser: it parses your semantic_models, measures and dimensions, maps them to OSI entities, metrics and dimensions, and gives you a downloadable .yaml file plus a list of any fields that were dropped in translation.

Is my YAML sent to a server?

No. The Validator, Converter and Diff all run 100% in your browser using js-yaml. Your semantic definitions never leave your machine — there is no upload, no sign-up, and no logging. You can verify this in your browser's DevTools Network tab.

Which OSI version does the Playground validate against?

The Playground currently validates against OSI v0.2.0.dev0, the working draft of the core metadata specification. The OSI spec is still evolving toward a stable 1.0, so we track the upstream schema and re-publish the Playground when the spec moves. The active version is stamped at the top of every Validator result.

What is the difference between OSI and MetricFlow?

MetricFlow is dbt Labs' semantic layer YAML format — it's tightly integrated with the dbt project and generates SQL through the MetricFlow engine. OSI is a vendor-neutral interchange format: it doesn't run queries itself, it standardizes how metric and dimension definitions are shared across tools. In practice, teams author metrics in MetricFlow or Cube and export to OSI so downstream BI and AI tools can consume them without vendor lock-in.

Does the Converter support every MetricFlow feature?

The MVP covers the most common surface: semantic_models to entities, measures to metrics, dimensions to dimensions, entities to join_keys, and top-level metrics whose type_params.measure lives on a converted model. Advanced features (saved queries, cumulative metrics with grain-to-date, complex ratio metrics) are on the roadmap; any fields dropped in conversion are surfaced explicitly in the result panel so you never lose them silently.

How does Datus use OSI internally?

Datus is a data engineering agent that grounds every SQL query, pipeline and dashboard answer in your semantic layer. We treat OSI as the neutral wire format between Datus and whichever semantic layer you already run — dbt MetricFlow, Cube, Looker LookML or a home-grown YAML store — so the agent stays accurate as your stack changes. See our Features page for how the context engine reads OSI.

Is the OSI Playground open source?

The upstream OSI specification is Apache 2.0 (github.com/open-semantic-interchange/OSI). The Datus Playground is a free hosted tool built by the Datus team — the Datus data engineering agent itself is also Apache 2.0 and you can self-host the whole stack, semantic-layer support included.

Let a data engineering agent read your OSI.

Datus grounds every SQL query, pipeline and dashboard answer in your semantic layer — OSI, MetricFlow, Cube or LookML, take your pick.