What Genie costs, and how to roll it out without a bill shock

Pull-quote: “An agentic tool with a per-token cost and no budget is a support ticket waiting to happen.”
Genie costs money per use, with a free monthly allowance per person, which changes how you roll it out. Databricks moved the Genie products to pay-as-you-go billing on 6 July 2026 on AWS and 8 July 2026 on Azure. Each user, excluding service principals, gets a free monthly allowance of 150 DBUs of LLM usage, roughly $10.50 in US East, and consumption beyond that is billed in DBUs reflecting the models and agents powering each session. Account administrators can set budgets and cost controls.
The shape of the spend is what matters. A warehouse costs what you sized it to cost. An agent costs what your engineers do with it, and one person running fifteen parallel threads consumes fifteen threads of inference. That is a per-user variable cost inside a platform whose finance model is built around capacity, and that mismatch produces an uncomfortable conversation in month two.
This post is for whoever owns the Databricks bill and whoever is asked to approve Genie access. It assumes you can run SQL against Unity Catalog system tables and reach an account administrator. By the end you will know the price, which SKUs the usage lands in, the query that shows today’s consumption, the budget to create before the second team gets access, and the order to do it in.
What you will be able to do
- State the Genie pricing model precisely: the dates, the allowance, and what happens beyond it.
- Find Genie usage in
system.billing.usageand attribute it to a user and a product. - Explain why a join to
system.billing.list_pricescorrectly drops your free usage rows. - Create a Genie budget with thresholds and overrides that behave the way you expect.
- Sequence a rollout so the first surprise is a chart rather than an invoice.
- Diarise the two promotional end dates you are currently relying on.
What does Genie cost, exactly?
Genie is billed pay-as-you-go, with a free allowance of 150 DBUs per user per month, roughly $10.50 in US East, and everything beyond the allowance metered in DBUs that reflect the underlying models and agents used in each session. The allowance excludes service principals and resets on the first day of every month (Databricks documentation).

Two dates are worth writing down, because they differ by cloud and a reconciliation argument in month two comes back to them. Pay-as-you-go started on 6 July 2026 on AWS and 8 July 2026 on Azure. The Genie Code documentation states billing from 8 July 2026 at 00:00 UTC, and Databricks makes spend and usage data available from 8 July 2026, so confirm the exact start for your own account and cloud against your release notes before reconciling the first invoice.
One term is doing quiet work in your July numbers. Genie One and Genie Agents usage is free through 31 July 2026, while Genie Code remains billed beyond the per-user allowance. So a July bill tells you little about August if your business users are adopting fastest, which is the most common reason a Genie rollout looks cheap and then does not.
Which SKUs does Genie usage land in?
Genie usage splits across two SKUs by whether it is free or billed, not by which Genie product produced it. Billed usage lands under the Serverless Real-Time Inference SKU, whose exact name includes your cloud and region, for example ENTERPRISE_SERVERLESS_REAL_TIME_INFERENCE_US_WEST_OREGON on AWS. Free usage lands under GENIE_FREE_USAGE.
Two consequences catch people out. First, the Serverless Real-Time Inference SKU is shared with other product lines, so a query filtering on the SKU name alone attributes other people’s serverless inference to Genie. Filter on billing_origin_product = 'GENIE' instead, and use usage_metadata.genie.surface to separate GENIE_CODE, GENIE_ONE, and GENIE_AGENTS for per-product chargeback.
Second, GENIE_FREE_USAGE tracks consumption but carries no list price, so it has no row in system.billing.list_prices. Join usage to prices and your free rows vanish. That is correct behaviour rather than a broken join, and it is why free and billed usage need separate treatment in any report. The SKU also only started appearing on 20 July 2026 and earlier free usage was not backfilled, so an all-time free usage chart is misleading by construction.
How do you see what Genie is costing you right now?
Query system.billing.usage, filter to billing_origin_product = 'GENIE', and split free from billed by SKU name. The table updates every few hours and holds one row per usage record, which is enough resolution for a weekly review and not enough for a live dashboard.

