- Google made daily token quotas generally available for BigQuery's AI functions, capping input and output tokens by project and by user.
- Quotas count tokens, not dollars, and a limit hit mid-run can leave partial or unprocessed results. An analyst quoted by InfoWorld says finance attribution is still needed.
- Separate production from experiments, set quotas by team, and build pipelines that find skipped rows and rerun them after the daily reset.
A spending cap feels like control. It is control over one thing: how fast the meter can run. What happens to the work when the meter stops is a separate question, and Google's new BigQuery quotas put that question in front of every BigQuery team that uses these AI functions.
What Google released
BigQuery customers can now set daily ceilings on how many tokens its generative AI functions consume. InfoWorld reported on October 15 that the feature is generally available. A token is a small chunk of text that a model reads or writes, and it is the unit AI services bill by.
The quotas count input and output tokens. They apply each day, to a whole project and to each individual user. The covered functions are AI.GENERATE and its table and text variants (AI.GENERATE_TABLE and AI.GENERATE_TEXT), plus AI.CLASSIFY, AI.IF, AI.AGG and AI.SCORE.
Embedding functions, such as AI.GENERATE_EMBEDDING and AI.EMBED, are excluded. Google wrote in a blog post that they run on different, substantially cheaper models.
Output limits also count the reasoning tokens a model uses while it works. Teams can ask Google to raise the defaults. Quotas can be managed in the Cloud Console, the Cloud Quotas API, the gcloud command-line tool, or Terraform.
How a quota fails
The mechanism matters more than the numbers. If the needed quota is already used up, BigQuery rejects the query with a "QuotaExceeded" error. That is the clean case.
The messy case is a quota that runs out while a query is running. BigQuery then stops sending new requests to the model, according to Google's documentation as reported by InfoWorld.
What the user sees depends on the function. AI.IF can return partial results if the rows it could not process stay within a set error limit. Beyond that limit, the query fails.
AI.GENERATE behaves differently. The job can report completion while some rows come back with no AI output. Google says rows that could not be processed carry an error message in their status field.
So a job can complete while some of its rows are empty. Only a pipeline that checks the status field will catch them. The source does not say whether AI.IF flags rows the same way.
Estimating is only partial
Google also added AI.COUNT_TOKENS, which estimates token use before a job runs. It has limits. It counts input tokens only. It does not count output or reasoning tokens, instructions the AI functions add, or non-text inputs such as images.
So the estimate can come in below actual use. Google recommends running a small sample workload first to measure real consumption before setting quotas for larger jobs.
A cap is not a budget
Analysts quoted by InfoWorld welcome the change. Pareekh Jain of Pareekh Consulting called it an "important improvement" and said unpredictable token use could previously lead to unexpected costs. Nhat Bui of Scopic Software said analysts and data scientists can now experiment "with less risk of an expensive mistake."
Manoj Chandra Jha of Nord-IQ Research adds the limit. The quotas count tokens rather than dollars, and they offer no team or business-unit budgets. In his words, finance still cannot see who is spending what.
This shows the shift. A quota converts a cost risk into a reliability risk. Spending becomes bounded, but the cost moves to whoever depends on complete results. Bui names the trade-off directly: lower limits give more control over spending and a higher risk of disrupting production.
The familiar parallel is a household circuit breaker. It prevents a fire, but when it trips, the lights go out. Nobody confuses the breaker with an energy bill.
What to ask your team
Jha's advice, as reported, gives a workable start. Keep production workloads apart from development and experiments. Give production more room and hold experiments to tighter limits.
Structure projects by team so each acts as a de facto budget. Layer FinOps reporting on top. FinOps is the practice of tracking and assigning cloud spending to the teams that cause it.
Then ask three questions. Which of our scheduled jobs use these functions, and what happens to their output if a quota runs out mid-run? Does any pipeline that uses AI.GENERATE check the status field for failed rows? And who reruns skipped rows after the daily reset?
Jha also advises building pipelines that detect skipped rows and reprocess them once quotas reset. Without that, an empty cell can pass for an answer.
A cap tells you when the spending stops. It does not tell you what stopped with it.
Produced by the WebPulse Newsroom with AI assistance from the original reporting credited below, and checked against that source by our editorial review. How we use AI.
Original reporting: InfoWorld.





