Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This guide helps account admins plan and govern Genie spend across a large organization. It describes a phased approach: observe real usage first, group users into persona tiers based on that data, then set budgets that match each tier.
For the steps to create a budget, see Manage budgets and cost controls for Genie. To query usage in the billing system tables, see Monitor and understand your Genie cost.
Why usage-based planning matters
Genie products are billed with a pay-as-you-go model, and each user receives a free monthly allowance. Because Genie usage is agentic, consumption per user varies far more than it does for traditional per-seat software. Consumption depends on the following:
- Usage pattern: How often someone uses Genie, and which products they use.
- Task complexity: Fixing a typo in a query consumes far less than asking Genie Code to build and debug a pipeline.
- Available context: The quality of available metadata, the size of your catalog, and the custom instructions available to Genie.
Because these variables differ for every organization, top-down estimates based on a "typical task" tend to produce surprises in both directions. Observe actual usage in your own environment before you commit to fine-grained per-user limits.
Note
Usage is uneven by nature. In observed customer deployments, a small fraction of users account for the large majority of total spend. Plan for that skew instead of assuming an even distribution across your user population.
Recommended approach
Azure Databricks recommends setting account and workspace ceilings first, and spending time to understand how your organization uses Genie to identify user tiers. Think about optimizing your organization's spend and budget in three phases:
| Phase | Goal | Budget configuration |
|---|---|---|
| Phase 1: Discovery | Learn how your organization actually uses Genie. | Account or workspace shared threshold only. Alert before you block. |
| Phase 2: Define tiers | Group users by observed consumption and business value. | No change yet. Analyze usage and create user groups. |
| Phase 3: Govern | Apply per-tier limits while keeping an account-level safety net. | Shared threshold, plus per-user thresholds and overrides. |
Throughout, prioritize "no surprises" over optimization. Establish visibility and a ceiling first, then optimize spend after you understand your baseline.
Phase 1: Run a discovery period
The goal of the discovery period is to observe real usage, including spikes from your heaviest users, before you set individual limits.
Choose a timeframe and scope
- Timeframe: 30 days is ideal, and 14 days is the practical minimum. Shorter periods rarely capture the full range of usage patterns.
- Scope: Pick a representative use case or team rather than enabling everyone at once. For example, start with a data engineering team using Genie Code.
- Ceiling: Set the ceiling high enough that your heaviest users don't hit it. If the ceiling blocks usage early, you learn what your limit is instead of what your users need.
Note
Genie One and Genie Agents usage by users is free through January 31, 2027. During this promotional period, that usage does not count toward the free monthly allowance or toward Genie usage tracked against a budget. A pilot on those products during the promotional period shows usage under the GENIE_FREE_USAGE SKU rather than the billed pay-as-you-go spend you use to size budgets. Use Genie Code usage to establish a cost baseline during this period, or estimate equivalent cost from your free-usage data in system.billing.usage.
Configure a discovery budget
During discovery, use shared thresholds at the account or workspace level and don't set per-user thresholds yet.
- Create a budget scoped to Genie. Use the Unity Gateway resource type and the
databricks-product: genieresource tag. See Create a budget for Genie. - Set the scope to All workspaces for an account-wide view, or select specific workspaces to limit discovery to a pilot.
- Add a shared threshold at the level of spend you want to observe up to, with only Send alert selected. Add lower alert-only thresholds, for example at 80%, so you get a warning as spend grows. A budget supports up to four shared thresholds.
- Optionally, add a final shared threshold with Block usage selected as a hard backstop against runaway spend. Because you haven't set per-user limits yet, this backstop blocks every user in scope when the shared pool is exhausted, so set it high enough that your heaviest users don't hit it during discovery.
Note
Some organizations prefer a single, centralized account-level budget, while the majority prefer to manage budgets at the workspace level. If you set up both an account-level and a workspace-level budget, one does not override the other. Whichever limit is reached first sends alerts, blocks usage, or both, depending on your configuration.
Tip
During normal operation, alert on aggregate account and workspace spend and reserve blocking for individual user limits, so one user's spend can't interrupt everyone. Discovery is the exception: with no per-user limits in place yet, a shared blocking threshold is your only backstop, so keep it high.
Watch usage as it develops
During the discovery period, monitor consumption to identify who your heaviest users are and what is driving their spend:
- Use the budget details page to watch estimated spend in near real time during the current month. See View budget details. Because this page shows month-to-date spend that resets on the first of each month, use it for monitoring, not for sizing tiers across a discovery period that crosses a month boundary.
- Query
system.billing.usagefor per-user and per-product usage aggregated over your exact discovery-period date range. This is the reliable basis for sizing tiers. See Monitor and understand your Genie cost. - Set alerts for teams you expect to be heavy users, so you learn about their consumption before they approach the ceiling.
Phase 2: Define persona tiers
After the discovery period, group your users into tiers based on what you observed. Derive these tiers from real usage data rather than defining them up front: setting per-user and per-group limits before discovery means guessing at limits your users haven't shown you yet. Most organizations find a distribution similar to the following. Names vary, but the responsibilities are consistent.
| Persona | Description | Typical budget treatment |
|---|---|---|
| AI beginners | Use Genie occasionally to boost productivity. Usage stays minimal, with occasional spikes. | Lowest per-user threshold. Many of these users stay within the free monthly allowance. |
| AI practitioners | Use Genie regularly. Use Genie One to deliver insights, or Genie Code to build and optimize data pipelines. | Moderate per-user threshold, set from observed median and 75th percentile consumption. |
| AI power users | Run long-running and asynchronous agentic tasks that drive significant organizational value. | Highest per-user threshold, applied as an override to the power-user group. |
Important
Set beginner thresholds high enough that users can grow into practitioners. A limit that blocks someone experimenting with Genie for the first time prevents their productivity.
Size each tier from your own data
Use your discovery period data rather than fixed heuristics. Base your sizing on billed pay-as-you-go spend, which is what budgets track. Because the free monthly allowance is already excluded from billed spend, don't subtract it again.
- Establish your total baseline: Query total billed Genie usage for your exact discovery-period date range from the billing system tables. See Monitor and understand your Genie cost.
- Segment your users by consumption: Sort users by billed spend over the discovery period and identify your median, 75th percentile, and heaviest users. These become your beginner, practitioner, and power user tiers.
- Calculate per-tier totals: Multiply your observed median and 75th percentile billed spend by the number of users in each tier.
- Add headroom for power users and growth: Power user consumption varies too much to average. Add a multiplier to your ceiling to accommodate them, and apply a growth rate that reflects your expected adoption. Keep the total within what your organization has approved for AI spend.
- Create a user group per tier: Create an account group for each persona, such as
genie-beginners,genie-practitioners, andgenie-power-users, and add users to the group matching their observed usage. Budgets apply thresholds to these groups in phase 3.
Note
You can ask Genie to help with this analysis. For the best results, make sure you have access to system.billing.usage, system.access.assistant_events, and system.access.audit.
Consider an approval process for higher limits
Rather than raising limits reactively when users are blocked, define how a user requests a higher threshold. An application or ticketing process for power user access lets you grant high limits deliberately, in exchange for demonstrated value, and gives you a record of why each override exists.
Phase 3: Set budgets by persona
With tiers defined and user groups created, evolve your discovery budget into per-tier governance. Keep your account and workspace ceiling in place as a safety net.
A single budget can combine the following:
- Shared threshold: The aggregate pool for everyone in scope. Base this on your observed total usage plus your growth rate. Alert at 80% and block at 100%.
- Per-user threshold: The default individual limit, set from your beginner tier. This applies to every user in scope.
- Per-user overrides: Higher limits for your practitioner and power user groups.
For the configuration steps, see Create a budget for Genie.
Important
Shared thresholds and per-user thresholds are evaluated independently. Neither overrides the other, and a user is blocked as soon as the first threshold with Block usage enabled is reached. A per-user override raises an individual limit, not the shared pool. See How shared and per-user thresholds work together.
Separate alerting from blocking
Shared thresholds and per-user thresholds handle alerting and blocking differently, so combine them deliberately:
- On the shared threshold, layer up to four thresholds to alert before you block. For example, set an alert-only threshold at 80% of the pool and a Block usage threshold at 100%. This warns admins as the aggregate pool fills, then stops spend at the ceiling.
- On a per-user threshold, actions are inherited across the default per-user threshold and all overrides. To enable both an alerting threshold and a blocking threshold, create two budgets, one alert-only and one block-only.
Budget scope and Genie products
All Genie products share the databricks-product: genie resource tag, so a single budget covers Genie Code, Genie One, and Genie Agents together, and you can't scope a budget to an individual Genie product. During the promotional period, only Genie Code is billable, so budgets effectively cover Genie Code spend, while Genie One and Genie Agents usage is free.
To align limits with different usage patterns, scope per-user overrides to user groups that reflect how each group works. For example, give a data engineering group a higher overall Genie threshold than a business analyst group. When a user belongs to multiple groups, the most permissive override within a budget applies.
Budgets track large language model (LLM) usage only. Compute used to run the queries Genie generates, such as a SQL warehouse, is billed separately and doesn't count against a Genie budget.
Best practices for efficient Genie Code usage
Genie Code is agentic, so how much it consumes depends on how efficiently users work with it. Each turn re-sends the whole chat's context to the model, and an agentic task runs several turns to plan, act, and check its work. Consumption grows with both the length of a chat and the amount of context it carries, so the twentieth message in a chat costs more than the first. The goal is to keep each chat's context relevant to the task at hand.
A useful rule of thumb is to treat Genie Code like a capable new coworker: give it enough context to finish the task on the first try, without having to come back for clarification.
Share the following practices with your users, and reinforce them with workspace instructions and agent skills so Genie Code applies them automatically. Because instructions load with every message, keep them lean.
Tip
Encourage users to lean on the features that don't draw down paid usage. Inline autocomplete suggestions, quick-fix and rename suggestions, and reviewing results that Genie has already generated in a space don't consume the paid allowance. Each user also gets a free monthly allowance that resets on the first of the month. Reserving chat for work that genuinely needs it stretches that allowance further.
Manage the context window
- Start a new chat for each task. This is the most effective lever. A new chat clears the context window, so a fresh task doesn't carry tokens from unrelated work. Keep related work in the same chat so Genie Code retains context and reuses its prompt cache, but start a new chat when you move on. Genie Code automatically summarizes, compacts, and truncates long context, but only a new chat clears it completely.
- Disable MCP servers you aren't using. Each connected MCP server adds its tools to what Genie Code carries in context. Turn off servers a chat doesn't need.
Give Genie Code what it needs up front
The less Genie Code has to explore to understand your intent and your data, the less it consumes.
- Reference assets with
@. To work with a specific table, file, or notebook, point to it with@instead of asking Genie Code to find it. - Be specific about the task and the output. Describe the task, the level of detail, and the format and length you want in one prompt. Vague prompts trigger broad exploration and follow-up rounds; specific prompts let Genie Code work with minimal reads and a shorter response.
- Show an example instead of describing one. A short sample of the output or query you want conveys intent in fewer tokens than a long description.
- Don't repeat context Genie Code already has. Genie Code can already see your schema and the current chat, so restating table names or earlier results in each prompt adds tokens without adding information.
- Document your data. Add table and column comments in Unity Catalog so Genie Code understands your schema instead of guessing. See Add AI-generated comments to Unity Catalog objects.
- Provide deterministic shortcuts. Give Genie Code reliable tools, such as metric views and Unity Catalog functions, for common operations. Use slash commands such as
/findTablesfor common prompts that would otherwise take several tokens to phrase.
Match model effort to the task
Most tasks run well on the default effort level, Auto, which optimizes for quality. For simple, well-scoped tasks, set the effort level to Low to use a faster, cheaper model.
Guide long or complex work
- Work in steps and verify as you go. Break a large task into smaller ones and confirm each result before continuing, so a wrong turn is caught while it's cheap to fix.
- Give verification targets. Include expected output, a sample, or the exact error so Genie Code can check its own work instead of iterating.
- Course-correct early. If Genie Code starts to loop, backtrack, or explore too broadly, stop it and add clarification rather than letting it continue.
Reuse repeated work with skills
For a task a team runs often, such as setting up a standard pipeline, generating a routine report, or running quality checks, capture the work once in a skill instead of reasoning it out from scratch every time. A skill can include an executable script, so Genie Code recognizes the request, loads the skill, and runs the script rather than planning, generating, and iterating on each run. This turns a multi-turn task into a single low-consumption turn, and a workspace skill spreads the savings across everyone who runs the same task. Good candidates are tasks your team has done several times with a consistent shape.
For more ways to get better, more efficient responses, see Tips to improve Genie Code responses.
Watch for these common consumption drivers:
- Marathon chats: Continuing one long chat across many unrelated tasks instead of starting a new chat.
- Circling without convergence: An ambiguous or difficult task can cause Genie Code to loop, backtrack, or explore too broadly. When this happens, stop Genie Code and give it clarification.
- Overly broad exploration: Asking Genie Code to read hundreds of assets when it only needs a specific folder.
Diagnose a cost spike
When Genie spend rises unexpectedly, budgets and system tables show you when it happened and who drove it, but not why. Find the cause before you change limits:
- Find where consumption is concentrated. Query
system.billing.usageto see which workspaces and users drove the increase, and over what dates. See Monitor and understand your Genie cost. To rank your top Genie Code users and their busiest tasks, use the Genie Code events dashboard. See Measure Genie Code impact. - Find out why. For the users driving the spike, look at what they actually did instead of stopping at the totals:
- Use the Genie Code events dashboard to see their heaviest chats and the kind of work behind them, such as building a dashboard, building a pipeline, or multi-asset editing.
- Match what you see against the common consumption drivers: marathon chats, circling without convergence, and overly broad exploration.
- For a specific expensive or off-track response, ask the user to click the bug icon at the end of the response, which copies the session ID, and send it to your account team. The session ID lets Azure Databricks trace what drove the consumption.
- Fix the specific cause. Give the affected user the one practice that addresses what you found, rather than the whole list:
- Marathon chats: start a new chat for each task.
- Broad exploration or heavy asset reads: reference assets with
@and write more precise prompts. - Repeated simple tasks on the default model: set the effort level to Low.
- Missing guardrails: confirm workspace instructions and skills are in place. For the full set of practices, see Best practices for efficient Genie Code usage.
- Limit spend if needed. If a user or group consistently exceeds what you approved, apply or lower a per-user override. See Create a budget for Genie.
Educate your users
Budgets work best when users understand them. As part of your rollout, tell users the following:
- Genie usage is billed, and each user receives a free monthly allowance that resets on the first of each month.
- Task complexity affects consumption. Large agentic tasks consume more than short questions.
- What happens when they reach a limit, and how to request a higher one.
For answers to common questions, see Genie cost and budgets FAQ.
Limitations
Budgets provide a near real-time estimate of spend and are not an absolute spend cap. Review the full list of limitations before you rely on budgets for cost control. See Limitations.