Product
Product11 min readBy The Data Workers Team

You're on AtScale: Keep One Semantic Model True for Excel, Power BI, Tableau and Every Agent

Already on AtScale? Data Workers brings your SML model in as governed context, catches source changes that would shift its numbers, and fixes them through one approval flow.

Your finance and sales teams agree on what "net revenue", "bookings" and "gross margin" mean, because AtScale defines them once. The model lives in SML, the YAML-based Semantic Modeling Language, in Git: datasets point at warehouse tables, dimensions and hierarchies sit on top, metrics and calculations sit on those. Design Center is where modelers work. Excel users build PivotTables over MDX, Power BI reports query through DAX, Tableau and the rest connect over SQL, notebooks use Python, and agents in Claude, ChatGPT or Gemini read the same model through AtScale's MCP server, generally available since release C2026.7. AtScale's AI Computation Engine computes a metric "identically whether the question comes from Claude, Cursor, Power BI, Excel, or Tableau", and its aggregates keep those answers fast on Snowflake, Databricks, BigQuery or Redshift. AtScale is where your metrics are defined once and served everywhere. Data Workers keeps that model true: Data Context Wizard brings your SML in as context with provenance and joins it to the lineage, quality and usage underneath, and when a source change would shift or break the model, Data Workers proposes the fix through one approval flow and leaves a receipt.

The model is only as right as the tables it points at. A renamed dbt column, a late Fivetran sync or a new code in a source system all reach AtScale through the warehouse, and every workbook, report and agent that asks gets the result. That seam is the job this guide covers.

Key takeaways

  • •AtScale keeps its job. SML, Design Center, the query engine, aggregates and every BI connection stay as they are. Data Workers works next to them from day one.
  • •Your model becomes governed context. Context Wizard reads the SML in Git (your team's assistant can check the deployed model over AtScale's MCP server alongside it), then ties each dataset column to the dbt models, ingestion jobs and source fields behind it.
  • •Source changes are caught before the business sees them. A new code in a source system, a rename, or a grain change that would shift a hierarchy or a metric is flagged with every affected dataset, metric and query pattern named.
  • •One approval flow, one receipt. Fixes go to a named owner in Spellbook as diffs for the dbt or SML repository, for the owner to merge, and Data Workers verifies the answer through AtScale afterwards.
  • •Start with a pilot. One model, read-only, with its source columns watched; then one fix class in one domain, on the ladder from L0 manual to L4 autonomous.

AtScale is the semantic layer. Data Workers is the operations layer that keeps it true.

AtScale does one job very well: one definition of every metric, served to every tool, computed the same way. Its MCP server exposes that model to agents through six read-only tools: list_models, explore_columns and focus_columns to discover the model, run_query for governed SELECT queries, get_outbound_queries to see the SQL AtScale sent to the warehouse, and get_sml_skills for semantic-layer guidance. SML is open source under Apache 2.0, now at version 1.8, with converters to and from Snowflake Cortex semantic models, Databricks UC metrics and Power BI.

Underneath the model sits everything that decides whether its answers are right: source systems, ingestion, dbt, the orchestrator and the warehouse. Data Workers covers that side, and reads the model so it knows exactly which columns the business depends on.

Here is one afternoon with Data Workers next to a finance model on AtScale. This is an illustration, not a customer case. Nothing in it fails loudly: every query keeps running, and the numbers move.

