The bill is bytes scanned times how often you scan them — and almost every surprise on it is a dashboard refreshing every five minutes over five years of data.
A taxi meter that runs on distance. Most of the bill turns out to be a car circling the block every five minutes with nobody in it.
The biggest line item is usually a dashboard on auto-refresh that nobody has opened since March.
Modern warehouses charge for compute in one of two shapes: per byte scanned, or per second of a running cluster. Either way the lever is the same — read less, less often. Partition pruning and column projection cut bytes per query. Incremental models cut how much a rebuild touches. Materialising a repeatedly-computed aggregate cuts the repetition. And the single largest recurring cost in most platforms isn't the pipeline at all, it is BI: a dashboard on a five-minute auto-refresh that nobody has opened since March, scanning the full history every time.
Cost is bytes scanned times frequency. Cut bytes with partition pruning, column projection and clustering; cut frequency with incremental models, materialised aggregates and result caching. Then attribute spend per query, per user and per dashboard — the top ten queries are usually most of the bill, and auto-refreshing dashboards are usually in that ten.
BigQuery Cost Optimization: Select Queries — Google Cloud Tech, 4:49