-- Month-to-date Genie DBUs per user, split free versus billed.
-- Free rows carry no list price, so they are counted, not costed.
SELECT
u.identity_metadata.run_as AS user,
u.usage_metadata.genie.surface AS genie_surface,
SUM(CASE WHEN u.sku_name = 'GENIE_FREE_USAGE'
THEN u.usage_quantity ELSE 0 END) AS free_dbus,
SUM(CASE WHEN u.sku_name != 'GENIE_FREE_USAGE'
THEN u.usage_quantity ELSE 0 END) AS paid_dbus
FROM system.billing.usage u
WHERE u.billing_origin_product = 'GENIE'
AND u.usage_date >= DATE_TRUNC('MONTH', CURRENT_DATE)
GROUP BY u.identity_metadata.run_as, u.usage_metadata.genie.surface
ORDER BY user, genie_surface;
Run that once and you have the two facts that matter: which people are past their allowance, and which product they are past it on. To turn billed DBUs into money, join to system.billing.list_prices on sku_name inside the price validity window and multiply by pricing.effective_list.default. Databricks publishes both queries and the estimation pattern for free usage (Databricks documentation).
You know the visibility step worked when the query returns rows with a non-null genie_surface for at least one real user. If everything is empty, either nobody used Genie this month or you are looking before usage data existed in your account.
How do you set a Genie budget that blocks before it surprises anyone?
Create the budget in the account console using the Unity AI Gateway resource type with the resource tag databricks-product: genie, and add no other resource tags, because additional tags are unsupported and stop the budget tracking Genie usage at all (Databricks documentation). That one detail is responsible for most budgets that appear to show zero spend.
A budget carries three kinds of threshold, and the interaction between them is where expectations break.
| Threshold | What it limits | Typical use |
|---|---|---|
| Shared | A collective monthly limit for everyone in scope | Alert the platform team that adoption is real |
| Per-user | A monthly limit applying to each user in scope | The actual control, for example $30 each |
| Per-user override | A higher limit for named users or groups | Give the engineering group headroom |
Each threshold can alert, block usage, or both. Databricks recommends alert only on the shared threshold and blocking through per-user thresholds and overrides, for a good reason: a blocking shared threshold stops everyone in scope the moment the pool empties, including people who have barely used anything.
Four behaviours to know before you promise anyone a limit. Thresholds are evaluated independently, so a user is blocked by whichever blocking threshold is reached first, and an exhausted shared pool blocks people nowhere near their own limit. Within one budget the most permissive per-user threshold applies when someone belongs to several groups, while across multiple Genie budgets the most restrictive limit wins. A budget cannot remove the free monthly allowance. And when blocking triggers, a little spend beyond the threshold still occurs, because in-flight requests are not interrupted and enforcement has a brief delay, so set the number below your real tolerance.
Expect the budget page and the system tables to disagree. The budget interface refreshes far more frequently than the billing tables, which update every few hours, so the two are not designed to reconcile in real time. Use the system tables as the source of truth (Databricks documentation).
What is the right sequence for rolling Genie out?
Visibility first, one budget in alert-only mode second, one pilot team third, blocking thresholds fourth, then widen. Every step exists to make the next step’s surprise small.

