Vertex AI cost audit

Vertex AI spend is legible at SKU level, and the billing console will not show you that level. Almost every Vertex audit begins by getting the data somewhere it can actually be queried.

1. The BigQuery billing export is the audit

The detailed usage cost export into BigQuery is the only place model-level SKUs, request counts and label dimensions exist together. The console rolls Vertex up into a handful of lines that give a total and nothing else.

If the export is not enabled, enable it today and accept that history starts now - it is not backfilled. That single fact reorders the work: on projects without it, week one is standing it up and reconstructing an approximate baseline from invoices rather than running queries. It costs almost nothing and every subsequent question depends on it.

2. Labels are the attribution mechanism and must be set at request time

Labels attach to requests and resources and flow into the billing export as queryable columns. Unlike a project split, they let you attribute the same model in the same project across teams, features or customers, which is what most organisations actually need.

The catch is that they must be attached when the call is made. Unlabelled traffic is unattributable forever, and the usual finding is that a large share of spend sits in exactly that bucket. The remedy is a small change in whatever client wrapper your services share, and it should land before anyone argues about chargeback.

3. Provisioned throughput is bought in units and burns while idle

Provisioned throughput reserves capacity in units on a term commitment and bills for the term regardless of use. The recurring pattern is a commitment sized for a forecast that did not arrive, or one carried through a model migration and left pointed at a version the traffic no longer uses.

The audit compares committed units against realised throughput in the export. Consistently low utilisation on non-spiky traffic means pay-as-you-go is cheaper, and a mixed shape - commitment sized to the traffic floor, overflow on demand - is usually right rather than an all-or-nothing choice.

4. Context caching bills for storage, not only for hits

This is the Vertex-specific trap. Explicit context caching charges for cached tokens held per hour on top of the discounted read. Cache a large document set, let the traffic pattern shift, and you are paying rent on tokens nobody reads.

The check is the ratio of cache storage cost to cache read savings per workload. It is one query against the export and it comes out negative more often than teams expect, especially where a cache was sized during a launch and never revisited. Where it is positive, it is among the largest levers available.

What the audit needs from you

About a week, ending in a written document with a ranked savings list and an effort cost against each item. Free, and yours to implement without us.

Also on OpenAI or Amazon Bedrock? Multi-provider is the normal case and the audit covers them together, because the same workload priced in two places is usually the most useful line in the document. Book the audit.

Back to FinOps LLM

FAQ

Why is the Google Cloud billing console not enough for Vertex AI cost work?

The console rolls Vertex up into a handful of lines. Model-level SKUs, request counts and label dimensions only exist together in the detailed usage cost export in BigQuery, which is where every useful query is run.

Is the BigQuery billing export backfilled when you enable it?

No. History starts on the day it is enabled, so a project without it needs an approximate baseline reconstructed from invoices while the export accumulates real data. Enabling it costs very little and everything downstream depends on it.

How do you attribute Vertex AI spend to a team or feature?

With labels attached at request time, which flow into the billing export as queryable columns and can split one model in one project across teams or customers. Traffic sent without labels is unattributable permanently.

Does explicit context caching always save money on Vertex AI?

No. Cached tokens are billed for storage per hour on top of the discounted read, so a cache whose traffic pattern changed can cost more than it saves. Compare storage cost against read savings per workload before assuming a gain.