TimeSystemWhat happens
15:00SalesforceSales operations splits the EMEA value in the account Region picklist into EU and MEA as part of a territory change
15:30FivetranThe next sync lands the new values in salesforce.account. No column changed, so the sync succeeds
15:45dbt + SnowflakeThe hourly job rebuilds dim_account. The region_theater_map seed that rolls Region up to Theater has no rows for EU or MEA, and the build passes
15:50Data Workersrun_quality_check on the columns the finance model maps to flags a distribution change in dim_account.region: two values it has never held, and no EMEA rows
15:55AtScaleData Workers reads the SML from Git: the Geography hierarchy runs Theater, Region, Country on dim_account. A run_query for bookings by Theater shows International down by a third, with the difference sitting in an unassigned member
16:05Snowflakeget_outbound_queries and query history show the finance model groups by theater about 1,200 times a day, including the board's bookings PivotTable and two Power BI reports
16:20GitHub (dbt repo)Data Workers proposes a diff that adds EU and MEA to the seed under International, plus an accepted-values test on region, with the blast radius: one seed, one dimension table, one hierarchy, five metrics that slice by theater
17:00SpellbookThe sales operations lead confirms the mapping and the finance model owner approves
17:10dbt + SnowflakeThe change merges and the job rebuilds dim_account
17:30AtScaleData Workers runs the same bookings-by-Theater query through run_query, confirms International matches the morning's total plus the afternoon's new bookings, and writes the receipt
08:15Excel, Power BIThe CFO's PivotTable refreshes by theater; International is whole
Incident timeline across the stack: what AtScale, your team and Data Workers each do, step by step

Every system did its job. Salesforce took a valid territory change, Fivetran synced it, dbt built cleanly, and AtScale computed exactly what its model asked for. Without the check at 15:50, the first sign would have been a regional VP asking at the forecast call why International bookings dropped overnight. The SML never needed to change: the fix belonged in a dbt seed, approved by two named owners.

JobWhat AtScale doesWhat Data Workers does
The modelDefines metrics, dimensions, hierarchies and calculations once in SMLReads the model as context and joins each dataset column to lineage, quality, usage and owners
The answersServes Excel, Power BI, Tableau, Python and agents from one model, fast, through aggregatesMakes sure the tables and values behind those answers are correct and current
The sourceQueries the warehouse tables each dataset namesWatches those tables for schema, value, grain and freshness changes before they shift the model
The fixDeploys the model changes its owner approvesProposes changes in dbt or SML with the blast radius and routes them to a named owner
The proofStores inbound requests and the queries it executesVerifies the answer through AtScale and writes a receipt with the cause, diff, approver and rollback
The meaningHolds the authoritative definition for every query through AtScaleKeeps that definition consistent with dbt, warehouse semantic objects and the catalog, with conflicts routed to an owner

Why doesn't AtScale just do this itself?

Because AtScale built a semantic layer, and its design is right for that job. The model is authoritative for every query through it, and AtScale guards it carefully: every tool on its MCP server declares itself read-only, and the server parses each statement and rejects anything that is not a SELECT before it reaches the warehouse. Modelers change the model in Design Center or SML and deploy it on purpose. That is exactly what you want from the system every finance workbook trusts.

The changes this guide is about start outside the model, in systems AtScale doesn't run: the CRM, the Fivetran connector, the dbt project, the Airflow DAG. Changing those means writing to other vendors' systems and to production data, with a blast radius, an approval, a rollback path and accountability for the result. For a semantic layer, taking that on would mean reaching into your pipelines from the place your metrics are served, which is a sensible thing to keep separate. That cross-system, write-with-approval work is the product Data Workers is.

Every tool owns a slice. Data Workers covers the whole lifecycle

AtScale owns one slice of the data lifecycle outright: defining metrics once and serving them to every BI tool and agent. Each point tool adds another console, contract and handoff. Data Workers covers the whole lifecycle with one context, one approval flow and one audit trail, and builds on the semantic layer you already run.

