One flat price per organization

The cost report on every pull request is free. Pay when you want DiffCost to block the merges that cost too much. Every organization starts with a 14-day Team trial, with no card.

Free

The cost report on every pull request.

$0forever

  • BigQuery dry-run cost of each changed query or model
  • Likely cause, such as a dropped partition filter
  • Report as a pull request comment
  • Up to 5 seats, unlimited repositories
  • Not included: Merge blocking
Add the GitHub Action

Starter

Block the merges that cost too much.

$49a month, 5 seats

  • Everything in Free
  • Merge blocking: a threshold per query, in $/run or %
  • Slack alerts when a PR is blocked
  • 12 months of history and cost trends
  • Email support
Start the 14-day trial

Team

Limits per repository and cost by author.

$149a month, 20 seats

  • Everything in Starter
  • Up to 20 seats
  • Per-repo dashboard thresholds
  • Cost by pull request author
  • Email support
Start the 14-day trial

Compare plans

Feature Free Starter Team
On every pull request
BigQuery dry-run cost of each changed query or modelIncludedIncludedIncluded
Likely cause from the SQL structure (dropped partition filter, SELECT *, join with no condition)IncludedIncludedIncluded
Report as a pull request comment and job summaryIncludedIncludedIncluded
BigQuery Editions mode (bytes scanned instead of dollars)IncludedIncludedIncluded
Keyless sign-in with Workload Identity FederationIncludedIncludedIncluded
No SQL, table names or rows sent to DiffCostIncludedIncludedIncluded
Merge blocking
Required diffcost/cost-check status, posted by the DiffCost GitHub AppNot includedIncludedIncluded
.diffcost.yml thresholds in each repo (config as code)Not includedIncludedIncluded
One dashboard threshold for the whole organizationNot includedIncludedIncluded
Per-repo dashboard thresholdsNot includedNot includedIncluded
Slack alert when a pull request is blockedNot includedIncludedIncluded
Dashboard
History of analyzed pull requests (needs an API key)30 days12 monthsUnlimited
Cost trend chartNot includedIncludedIncluded
Cost by pull request authorNot includedNot includedIncluded
Seats5520

Questions

Does DiffCost read our production rows?
No rows are returned: DiffCost only submits dry runs (dryRun: true), which return a byte estimate. BigQuery still checks query permissions on a dry run, so the service account needs bigquery.tables.getData on the tables your SQL reads; grant it only on those datasets. Your SQL goes to BigQuery in your own project. The DiffCost service receives the repository, the pull request and numbers (costs and bytes), never SQL, table or model names, or rows. See what data leaves your runner.
Do dry runs cost money on Google Cloud?
No. BigQuery doesn't charge for dry runs, and they use no slots.
How does the 14-day Team trial work?
Every organization gets 14 days of Team features (20 seats), with no card. The trial starts when a GitHub owner of the organization first signs in; members who sign in before that see the Free plan. If you don't upgrade, the organization moves to Free with no CI downtime: pull request comments continue, merge blocking stops (the commit status reports success), and Slack alerts stop. Free and Starter include 5 seats: the first 5 people to join keep dashboard access (admins always do), and admins can remove members to free a seat.
Does DiffCost support dbt Core?
Yes, without dbt Cloud. DiffCost compares the compiled SQL in two manifest.json files: your main branch's, saved as a workflow artifact on each merge, and the PR's from dbt compile. Setup is two workflow changes; see the dbt guide.
Does it work on pull requests from forks?
Partly. PRs from forks get structural analysis in the job summary only: GitHub gives them no secrets, no OIDC token and no write access, so the documented workflow skips the Google Cloud sign-in for them. Open-source organizations can use the Free plan.