Finding Out What Our Cloud Computing Services Actually Cost Our monthly bill was a single number that arrived from finance and went into a line called infrastructure. Nobody could tell me what any individual customer cost us to serve. That sounds like an accounting problem. It was a product problem, and it was costing us margin on two of our four plans. Here is how we got from one number to a cost per customer. One bill teaches nobody anything The structural issue. A single aggregate figure can only be acted on in one way, which is to ask everybody to use less. That request is ignored, correctly, because nobody knows which part of it applies to them. Our Cloud Computing Services bill grew thirty one per cent in a year. Six teams each believed another team was responsible for most of it. Tag before you analyse The unglamorous precondition. Nothing can be attributed that is not labelled. We required a team, a service, and an environment tag on every resource, enforced at creation rather than audited afterwards. The first pass covered sixty four per cent of spend. The untagged remainder took four months to work through, and about nine per cent of it turned out to belong to nothing anybody was still running. Cloud Computing Services become manageable at exactly the point where every running thing has an owner. Pick a unit that means something commercially Not a technical unit. Cost per instance hour is a fact about your infrastructure. Cost per active customer per month is a fact about your business, and only one of those can be put next to a price. We chose cost per active customer, with a secondary measure of cost per thousand transactions. Both are imperfect allocations and both are stable enough to act on. Show teams their own number The behavioural change. Each team now sees its own spend weekly, with a comparison against the previous month and an explanation required for anything moving more than fifteen per cent. We did not set targets or penalties. Visibility alone reduced our non production spend by about a fifth in the first quarter, mostly by switching off things people had forgotten. Separate the three kinds of waste They need different responses. Idle resources, which are running and doing nothing. Oversized resources, which are doing something at a fraction of their capacity. And architectural waste, which is doing something in an expensive way. The first two are a weekly report and a few hours of work. The third is a design conversation and it is where most of our actual money was. Handle commitments as a finance decision Not an engineering one. Discounts for committed usage are substantial and they are a forecast dressed as a purchase. Committing to a workload that may be redesigned in six months is a bet. Ours are decided jointly, cover the steady baseline only, and are reviewed quarterly. Our first attempt committed to a pattern that an architectural change made obsolete four months later. Watch the data movement The line item people miss. Compute and storage are visible and roughly intuitive. Movement between regions, between zones, and out to the internet is neither, and it accumulated quietly to become our third largest line. One reporting job was reading a full dataset across a region boundary every hour. Nobody had noticed because no single invocation looked expensive. Price the analytical workloads separately Where our growth actually was. Our analytical estate grew faster than our transactional one and was attributed to nobody. A Business Analytics Services Provider was running substantial processing for us, billed through our account rather than theirs. We now attribute that separately, and the AI data preparation steps in particular, because those are the jobs that read everything and run on a schedule somebody set once and never revisited. Make the expensive thing visible at design time The shift from reporting to prevention. Our design reviews now include an estimated running cost. Not precise, and not a gate, but present in the conversation while the choice is still cheap to change. Two designs changed materially as a result. One because a proposed arrangement would have cost four times the alternative, which nobody had calculated until the question was asked. Review what you are still running Annually, with removal as the default. We found a reporting cluster serving a product retired in 2023, a test environment for an integration that never shipped, and thirty one storage buckets nobody claimed. Those three categories were about seven per cent of our bill. Cloud Computing Services accumulate forgotten resources in a way that physical infrastructure never did, because nothing physically occupies space in a room somebody walks through. What our cost practice covers ● Mandatory tags enforced at resource creation. ● A commercial unit cost, not a technical one. ● Weekly per team visibility with a variance explanation. ● Separate handling for idle, oversized, and architectural waste. ● Commitments decided with finance, covering baseline only. ● Data movement tracked as its own line. ● Analytical and preparation workloads attributed separately. ● Estimated running cost present at design review. ● An annual review with removal as the default. Common questions Does changing provider help? Rarely. Our Cloud Computing Services bill was high because of what we ran and how, not because of the rate card. Should analytics be charged back internally? Showback first, chargeback later if at all. Our Business Analytics Services Provider costs are now visible to the departments requesting the work, which changed behaviour without any invoicing. Where should this sit organisationally? Between engineering and finance, with one person accountable. Handed to finance alone it becomes a report. Handed to engineering alone it becomes a side project. What is the quickest win? Non production environments. Ours were running continuously for work that happened during office hours in one time zone. Do commitments pay off? On a stable baseline, yes. On anything you might redesign, they convert flexibility into a discount you may not want. How accurate does the attribution need to be? Good enough to act on. Ours is roughly right and consistently wrong in the same direction, which is sufficient for comparing months. What about analytics spend? Attribute it separately. Cloud Computing Services bills rarely distinguish a transactional query from a full dataset scan, and the second is where the growth usually is. Where we are now A cost per active customer we trust, per team visibility every week, and a bill that grew four per cent last year against thirty one per cent the year before. We did not move anything or change provider. We found out who was spending what, which turned out to be the entire intervention.