Waste accumulates in SQL, but also in ownership gaps, forgotten dashboards, duplicated semantics, and exploratory workloads that quietly become production dependencies. A large BigQuery bill is often a map of organisational habits.
The first step is attribution. Which projects, users, dashboards, scheduled jobs, notebooks, and service accounts are spending the money? Without that map, optimisation becomes a scavenger hunt for expensive queries rather than a change in behaviour.
The second step is separating waste from value. A costly executive dashboard may be worth keeping. A cheaper job that runs every fifteen minutes for no reader may not be. Cost work needs product judgement, not just database tuning.
The third step is query design. Partition filters, clustered tables, materialised intermediate models, and sane default date ranges usually beat heroic rewrites. The boring fixes compound because they change the path most queries take.
The fourth step is lifecycle control. Dashboards need owners, scheduled jobs need expiry dates, and experimental datasets need cleanup rules. If nobody owns a workload, the warehouse will keep charging for the privilege of remembering it.
We reduce spend by making usage visible to the people who create it. Engineers, analysts, and commercial teams change behaviour faster when they can see the cost of a dashboard refresh or an unbounded notebook query.
Cost control sticks when the system becomes legible, not when one hero query gets optimised. The best savings are the ones the team can keep producing after the consultant leaves.