A plan tells you what changes. Not what it costs.
terraform plan shows the resources you're adding, changing, and destroying — with no idea what any of it does to the bill. The price arrives weeks later, on an invoice, long after the review that could have caught it. Bolt-on cost tools help, but they're a separate integration and an extra step in every pipeline.
The cost is in the plan output.
Run the same stategraph plan you already run. It fetches the delta automatically and prints a Costs: block after the diff — totals as current → planned, then the per-resource breakdown.
❯ stategraph plan --out plan.json Plan: 1 to add, 2 to change, 0 to destroy. Costs: Totals: Monthly: 130.82 USD → 140.16 USD (+9.34 USD) Hourly: 0.18 USD → 0.19 USD (+0.01 USD) Resources: 14 → 15 (+1) Coverage: 100.0% (unchanged) Per state: prod-network: +9.34/mo (resources +1) + aws_nat_gateway.main +9.34
current → planned, with the delta in green · a — means that side had nothing priced
From next month's invoice to this PR's review
terraform planstategraph planCosts: block is right thereWhat you get
Inline current → planned delta
Every stategraph plan (and tf mtx, and apply) ends with monthly and hourly totals as current → planned, plus the net change in priced resources.
Per-resource breakdown
The delta is attributed down to the resource: + added, - removed, ~ changed, each with the dollar amount it adds or removes from the bill.
Best-effort, never blocking
The fetch waits up to --costs-wait seconds (default 3) and never holds up your plan. Not ready yet? Re-check any time with stategraph tx costs --tx <id>.
Multi-cloud list prices
Estimates are computed from public AWS and GCP pricing, kept current so a delta tracks provider list prices — no cloud credentials required to price a plan.
Reconciles against real spend
Estimates are one half of the story. Stategraph Cost lines them up against your actual billed spend, imported from AWS, GCP, or Azure billing exports.
Available over the API
The same delta is a JSON document at GET /api/v1/tx/{tx_id}/costs — wire it into a merge gate, a Slack notice, or your own report.
See the price before you apply
Stop finding out what a change cost on next month's invoice. Run the plan you already run, and read the delta right under the diff.