BigQuery doesn't charge you for having data. It charges you for touching it. On-demand pricing bills per byte scanned, which means your bill isn't a data-size problem or a traffic problem. It's a query-shape problem, and query shape is fixable in an afternoon per table.

A recent client was a textbook case. Dashboards running SELECT * over an unpartitioned events table, so every refresh scanned the full history back to 2019. Plus a pile of scheduled queries feeding tables nobody read anymore. Three weeks of work cut the bill 72%, about £2K a month, and the queries got faster. That last part surprises people. It shouldn't. Bytes scanned is both the cost metric and the latency driver. Same lever.

Week 1: find out where the money goes

Don't guess. BigQuery logs every job with its billed bytes:

user_email,