You're on CloudZero: CloudZero Turns Cloud Spend Into Unit Costs the Business Understands. Data Workers Makes Sure the Usage Data Behind Them Is Right
Running CloudZero for cost per customer? Keep it. Data Workers checks the usage tables your allocation streams are built on, traces what feeds them and sends every fix to its owner, behind approvals.
Your finance and engineering leaders run on CloudZero. CostFormation dimensions map AWS, Kubernetes, Snowflake, Databricks, SaaS and AI spend to teams, products and customers; Snowflake tag-based allocation through CostFormation has been GA since Apr 3, 2026. Unit cost metrics divide that spend by the business measures your pipelines send: cost per customer, per API call, per transaction. Allocation streams split shared costs, like an EKS cluster every tenant uses, in proportion to the usage you send. AI Signals, launched Sep 23, 2026, shows AI spend by person, team, model and the work it paid for, and the CloudZero MCP server and AI Hub let an engineer ask about any of it from Claude Code. CloudZero turns cloud spend into unit costs the business understands. Data Workers makes sure the usage data behind those unit costs is right: it checks the tables your telemetry is built from, traces what feeds them and sends each fix to its owner, behind approvals.
Key takeaways
- •CloudZero keeps its job. Allocation, CostFormation, unit cost, AI Signals, budgets and anomaly monitoring stay with your FinOps team. Data Workers works with CloudZero from day one.
- •A unit cost is only as right as its usage data. If a tenant's usage goes missing from an allocation stream, its share lands on everyone else, and the cost per customer still looks real.
- •Data Workers watches the usage tables. It baselines the metrics your team records, such as active tenants per day, checks keys, nulls and row counts in Snowflake, and traces dbt lineage from raw events to the export.
- •Fixes go to owners, behind approvals. The model change is drafted as a diff for the owner. After a named person approves, the rebuild runs through your orchestrator and your own export job resends the corrected days.
- •Every correction leaves a receipt with the cause, the diff, the approver, the checks and the Snowflake credits the rerun used.
- •Start with a pilot on the pipelines that feed CloudZero, read-only first, and climb from L0 manual toward L4 autonomous.
CloudZero turns cloud spend into unit costs the business understands. Data Workers makes sure the usage data behind them is right.
In CloudZero's words, a unit cost is spend divided by a unit metric. CloudZero reads the spend. The unit metric, and the usage that splits shared cost, come from your own warehouse, dbt project and orchestrator. That is where a unit cost breaks, and the slice Data Workers covers.
Here is a week at a multi-tenant analytics company. Tenants share EKS clusters; metering events land in Snowflake through Snowpipe from S3. A dbt Core project builds fct_tenant_usage_daily, compute-seconds per tenant per day, in a Dagster job at 04:30. Its last step, an asset the FinOps engineer wrote, posts each day to a CloudZero allocation stream named tenant_compute with the replace_period operation. An allocation dimension splits shared EKS and Snowflake spend across 1,240 tenants by that stream; the pricing committee reads cost per customer on Thursdays. The team records daily compute-seconds and active tenants as monitor_metrics baselines and has noted the CloudZero export in the Data Workers context graph. This is an illustrative example.
| Time | System | What happens |
|---|---|---|
| Sun 22:00 | Amazon EKS | The platform team moves 209 EU tenants to a new cluster, euc2. Its metering events carry the region code euc2 |
| Mon all day | S3 and Snowflake | Snowpipe loads the euc2 events into raw_metering.usage_events like any others |
| Tue 04:30 | Dagster and dbt Core | The job builds Monday. stg_usage_events inner-joins events to a regions seed. The seed has no euc2 row, so every event from the new cluster drops out. The run is green |
| 04:41 | Dagster and CloudZero | The export asset posts Monday to tenant_compute: usage for 1,031 tenants |
| 05:40 | CloudZero | The allocation dimension splits Monday's shared cost over the tenants with usage. The 209 EU tenants show no shared cost; the other 1,031 absorb it |
| 06:02 | Snowflake | Data Workers' post-run run_quality_check passes: no null tenant_id, usage_id distinct, above the minimum row count. The monitor_metrics baselines break: compute-seconds 22% below baseline, active tenants down from 1,240 to 1,031 |
| 06:08 | dbt | trace_cross_platform_lineage walks the manifest from fct_tenant_usage_daily back to stg_usage_events, the regions seed and raw_metering.usage_events. blast_radius_analysis returns mrt_tenant_usage_monthly; the context-graph note adds the CloudZero export |
| 06:14 | Slack and Spellbook | A card goes to the model owner and the FinOps engineer with the lineage and a query to run: SELECT region, count(*) FROM raw_metering.usage_events WHERE event_date = '2026-09-28' AND region NOT IN (SELECT region_code FROM analytics.regions) GROUP BY 1; The on-call runs it: 3.9 million events, all euc2 |
| 06:20 | GitHub and dbt | Data Workers drafts the fix as a diff for the owner: add euc2 to the seed, make the join a left join, and add a dbt relationships test so an unknown region fails the build. A second diff for the FinOps engineer runs the export only after the usage checks pass |
| 07:25 | Spellbook | The analytics engineering lead approves the diffs and a rebuild of Sunday and Monday. Both merge |
| 07:30 | Dagster | The FinOps engineer launches the approved two-day backfill; the job's export step follows it. Data Workers follows the run |
| 08:20 | Snowflake and CloudZero | The rebuild completes and the baselines are back in range at 1,240 active tenants. The export resends both days, and replace period swaps each date wholesale |
| Wed 09:00 | CloudZero and Spellbook | CloudZero has ingested the corrected days, a day before the pricing committee. The receipt adds the rerun's Snowflake credits, traced through the dbt query tags, and the model cost of each Data Workers action |

