Skip to content

Allocation rules (virtual tags)

Real cloud spend is never perfectly tagged. Some resources were launched before a tagging policy existed; others carry the wrong value or none at all. Allocation rules — also called virtual tags — let you assign that spend to the right cost center with rules, instead of chasing down every missing tag at the source.

Rules span every connected provider — AWS, Azure, Google Cloud, Snowflake, Anthropic, and OpenAI — in one taxonomy, and spend no rule matches reports as Unallocated, whichever provider it came from. You create and manage rules on the Cost centers page (in the sidebar under Manage).

Each rule maps matching spend to one cost center. A rule carries:

  • What to match — one of three options: a tag (key + value on the resource), a service (all of Amazon EC2, or Snowflake Compute), or an entire integration (everything from one connected account — say, your OpenAI account → AI Platform).
  • A scope — org-wide, or limited to a single integration.
  • The target cost center — where matching spend lands.
  • A priority — its place in the ordering when several rules match the same spend (see precedence).
  • An Active toggle — an inactive rule is skipped entirely; spend it used to claim falls through to the next matching rule, or to Unallocated.

Matching is exact — one specific service, tag key + value, or connected account; there are no wildcards. If a rule’s match duplicates an existing rule in the same scope, saving is rejected and the error tells you which cost center (and priority) that match is already routed to.

Because rules match on dimensions your cost data already carries, you can allocate spend that has no usable native tag at all — the “virtual tag” is the cost center the rule assigns.

On the Cost centers page, find the target center’s row and select + Add rule (expanding the row shows the rules it already has). Then work through the form:

  1. Scope — leave it on Org-wide to match spend from every integration, or pick Single integration to limit the rule to one connected account.
  2. Match byTag, Service, or Entire integration. The last one needs a single-integration scope, since the integration itself is the match.
  3. The value to match — pick from the selector, which lists the tag keys or services actually present in your spend. For a tag rule, add the value too (say, team = platform).
  4. Priority — lower numbers are checked first. You can leave the default and fine-tune later by reordering.
  5. Active — on by default.

Save, and the rule takes effect right away — the Allocation page reflects it the next time it loads.

Rules live on bottom-level centers only: a center with children rolls up their spend and can’t carry rules of its own.

When more than one rule could match the same spend, priority decides the winner: rules are checked in priority order and the first match wins. Put your most specific rules ahead of your broad catch-alls, so a targeted rule isn’t overridden by a general one.

Priority is global — one ordering across every cost center — so moving one rule can change another center’s total.

Rather than editing priority numbers by hand, switch the Cost centers page to the Resolution order tab. It shows every rule in one ranked list:

  1. Drag rows (or use the ↑/↓ buttons) into the order you want. Changes stay a draft — nothing is saved yet.
  2. Select Preview to see exactly what the new order would do before anything changes: current versus projected spend per cost center, including how much each rule captures. The preview always evaluates your whole organization, regardless of the scope picker.
  3. Select Apply order to save, or Reset to discard. Applying renumbers every rule’s priority into a clean, evenly spaced sequence, so you never have to manage the numbers directly.

Reordering can move spend — and budget actuals — between cost centers, but it can’t shrink or grow Unallocated: spend a rule matches stays matched; only which center wins changes.

Snowflake compute is split per warehouse — an estimate based on each warehouse’s share of the day’s credits, while your account totals still match the invoice — so a tag rule like warehouse = ETL_WH can allocate a single warehouse’s spend. Storage, AI Services, and month-end adjustments aren’t split per warehouse; allocate those with a service or integration rule.

Rules feed the Allocation page. Anything no rule claims lands in Unallocated — the number to watch. As you add rules and improve tag coverage, Unallocated shrinks and your chargeback gets more accurate.