DATA OPS
Daily BigQuery Scheduled-Query Cost Attribution to Owners
Each morning, totals the prior day's on-demand bytes-billed per scheduled query, maps each query to its owner from a label, and posts a per-owner cost leaderboard to Slack.
How it runs
The automated pipeline, trigger to output.
- TriggerDaily schedule after midnight (billing TZ)
- ActionQuery INFORMATION_SCHEMA.JOBS for prior-day bytes billedBigQuery
- LogicConvert bytes to cost and group by owner label
- LogicRank owners and flag queries over threshold
- OutputPost per-owner cost leaderboard to SlackSlack
What it does
Reads yesterday's `INFORMATION_SCHEMA.JOBS` to compute bytes-billed and estimated dollar cost for every job launched by a scheduled query, then groups the spend by the `owner` label attached to each query. The result is a ranked Slack digest showing who drove the most cost the previous day, so attribution is a daily habit instead of a quarterly fire drill.
When to use it
Run this when your team uses BigQuery scheduled queries and on-demand pricing, and finance keeps asking "who is spending the money." It turns an opaque project-level bill into a named, sortable list your data platform owner can act on.
How it works
- 1A daily schedule fires after midnight in your billing timezone.
- 2Query `region-*.INFORMATION_SCHEMA.JOBS` for the prior day, filtering to scheduled-query jobs and summing `total_bytes_billed`.
- 3Convert bytes to dollars using the configured on-demand rate and join the `owner` label.
- 4Rank owners by cost and flag any single query above the alert threshold.
- 5Post a formatted leaderboard to the data-platform Slack channel.
Set it up
What you configure once, before turning it on.
- 1Connect BigQueryDatasets, queries, schemas.
- 2Connect SlackChannels, DMs, threads, mentions.
- 3Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 4Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 5Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More Data Ops workflows
Snowflake column type-drift sentinel with Linear fix ticket
Snapshots the data types of every column in your tracked Snowflake schemas on a schedule, diffs against the last snapshot.
BigQuery dropped/renamed column sentinel with PagerDuty incident
Detects when a column is dropped or renamed in your governed BigQuery datasets and, because that breaks downstream queries hard, pages the on-call via PagerDuty and posts…
PR-time Snowflake schema contract check on dbt model changes
When a pull request changes a dbt model, it compares the model's declared output columns against the live Snowflake table it will replace and blocks the merge with a GitHub check…
Agent-triaged warehouse drift with impact analysis and runbook update
On a webhook from your warehouse audit log, an agent investigates the changed column, traces which downstream models and dashboards depend on it.
Cross-warehouse replication schema mismatch reconciler
Compares the column shape of mirrored tables between BigQuery and Snowflake and, when a replicated table has drifted out of sync between the two, opens an Asana task for the data…
Weekly BigQuery Cost Trend Sheet and Exec Digest
Compiles week-over-week BigQuery scheduled-query cost by owner and dataset into a Google Sheet with trend columns.
Run it inside a business
This workflow drops into a full company template. Import the org, and this is one of the playbooks its agents run.

Run this workflow in your colony.
14-day trial. No DevOps. No Sales call. Provisioned in under a minute.