Nothing in CloudZero was wrong. It allocated exactly the usage it was sent, and replace_period, which drops every submitted date and inserts the new records, made the correction clean. The gap sat upstream: a stale seed, a join that dropped rows silently, a green run. What caught it was a baseline on the totals, a trace back to the seed, and a named owner who approved the fix before Thursday.
| Job | What CloudZero does | What Data Workers does |
|---|---|---|
| Spend | Reads AWS, Kubernetes, Snowflake (through a read-only data share), Databricks system billing tables, SaaS and AI providers | Traces Snowflake credits to the query and dbt model behind them, for the receipt |
| Allocation | CostFormation dimensions and allocation streams split shared cost by the usage you send | Checks the usage tables those streams are built from after each run |
| Unit cost | Divides spend by your unit metric: cost per customer, per transaction, per API call | Baselines the metrics behind the unit, such as metered units and active tenants |
| Anomalies | Spend monitoring and AI Signals Monitors flag cost changes | Turns a usage gap into a diagnosed incident with lineage and owners |
| The fix | Allocates the corrected data it receives | Drafts the model change as a diff and routes the rerun for approval |
| The proof | Explains the cost with Ask Advisor and AI Hub | A receipt per correction: cause, diff, approver, checks, credits |
Why doesn't CloudZero just do this itself?
Because CloudZero is built to do one thing exceptionally well: connect every dollar of cloud, Kubernetes, SaaS and AI spend to the business. Its design follows from that: narrow, read-only billing connections, usage taken as telemetry through an API with clear semantics (sum, replace, replace period), allocation rules as code in CostFormation, and AI, from Ask Advisor to AI Signals, that explains and monitors spend. CloudZero treats the telemetry you send as the truth, which is the right call: a cost platform that second-guessed your usage numbers would need to understand every pipeline in your company.
Knowing that a seed missed a region code, and that a two-day rebuild plus a resend fixes it, is data-engineering knowledge. Acting on it crosses the warehouse, dbt, the orchestrator and the cost platform, each owned by someone else, and needs a named approver and a receipt finance will accept. CloudZero is measured on whether every dollar lands in the right place; the data team is measured on whether the usage it sends is right. Data Workers is the product built for that second job, on top of the CloudZero you already run.
Every tool owns a slice. Data Workers covers the whole lifecycle
CloudZero owns its slice: unit cost and cloud cost allocation. 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 cost view CloudZero already gives you.