Spider chart of ten jobs a data team does: Data Workers covers the whole list, AtScale goes deep on its own area
StageData WorkersAtScaleWhy we scored it this way
Catalog & Context99.5AtScale's home stage: metrics, dimensions, hierarchies and calculations defined once in SML and served over SQL, MDX, DAX, Python, REST and MCP. Data Workers brings that model in as context, next to lineage, quality and usage.
Analytics & Insights89.5AtScale's other home stage: Excel, Power BI and Tableau users query live warehouse data through one model, with aggregates that keep answers fast. Data Workers' Insights agent answers through governed metric definitions.
Data Quality83AtScale computes each metric the same way for every tool; testing the source tables is a different job. Data Workers checks the tables and columns the model reads and repairs breaks before the next build.
Observability & Incidents8.53AtScale stores inbound requests and the queries it runs. Data Workers detects a source change, traces it to every model and report, fixes it and verifies the result.
Pipelines & Ingestion8.53Query-based datasets can be materialized as AtScale-managed tables (public preview). Data Workers builds, reruns and backfills the pipelines that feed the model, with approvals.
Schema & Migration84Versioned SML in Git, with converters for Snowflake Cortex, Databricks UC metrics and Power BI. Data Workers detects upstream schema changes and assesses their impact on every dataset before they land.
Governance & Access8.56.5Strong over its own model: row security, access rules and auditable query history. Data Workers proposes and applies grants across your data platforms by policy.
Security & Privacy85Strong for its own queries: governed access and traceable answers. Data Workers flags sensitive column names in pull request review and proposes masking for the owner.
Cost / FinOps85Aggregates cut full-table scans for BI and AI queries. Data Workers traces Snowflake credits to the dbt model behind them and drafts the fix for its owner.
MLOps & Models7.53A Python interface serves governed metrics to notebooks. Data Workers keeps the data under your models healthy and connects to MLflow and W&B.

How AtScale and Data Workers work together

Your people and agents stay where they are: Excel, Power BI and Tableau for analysis, Claude Code or Cursor for engineering, Design Center for modeling. Spellbook Data Catalog (in preview) is where the data team reviews each proposed change, its blast radius, approver and rollback. Underneath, Data Context Wizard keeps one governed context graph, the Data-Agents Swarm's 20+ specialist agents do the work, and the Autonomous Data-Conductor runs each fix end to end (detect, diagnose, fix, review, verify, remember) under per-domain guardrails.

How Data Workers fits with AtScale: your coding agent on top, Data Workers in the middle, your estate underneath

What Context Wizard does with your model. It reads the SML files from Git and records each definition with provenance: file, commit, read time and owner. Your team's assistant confirms the deployed model over AtScale's MCP server with list_models and explore_columns, and Data Workers joins every dataset column to warehouse lineage, so the Theater level traces back through dim_account and the seed under it to the Salesforce field it came from. It serves one governed view to every agent through tools like explain_table and trace_cross_platform_lineage, and when AtScale's "net revenue" disagrees with the dbt Semantic Layer's, the conflict goes to a named owner.

Setup over MCP today. Data Workers connects to AtScale over its MCP server today, in the same client as its own agents. Your AtScale admin enables the server with atscale-mcp: enabled: true in the Helm values, and you authenticate with the atscale-mcp OAuth client or an API token from Design Center, issued to a user with read access to the models you want covered. Data Workers' agents are MCP servers from the open-source repository: clone it and add start-agent.sh entries to your client config, as the client setup docs show.

// Example: .mcp.json for Claude Code (Cursor uses the same mcpServers shape)
{
  "mcpServers": {
    "atscale": {
      "command": "npx",
      "args": ["mcp-remote", "https://<your-atscale-host>/mcp",
               "--header", "Authorization: Bearer ${AUTH_TOKEN}"],
      "env": { "AUTH_TOKEN": "<AtScale API token from your secret store>" }
    },
    "dw-context-catalog": {
      "command": "/path/to/dataworkers-claw-community/start-agent.sh",
      "args": ["dw-context-catalog"]
    },
    "dw-schema": {
      "command": "/path/to/dataworkers-claw-community/start-agent.sh",
      "args": ["dw-schema"]
    },
    "dw-quality": {
      "command": "/path/to/dataworkers-claw-community/start-agent.sh",
      "args": ["dw-quality"]
    }
  }
}

List the tools with your client's own command (for example /mcp in Claude Code). An engineer can then ask "what feeds the Theater level in the finance model, and is it safe to rename dim_account.region?" and get the model's columns from AtScale, lineage from trace_cross_platform_lineage, impact from assess_impact and check_compatibility, and the latest run_quality_check results, in one answer.

Where writes go. Fixes land where your team already reviews change: a dbt diff for the tables and an SML diff for the model, each for its owner to merge. The model owner deploys from Design Center or CI, as today.

