Home › Cloud bill checklist
What we look for in a cloud bill
The 26 checks that account for most of what we find in a first pass. Indian region rates, August 2026.
- Checks
- 26
- Rates
- ap-south-1Mumbai, Aug 2026
- Cost
- Freeemail for the PDF only
- Gated
- Nothe whole list is on this page
Work through it yourself
We publish the whole thing. A checklist that withholds the useful half gets forwarded to nobody.
Before you open the console
Get these two things first or the rest is guesswork.
- Cost and Usage Report / BigQuery billing export enabled
Not the console graphs. The line-item export is the only place the real answers live.
- A read role in the accounts, not just billing
You cannot tell an idle NAT gateway from a busy one out of billing data alone.
The three that pay for the exercise
In our experience these three cover most of a first pass.
- NAT gateways, one per availability zone
₹3,100 a month each before a byte crosses. Three zones is ₹9,400 a month idle, ₹1.1 lakh a year. Ask whether all three are load-bearing.
- gp2 volumes never moved to gp3
Around 20% cheaper for the same disk, 3,000 IOPS baseline, no downtime, one command.
- Cross-AZ replication nobody designed
500 GB a day between zones is roughly ₹28,600 a month (₹3.4 lakh a year), usually because a subnet was picked in a hurry.
Data transfer: the section nobody opens
Above roughly ₹1 lakh a month of spend this is usually 10–30% of the bill.
- NAT data processing separated from NAT hours
The per-GB charge is usually the larger of the two.
- Internet egress by service
Roughly ₹8.6/GB. Combined with NAT processing it is about ₹12.9/GB.
- Cross-region transfer
Often a DR copy nobody has reviewed since it was set up.
- Traffic that could use a VPC endpoint
S3 and DynamoDB traffic routed through NAT is pure waste.
- Public IPv4 addresses
Chargeable since Feb 2024. Count the unattached ones.
Compute
- Instances under 10% average CPU for 30 days
Rightsize before you commit to anything.
- Instances running outside business hours that needn't be
Dev and staging first.
- Previous-generation instance families
Newer families are usually cheaper per unit of work.
- Orphaned load balancers
An ALB with no healthy targets still bills.
- Over-provisioned managed databases
Look at connections and IOPS, not just CPU.
Storage
- Snapshot policies with no expiry
A slow leak that compounds every month.
- EBS volumes not attached to anything
Often left behind when an instance is terminated.
- Object storage with no lifecycle rule
Infrequent-access and archive tiers exist for a reason.
- Duplicate backups across two tools
Common after a migration nobody finished.
- Log retention set to 'never expire'
Ingest is one cost; keeping it forever is another.
Commitments: last, not first
Buying these before rightsizing locks in the waste for the full term.
- Current Savings Plan / CUD coverage and utilisation
Utilisation below ~95% means you are paying for capacity you are not using.
- Anything expiring in the next 90 days
The renewal is your chance to resize the commitment.
- Commitment term against your actual planning horizon
A three-year commitment on a workload you may retire in eighteen months is a trap.
Governance
Not savings today, but the reason the savings come back.
- Tagging that lets you attribute cost to a team
Untagged spend cannot be governed.
- A budget alarm that a person actually receives
Not one that emails a shared mailbox nobody opens.
- Anomaly detection on spend
So a surprise is a Tuesday alert rather than a month-end shock.
If you work through this and find less than 20%, your estate is in better shape than most and you should stop there. That is a real outcome, not a failed exercise.
The printable version
A one-page A4 PDF you can tick off in a meeting.
Rather we just did it?
A two-week cost and estate review works through all of this against your actual bill, costs every change and ranks it by effort and risk. A fixed fee, or a share of what we actually save you, and if there is little in there, we say so in week one.