| Stage | Data Workers | CloudZero | Why we scored it this way |
|---|---|---|---|
| Catalog & Context | 9 | 5 | CostFormation dimensions map spend to teams, products and customers: rich cost context. Data Workers keeps one governed context graph of tables, owners, lineage and runs across every platform. |
| Analytics & Insights | 8 | 8 | Explorer, Analytics, AI Hub and Ask Advisor explain spend and cost per customer in plain English. Data Workers answers questions about the data itself and checks the numbers behind them. |
| Data Quality | 8 | 1 | CloudZero takes the usage telemetry it is sent as given. Data Workers checks keys, nulls and row counts and baselines the usage metrics the team records. |
| Observability & Incidents | 8.5 | 4 | Spend monitoring and AI Signals flag cost anomalies. Data Workers detects, diagnoses and fixes data incidents across systems, with a receipt for each. |
| Pipelines & Ingestion | 8.5 | 1 | Custom Cost Data Sources (AnyCost) and the telemetry APIs take data in; the pipelines that build it are yours. Data Workers reads orchestrator runs and routes approved reruns. |
| Schema & Migration | 8 | 1 | No view of schemas, models or seeds. Data Workers reads dbt manifest changes and scores their blast radius. |
| Governance & Access | 8.5 | 3 | Roles and CostFormation namespaces govern who edits allocation. Data Workers routes every data change to a named owner, with expiry and escalation. |
| Security & Privacy | 8 | 3 | A read-only Snowflake share and a Databricks service principal keep access narrow. Data Workers keeps a receipt on every data change it proposes. |
| Cost / FinOps | 8 | 9.5 | CloudZero's home stage: allocation, unit cost, AI spend, budgets and anomalies across cloud, Kubernetes, SaaS and AI. Data Workers traces Snowflake credits to the dbt model behind them and drafts the fix. |
| MLOps & Models | 7.5 | 3 | AI Signals tracks AI spend by model and team, not the data under models. Data Workers keeps the tables under your models checked. |
How CloudZero and Data Workers work together
Your people stay in Claude Code, CloudZero and Snowflake. Spellbook Data Catalog (in preview) is where the data team reviews each finding, diff, approver and rollback, with approval requests in Slack or email. Data Context Wizard keeps one governed context graph, the Data-Agents Swarm (20+ specialist agents) does the work, and the Autonomous Data-Conductor runs each fix behind per-domain guardrails.

What CloudZero keeps. Allocation, CostFormation, unit cost, AI Signals, budgets and spend monitoring. Data Workers connects to CloudZero over its API or MCP server today. CloudZero hosts its MCP server, which signs in with OAuth or an API key and exposes 17 tools across allocations, CostFormation, Kubernetes, optimization, query, telemetry and organization context; the Claude Code plugin (Mar 3, 2026) installs it with CloudZero's skills. Your team's assistant runs it side by side with Data Workers' MCP servers: ask CloudZero what a tenant costs and Data Workers what feeds that tenant's usage, in one session. Data Workers' agents don't call CloudZero's MCP server; their checks rest on what Data Workers reads itself.
What Data Workers reads. Natively, among 50+ connectors: Snowflake checks through run_quality_check, the metrics your team baselines with monitor_metrics, the dbt manifest, orchestrator runs on Dagster, Airflow, Prefect and ADF, and pull requests on GitHub. On cost, with your Snowflake credentials it reads warehouse metering and per-query attribution and decodes the dbt model behind each query from its query tag; on BigQuery it sums recent job bytes into an account-level total; it reads AWS Cost Explorer by service with its forecast. Each action's model cost is computed from its tokens and written on its receipt (how model cost works).
What Data Workers changes, and where. Model, seed and job changes are drafted as diffs for their owners to merge. After a named person approves, Data Workers queues the rerun through your orchestrator or hands it to the owner to launch, then follows the run. Your export job does the resend. CostFormation, allocation dimensions and telemetry streams stay with your FinOps team, and deletes of tables or rows are always the owner's.
Setup. Clone the open-source repository and add start-agent.sh entries to your client config, as the client setup docs show; add CloudZero's MCP server the way its docs describe.
// Example: .mcp.json for Claude Code
{
"mcpServers": {
"dw-quality": {
"command": "/path/to/dataworkers-claw-community/start-agent.sh",
"args": ["dw-quality"]
},
"dw-context-catalog": {
"command": "/path/to/dataworkers-claw-community/start-agent.sh",
"args": ["dw-context-catalog"]
},
"dw-incidents": {
"command": "/path/to/dataworkers-claw-community/start-agent.sh",
"args": ["dw-incidents"]
}
}
}List the tools with your client's own command (/mcp in Claude Code), then ask "Cost per customer jumped for our US tenants on Monday. Is fct_tenant_usage_daily complete, and what feeds it?"
One usage correction, L0 to L4. The ladder is set per domain, so the pipelines that feed CloudZero can sit at their own level.