One request, L0 to L4. The autonomy ladder is set per domain.

The autonomy ladder: L0 manual, L1 observe, L2 propose, L3 act reversibly, L4 autonomous
  • •L0 manual. Data Workers is connected but not acting. Your modeler traces the change by hand.
  • •L1 observe. Data Workers watches every column the model maps to, flags changes with lineage and owners, and changes nothing.
  • •L2 propose. Data Workers drafts the dbt or SML diff with its blast radius. The owner approves in Spellbook before anything merges.
  • •L3 act reversibly. For change classes with a proven record, such as rerunning a late partition the model reads, Data Workers applies the change, verifies through AtScale and can roll it back.
  • •L4 autonomous. For a scoped, trusted class like late feeds into one model's source tables, Data Workers fixes and verifies on its own and posts the receipt.

For the safety model, read is it safe to let AI agents change production data; for where data and credentials live, where does our data go.

If you run more than one semantic layer, Data Workers + Cube, AtScale, MetricFlow and Ossie shows how Context Wizard compares definitions across all of them. See the hub, bring your own context, and the guides for teams on Cube, the dbt Semantic Layer and Apache Ossie (formerly Open Semantic Interchange). For the wider category, semantic layer tools compared and why a semantic layer is not enough for AI cover the tradeoffs.

What changes for your team

Six jobs that run on autopilot with Data Workers next to AtScale, with a concrete example of each

Semantic layer teams spend much of the week on work that isn't modeling: chasing a shifted total, explaining why an Excel number moved, rebuilding after a late load. With Data Workers next to AtScale, those jobs run on autopilot at the level you set.

  • •Incidents. A source change that would break a dimension or shift a metric is caught, traced and fixed before it reaches Excel or Power BI.
  • •Data quality. Every column a dataset maps to gets null, range, distribution and freshness checks in the warehouse.
  • •Cloud spend. Snowflake credits are traced to the query and dbt model behind them, and each fix goes to its owner drafted.
  • •Access. A request for a sensitive measure, such as margin by customer, arrives as a time-boxed grant proposal for its owner.
  • •Audits. Every change to a dataset, source table or definition carries an approver, a diff and a rollback path.
  • •Migrations. When the warehouse under the model moves, the source tables move in parity-checked waves while AtScale keeps answering.

The modeling team gets its week back for new subject areas, new metrics and the business conversations only it can have.

Keep AtScale, or consolidate?

Keep AtScale if you love it; Data Workers works with it from day one. Many teams consolidate once Data Workers runs that slice too.

For most teams, the SML model, the DAX and MDX support Excel and Power BI depend on, and the aggregates belong right where they are. What teams consolidate is the tooling around the model: a separate quality tool for the source tables, a spreadsheet mapping dataset columns to dbt models, a script that compares yesterday's totals, a Slack thread as the change log. If you are weighing building this layer yourself on AtScale's MCP server, read build it ourselves with Claude Code and MCP servers: the connection is the easy part; the cross-system context, approvals and rollback are where the work is.

The case for your CFO

The outcome: the numbers finance, sales and the board read in Excel and Power BI stay right every morning, and every agent that asks gets the same answer. AtScale already makes the definition consistent; Data Workers keeps the data under it correct as the business changes.

The risk story is plain. Data Workers reads SML from Git; your team's assistant uses AtScale's read-only MCP server side by side with it. Every change it proposes shows its blast radius, goes to a named approver as a diff your team already reviews and merges, is verified through AtScale and leaves a receipt: who approved it, what it touched and how to undo it. Autonomy is set per domain from L0 manual to L4 autonomous and can be dialled back at any time. Zero migration: AtScale, the warehouse, dbt and your BI tools stay put.

Why now: agents read the model directly over MCP, next to every Excel and Power BI user, so one unnoticed source change reaches more people faster. The first win is one model with its source columns watched, read-only, so the next territory change is caught the afternoon it happens. What stays the same: your SML, Design Center workflow, AtScale deployment, warehouse permissions and review process. For the numbers, see the ROI of agentic data operations.

