Keep this bid so it is still here when the customer calls back. Every number on this form is saved together, under a name you choose, along with the figure it gave you, and restoring one puts the whole job back exactly as you priced it. Mark each one won or lost when you hear — the ones you have not heard back on stay listed as waiting, with how long they have been out. Once a few have come back, this panel says how long yours actually take, and how many are still out past that. Once enough of them have been decided, it also says whether the bids you save here have been landing differently lately than they used to.
Kept in this browser only, on this site’s own storage. Nothing is uploaded, and clearing your browser data clears it — download a backup to keep a copy or open your bids on another device. Bids are kept per tool, so these are the ones you saved here.
TERRAFORM PLAN COST ESTIMATE · RUNS IN YOUR BROWSER
What will this terraform apply add to the monthly AWS bill?
Paste or load a Terraform structured plan (terraform show -json) and get an approximate monthly cost delta for every create, update and delete, the biggest cost drivers, and an honest list of what could not be priced. A free, offline alternative to Infracost for the common AWS resources.
Nothing is uploaded. The file you load is read in this browser and never leaves your device. Prices come from a small bundled table of approximate us-east-1 on-demand rates dated 2026-10-03 — an estimate, not a quote.
1. Load your plan
2. Estimated monthly change
Top cost drivers
Address
Action
Type
Monthly change
Every priced resource
Address
Action
Before
After
Change
What it is made of
Usage-based: named, not estimated
Assumptions and exclusions
Want this as a gate before you apply?
Same engine, zero dependencies, one file. Fails the job when the estimated monthly delta is above a number you choose:
terraform plan -out=tfplan && terraform show -json tfplan > plan.json
node cli.mjs estimate plan.json # report only
node cli.mjs estimate plan.json --max-delta 200 # exit 1 if it adds more than $200/month
node cli.mjs estimate plan.json --region eu-west-1 --json
Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call, ever. Exit codes: 0 within budget, 1 over budget, 2 unreadable file or bad option.
What it prices, and what it does not
Priced: EC2 instances (with root and extra EBS volumes), EBS volumes, RDS and Aurora instances, NAT gateways, ALB/NLB/classic load balancers, Elastic IPs, EKS control planes and node groups, ElastiCache, provisioned DynamoDB, and CloudWatch alarms and dashboards. Named as usage-based and not estimated: S3, Lambda, on-demand DynamoDB, log groups and a few more. Everything else is listed as unpriced. Comparing it with the paid, multi-cloud tool? This tool vs. Infracost says where each is the right answer. Want to know what the same plan destroys rather than costs? Terraform Plan Blast Radius Check reads the same file.
Resource type
Status
Common questions
Already applied it and the bill moved? Explain the change from a Cost Explorer export with the AWS Bill Change Explainer.
Is this an Infracost alternative?
For one narrow job, yes: paste the JSON from terraform show -json and get an approximate monthly cost delta for the common AWS resources, with no signup, no API key and no upload. Infracost covers more clouds and uses live pricing, so it is the better tool if you need that; this is the zero-setup, offline option. See the comparison page.
How accurate is the estimate?
It is an approximation, not a quote. It uses a small bundled table of rounded us-east-1 on-demand list prices (dated on the page and in every report), scaled by a rough regional multiplier. It does not know your discounts, savings plans, reserved instances, spot usage or free tier, and it does not estimate usage-based charges such as data transfer, S3 storage, Lambda invocations or log ingestion.
What happens to resources it cannot price?
They are listed under unpriced with the reason, and the summary says the figure is not the full change. Nothing unpriced is silently counted as zero. Usage-based resources such as S3 buckets and Lambda functions are named separately.
Is my plan uploaded anywhere?
No. The page reads a pasted or locally loaded file in your browser and makes no network request. The CLI reads a local file and makes no network call.
Can I fail CI when a change costs too much?
Yes. The CLI takes --max-delta USD and exits 1 when the estimated monthly delta is above it, so it can sit between terraform plan and terraform apply. Resources it cannot price are excluded from the number the gate sees, and the output warns when that happened.
Which file does it need?
The structured plan JSON: terraform plan -out=tfplan && terraform show -json tfplan > plan.json. Not the text output and not the terraform plan -json stream.