- •L0 manual. Someone notices odd cost per customer in the pricing review and starts digging.
- •L1 observe. Data Workers checks the usage tables after every run, reports baseline breaks with their lineage, and logs what each action would have needed.
- •L2 propose. It drafts the model fix and the rerun for the owner, who approves before anything runs.
- •L3 act reversibly. For proven classes, such as rerunning a usage date after an approved fix merged, it queues the rerun, re-checks and records. Replace period makes the resend repeatable.
- •L4 autonomous. For a scoped, trusted class in one domain, it runs the loop end to end and posts the receipt. Allocation rules and CloudZero settings stay with your FinOps team.
More on safety, approvals, where your data goes and the Cost Savings & Data Cleanup agent. The same pattern holds for SELECT, Keebo and Vantage; the pipeline side is on You're on Dagster.
What changes for your team

Teams on CloudZero lose time at the seam between the cost platform and the data behind it: a unit cost that moved for no business reason, a week spent proving whether the usage table or the allocation rule is wrong. With Data Workers, those jobs run on autopilot at the level you set.
- •Incidents. A usage gap that would skew cost per customer arrives with the cause, the readers and a rerun to approve.
- •Data quality. Baselines on metered units and tenant counts catch a silent drop, next to checks on keys, nulls and row counts.
- •Cloud spend. Snowflake credits are traced to the query and dbt model behind them.
- •Access. A request to read billing or usage tables becomes a scoped, time-boxed grant proposal the data owner approves, recorded with its expiry.
- •Audits. Each correction to a usage day links the diff, the approver, the rerun and the resend.
- •Migrations. A move of usage pipelines to a new region or platform is planned in waves, with its checks and the owner's sign-off.
The FinOps lead guide covers the leader's side.
Keep CloudZero, or consolidate?
Keep CloudZero if you love it; Data Workers works with it from day one. Many teams consolidate once Data Workers runs that slice too.
CloudZero stays your bill, allocation model and unit economics. Teams consolidate the glue around it: hand-written checks before each export, the tenant-count spreadsheet, the Slack threads about which days were resent. Building it yourself? Calling an MCP server is the easy part; the checks, lineage, approvals and receipts are the work. See also FinOps for data platforms and the cost of data downtime.
The case for your CFO
The outcome: every cost per customer your pricing and finance teams use rests on checked usage data, with a named owner and a receipt for every correction, so renewal, pricing and margin decisions rest on numbers you can defend.
The risk story is plain. Data Workers changes nothing in CloudZero; it drafts each fix for its owner. Changes merge and reruns start only after a named person approves; unanswered requests expire and escalate, never auto-grant. No agent can promote its own work. Autonomy is set per domain from L0 manual to L4 autonomous, an org-wide stop halts all autonomous dispatch, and the admin kill switch takes two people. The agents run in your infrastructure with your credentials; your data stays in your systems, and the hosted Conductor sees workflow metadata only. Zero migration.
Why now: AI spend pushed unit economics into the boardroom, so a missing day of usage now costs more. The first win is the handful of pipelines that feed your CloudZero telemetry, read-only, with baselines on the totals. CloudZero, dbt, your orchestrator and your FinOps team stay the same. Start with a pilot; the path is on the pricing page, and the pilot is credited in full against the first year. The ROI guide shows the math; the flat-fee explainer covers pricing.
The sentence to repeat upstairs: "CloudZero tells us what each customer costs; Data Workers proves the usage behind that number is right, with an approver and a receipt for every fix."
Getting started
Start with a pilot. Pick the usage pipelines that feed your CloudZero unit cost metrics and allocation streams, connect Data Workers read-only to Snowflake, dbt and your orchestrator, record the totals that matter as baselines, note the export jobs in the context graph, and let it check every run before turning on 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 connect to CloudZero? Data Workers connects to CloudZero over its API or MCP server today. Your assistant can run CloudZero's hosted MCP server or Claude Code plugin side by side with Data Workers' MCP servers, while Data Workers' agents read the warehouse, dbt and the orchestrator natively.
Does Data Workers replace CloudZero's allocation or unit cost? No. CostFormation, allocation streams, unit cost and AI Signals stay your view of the bill. Data Workers checks the usage data your pipelines send to CloudZero.
How would Data Workers catch missing usage if every row passes its checks? Through baselines. Your team records totals such as compute-seconds per day and active tenants with monitor_metrics. A drop is flagged even when every row that arrived is valid, and dbt manifest lineage shows where the rows went.
Can Data Workers resend corrected usage to CloudZero? Your export job sends it. After a named owner approves the fix, the rebuild runs through your orchestrator and the job's export step resends the dates; replace period swaps each date, so a rerun is repeatable.
Does Data Workers detect cost anomalies? CloudZero's spend monitoring and AI Signals find cost changes. Data Workers takes the data side: it attributes Snowflake credits to the query and dbt model behind them and checks whether a usage table, rather than real spend, moved the number.
Does any billing data go to Data Workers? Data Workers reads Snowflake's metering and query attribution views and your usage tables with your credentials, inside your infrastructure. Your data stays in your systems; the hosted Conductor sees workflow metadata only.
Sources
- •CloudZero docs, Unit cost analytics, https://docs.cloudzero.com/docs/unit-cost-analytics (checked Oct 3, 2026)
- •CloudZero docs, Send unit cost and allocation data, https://docs.cloudzero.com/docs/telemetry-streams (checked Oct 3, 2026)
- •CloudZero API reference, Replace telemetry records for the submitted dates (replace_period), https://docs.cloudzero.com/reference/replaceperiodallocationtelemetry (checked Oct 3, 2026)
- •CloudZero docs, Create an allocation dimension, https://docs.cloudzero.com/docs/create-allocation-dimension (checked Oct 3, 2026)
- •CloudZero docs, Allocate through YAML with CostFormation, https://docs.cloudzero.com/docs/dimensions (checked Oct 3, 2026)
- •CloudZero docs, Custom Cost Data Sources with AnyCost, https://docs.cloudzero.com/docs/anycost (checked Oct 3, 2026)
- •CloudZero docs, Connecting to Snowflake, https://docs.cloudzero.com/docs/connections-snowflake (checked Oct 3, 2026)
- •CloudZero changelog, Snowflake Tag-Based Cost Allocation (GA), Apr 3, 2026, https://docs.cloudzero.com/changelog/snowflake-tag-based-cost-allocation-ga (checked Oct 3, 2026)
- •CloudZero docs, Connecting to Databricks, https://docs.cloudzero.com/docs/connections-databricks-v2 (checked Oct 3, 2026)
- •CloudZero docs, MCP Server Reference (17 tools; updated Sep 16, 2026), https://docs.cloudzero.com/docs/ai-mcp-server (checked Oct 3, 2026)
- •CloudZero docs, Set Up AI Hub, https://docs.cloudzero.com/docs/ai-getting-started (checked Oct 3, 2026)
- •CloudZero docs, Overview of AI Hub, https://docs.cloudzero.com/docs/analyze-spend-with-ai-hub (checked Oct 3, 2026)
- •CloudZero docs, Real-Time AI Spend with AI Signals (updated Sep 30, 2026), https://docs.cloudzero.com/docs/real-time-ai-spend-with-ai-signals (checked Oct 3, 2026)
- •CloudZero press release, AI Signals (Sep 23, 2026), https://www.cloudzero.com/press-releases/20260923/ (checked Oct 3, 2026)
- •CloudZero press release, The AI ROI Company launches the financial control plane for AI (May 28, 2026), https://www.cloudzero.com/press-releases/20260528/ (checked Oct 3, 2026)
- •CloudZero press release, Claude Code Plugin (Mar 3, 2026), https://www.cloudzero.com/press-releases/20260303/ (checked Oct 3, 2026)
- •CloudZero press release, agentic FinOps, Ask Advisor and MCP server (Dec 1, 2025), https://www.cloudzero.com/press-releases/20251201/ (checked Oct 3, 2026)
- •Data Workers agent swarm repository (checked Oct 3, 2026)
- •Data Workers client setup docs, https://dataworkers.io/opensource-docs/client-setup/ (checked Oct 3, 2026)