The sentence to repeat upstairs: "AtScale gives us one definition of every number; Data Workers keeps the data under it right, and fixes breaks with an owner's approval and a receipt."

Getting started

Start with a pilot. Pick the AtScale model your finance leaders read most, connect AtScale's MCP server and the SML repository read-only, and let Data Workers watch the model's source columns for a few weeks before enabling the first fix class. The pilot path and plans are on the pricing page, and the pilot is credited in full against the first year.

FAQ

Does Data Workers change our AtScale model? Only through its owner. Data Workers proposes SML changes as diffs for your model repository; the owner approves in Spellbook and deploys from Design Center or CI. AtScale's MCP server stays read-only.

How does Data Workers read AtScale today? From the SML files in your Git repository, recorded in Context Wizard with source, commit and owner, and over AtScale's MCP server to confirm the deployed model and run governed SELECT queries for verification.

Does this replace AtScale's aggregates or query engine? No. AtScale keeps serving every tool with its own aggregates. Data Workers keeps the tables those queries read healthy and current.

What happens when AtScale and dbt define a metric differently? Context Wizard routes the conflict to a named owner, and agents that ask Data Workers see both definitions with their sources until the owner decides. The multi-layer wiring guide walks through a full run.

Our modelers work in Design Center, not Git. Does that matter? Your team's assistant can check the deployed model over AtScale's MCP server either way. SML in Git adds commit-level provenance and lets Data Workers propose model changes as diffs for the owner to merge.

Sources

  • •AtScale, homepage (components, interfaces), https://www.atscale.com/ (checked Oct 2, 2026)
  • •AtScale, Platform (BI tools, data platforms, deployment, aggregates, auditable execution), https://www.atscale.com/product/ (checked Oct 2, 2026)
  • •AtScale, Semantic context for AI with MCP (SQL, MDX, DAX, Python, REST and MCP), https://www.atscale.com/use-cases/semantic-context-ai-mcp/ (checked Oct 2, 2026)
  • •AtScale, Microsoft joins open semantic standard (Sep 29, 2026; AI Computation Engine, Apache Ossie), https://www.atscale.com/blog/microsoft-joins-open-semantic-standard/ (checked Oct 2, 2026)
  • •AtScale, MCP Server Tools Reference (six read-only tools, SELECT only), https://documentation.atscale.com/container/connect-integrate/connecting-with-ai/mcp-tools-reference (checked Oct 2, 2026)
  • •AtScale, C2026.7 release notes (MCP Server GA, read-only enforced), https://documentation.atscale.com/container/release-notes/C2026.7/new-features-and-improvements (checked Oct 2, 2026)
  • •AtScale, Connecting with AI applications (ChatGPT, Claude, Gemini), https://documentation.atscale.com/container/connect-integrate/connecting-with-ai/connect-ai-applications (checked Oct 2, 2026)
  • •AtScale, Enable the MCP Server (Helm values), https://documentation.atscale.com/container/connect-integrate/connecting-with-ai/manage-mcp-server/enable-mcp-server (checked Oct 2, 2026)
  • •AtScale, MCP development environment setup (endpoint, OAuth client, API token), https://documentation.atscale.com/container/connect-integrate/connecting-with-ai/manage-mcp-server/development-environment (checked Oct 2, 2026)
  • •AtScale, C2026.8 new features and improvements (query-based dataset materialization, public preview), https://documentation.atscale.com/container/release-notes/C2026.8/new-features-and-improvements (checked Oct 2, 2026)
  • •Semantic Modeling Language (SML), Apache 2.0, version 1.8, object types and converters, https://github.com/semanticdatalayer/SML (checked Oct 2, 2026)
  • •Data Workers, Client setup (open-source docs), https://dataworkers.io/opensource-docs/client-setup/ (checked Oct 2, 2026)
  • •Data Workers open-source repository, agent tools and start-agent.sh, https://github.com/DataWorkersProject/dataworkers-claw-community (checked Oct 2, 2026)