Visibility comes before access because you cannot forecast an agentic workload from a licence count. Adoption is bimodal: most people use Genie occasionally and stay inside the allowance, while a few engineers running many parallel threads generate most of the spend. A per-seat estimate is wrong in both directions at once, and the only correction is your own usage data.
Pilot with the team already billed, which today means engineers using Genie Code, because Genie One and Genie Agents are free through 31 July 2026 and produce no cost signal. A pilot generating no billable usage teaches you nothing about budgets.
When you widen, charge back by product rather than by workspace. usage_metadata.genie.surface separates Genie Code, Genie One, and Genie Agents, which answers the question a finance partner will actually ask: is this engineering tooling spend or business self-service spend. That distinction usually decides who funds it. Attributing lakehouse spend to a team rather than a resource is covered in where Databricks spend actually goes.
Which promotional terms are you relying on right now?
Two, and both have end dates that belong in a calendar rather than in your memory. Genie One and Genie Agents usage is free through 31 July 2026. A 25% discount applies to all billed Genie usage through 31 January 2027, applied directly in DBU metering rather than as a separate discounted SKU, so usage_quantity already reflects the discounted consumption.
That metering detail has an edge. Because there is no discounted SKU, you cannot find the discount as a line item or assume it persists as one. Free usage is metered at the full rate, so to know what your free consumption would cost when billed you apply the discount yourself, as the documented estimation query does.
Model the post-promotion month before you widen access. Take current Genie Code consumption per engineer, add the Genie One and Genie Agents DBUs that are currently free, and treat the total as your August starting point. If that number changes who approves the rollout, better to learn it now. The same reasoning applies to any per-token workload, the subject of LLM cost and latency engineering.
Where this goes wrong
Symptom: the Genie budget reports zero spend while people are clearly using it. The cause is almost always extra resource tags on the budget, which are unsupported and prevent tracking. Recreate it with the Unity AI Gateway resource type and databricks-product: genie as the only resource tag.
Symptom: your cost report loses most of its rows when you join to list prices. The cause is GENIE_FREE_USAGE, which has no list price and therefore no matching row. Handle free usage in a separate branch, count it in DBUs, and estimate its equivalent cost only when asked.
Symptom: a user is blocked while the shared pool still has budget left. The cause is that thresholds are evaluated independently, so their per-user threshold hit first. Raise it with a per-user override, and remember an override replaces the per-user threshold but never the shared one.
Symptom: July looked affordable and August did not. The cause is the promotion. Genie One and Genie Agents usage was free through 31 July 2026, so a July bill measures Genie Code and nothing else. Rebuild the forecast from DBUs consumed rather than dollars invoiced.
Symptom: spend crept slightly past a blocking threshold. This is documented behaviour rather than a fault. In-flight requests are not interrupted and enforcement has a brief delay. Set thresholds below the number you care about, and treat blocking as a guardrail rather than a hard cap.
Common questions
Is Databricks Genie free to use?
Partly. Each user, excluding service principals, receives a free monthly allowance of 150 DBUs of LLM usage, roughly $10.50 in US East, and usage beyond that is billed in DBUs. Separately, Genie One and Genie Agents usage is free through 31 July 2026, while Genie Code is billed beyond the allowance from the start of the pay-as-you-go period.
When does the free monthly allowance reset?
On the first day of every month. Budget thresholds also track month-to-date and reset on the first day of the calendar month, so a user blocked by a budget can use Genie products again once the new month starts, up to whatever limit applies to them.
Can a budget take away a user’s free allowance?
No. Users always keep their free monthly usage and a budget cannot remove it. Budgets control pay-as-you-go spend on top of the allowance, which is why a blocked user loses billed usage rather than being locked out. To give a blocked user more paid usage, an administrator raises their limit with a per-user or per-group override.
How do I give every user $30 of Genie spend a month?
Create a budget scoped to Genie and set a per-user threshold of $30 with blocking enabled. It then applies to every user in the budget’s scope, on top of their free monthly allowance, and you add per-user or per-group overrides for the people who need more, such as engineers using Genie Code heavily.
Why can I not see free usage from earlier this month?
Because free usage visibility under the GENIE_FREE_USAGE SKU rolled out on 20 July 2026 and earlier free consumption was not backfilled. Any report covering a period before that date understates free usage, so do not use it to establish a baseline or argue about a trend.
Does the 25% promotional discount apply to free usage?
No. The discount is applied directly to DBU metering and only to billed usage, so free usage is metered at the full rate. To get the equivalent cost of free usage during the promotional period, apply the 25% reduction in your own estimate, which is what the documented estimation query does.
Next steps
Do the visibility step today, because it takes one query and changes every subsequent conversation. Run the month-to-date free versus billed query, see who is past 150 DBUs, and note which product. Then create one budget: Unity AI Gateway resource type, databricks-product: genie as the only resource tag, a shared threshold in alert-only mode, and email addresses that reach someone who will act. That is an afternoon of work, and it removes the class of problem where the first signal is an invoice.
Then decide who gets access next. If the answer is business teams, Genie One, the data-smart coworker for business teams covers what that product can and cannot decide for them, and curating a Genie Agent that earns trust covers the analyst work that has to happen first for those answers to be right. Both matter more than the budget, because an answer nobody trusts still costs DBUs.
Zorost runs this on client lakehouses as a trusted Databricks partner, where the budget and the usage query exist before the second team is granted access rather than after the first surprising invoice.
