SC26AI agents lab + dinner on the river · Nov 17
Parallel Works

Allocations

Allocations are named budgets that organization admins create and share with groups. They are denominated in U.S. dollars or in a custom unit such as core-hours, GPU-hours, or service credits. Under the flexible allocation system, every cloud resource bills an allocation through its resource group.

Requiresorg:admin

Availability

Allocations are available to every organization on the flexible allocation system. Organizations on the legacy system can preview them by enabling the allocations feature preview (click your username, select Feature Preview, then click Enable).

In the sidebar, under Monitor, click Allocations. The page has three tabs:

  • My allocations — allocations shared with you. Organization admins see every allocation here.
  • All allocations — every allocation in the organization (organization admins only).
  • Units — custom units and their SKUs (organization admins only).

Concepts

Managed allocations

A managed allocation is denominated in U.S. dollars and is rated by the platform. Cloud resources, Kubernetes namespaces, and AI usage bill managed allocations. This is the type you'll use for most budgets.

Custom allocations

A custom allocation uses a custom unit such as core-hours. Usage reaches it through usage events posted by the API, the CLI, or an integration such as slurm-tracker. A custom unit can be rated into USD (it then has a cost per unit) or be a pure consumption unit that tracks raw quantities. Cloud resources can only bill allocations rated in USD.

Used and Estimated

  • Used — confirmed spend: invoiced cloud costs imported from your cloud providers plus rated usage events.
  • Estimated — Used plus real-time estimates for running resources that haven't been invoiced yet (USD allocations only).

Both count spend in the allocation's current window:

  • With periods — spend in the period that covers today (or this month, for a monthly period).
  • Without periods — all of the allocation's spend. Allocations created before periods were available instead keep resetting each year on the Allocation Start Date, if it's set, so their usage doesn't jump.

Allocation periods

An allocation can budget a separate amount in each of several allocation periods, such as fiscal years. Its total follows the period that covers today, nothing can bill it between periods, and budget left at the end of a period doesn't carry over.

Parent allocations

Allocations can be nested under a parent allocation, at any depth. A parent's Used includes the spend of the allocations under it in the same unit, counted within the parent's own window. A frozen parent blocks work charged to the allocations under it, and a parent's shutdown threshold also shuts down their resources. A sub-allocation with no budget of its own draws on its parent's.

A parent is never chargeable: it only holds budget for the allocations under it. Adding an allocation under a chargeable allocation turns it off as chargeable, which is refused while anything still bills it.

Not-chargeable allocations

Allocations are chargeable by default. An allocation that isn't chargeable only holds budget for the allocations under it, for example a department's budget split into one allocation per group. It can't be picked anywhere an allocation is attached: resource groups, AI chat and AI keys, usage events, reservations, and a cloud account's default allocation. Chargeable can't be turned off while anything still bills the allocation, or turned back on while allocations are under it.

Never above the budget

Once an allocation, or a parent it counts toward, has used its whole budget (counting real-time estimates), nothing new can start on it or bill it, whatever your organization's thresholds are. Resources show Budget used up. Running resources keep running until they're stopped or a shutdown threshold acts.

Creating an allocation

Click Add allocation and fill in:

Name

A unique name in your organization. The name is fixed after creation. Cloud costs tagged with a project tag that matches a managed allocation's name (ignoring case) are also billed to that allocation. This project tag matching is legacy and deprecated, and will not be supported in a future release; use resource groups instead. See Cost Attribution.

Type

Managed (USD) or Custom unit. For a custom unit, select the Unit. If none exist, create one on the Units tab first.

Parent

The allocation this one is under, or None. If the parent is chargeable, the dialog says it becomes not chargeable when you save.

Chargeable

Turn off for an allocation that only holds budget for the allocations under it. See Not-chargeable allocations.

Total budget

The budget in the allocation's unit. Decimals are allowed; negative values are not. A budget of 0 means the allocation has no budget: resource groups on it can't start anything new until you set a total. It does not mean unlimited.

Budget periods

To budget by period instead of one total, click Add period, pick a Period, and enter its Amount. Add a row for each period. The total then follows the amount of the period that covers today. Periods are created on the Allocation Periods page.

Allowed resource types

Managed allocations only. Restrict what the allocation can pay for: AWS, Azure, Google, Oracle, OpenStack, Kubernetes, and AI. Leave All types selected for no restriction. Resource groups on a restricted allocation only appear on matching resource forms, and resources of other types can't be created or moved onto them.

Sharing an allocation

Only organization admins can see a new allocation until it's shared. Open the allocation's row menu and click Manage permissions, then grant a group, or the whole Organization, one of these levels:

  • Read — view the allocation and its budget.
  • Use — bill the allocation: create resource groups on it, move resource groups onto it, post usage events, and use it for AI requests.
  • Admin — Use, plus edit the allocation's total and allowed resource types.

Threshold emails for an allocation go to the members of the groups it's shared with.

How usage reaches an allocation

SourceHow it's attributed
Clusters, instances, storage, IPs, network interfaces, ML workspacesThe resource's resource group, at the time of the charge. See Cost Attribution.
AI (Chat, pw code, AI keys)The allocation chosen for the request or bound to the AI key. See Models & Allocations.
Kubernetes namespacesThe allocation set on the namespace, with cost tracking enabled on the cluster. See Kubernetes Cost Tracking.
HPC and other external usageUsage events posted to a custom allocation through the API or CLI.

Viewing usage

The allocations table shows each allocation's Total, Used, Estimated, Remaining, and % Used, and can be filtered by budget status (Over budget, Approaching limit, Within budget). Budgets are shown compactly, such as $6.33M; hover an amount for the exact figure. Display → Ordering sorts by name, total, used, estimated, remaining, or % used.

Click an allocation to open its details page, which also lists its Periods and the Associated resource groups it funds. The Usage events tab lists individual usage events.

The Events tab records every change to the allocation (creating, editing budgets, periods, or chargeable, deleting, and sharing) and the first time it crosses each threshold level, with the percent used and the actions taken. Organization admins, billing admins, and the allocation's admins can see it.

To chart spend over time by type, user, SKU, or sub-allocation, use Monitor > Reports. See Allocation Cost Dashboard.

Viewing budgets by year and period

Once allocations budget by period, Display → Grouping on the allocations list picks how budgets are shown. Your choice is saved with the rest of your display settings.

  • Current budgets — what each allocation can spend today.
  • By period — one column per period the allocations budget in, for a from–to range of periods, with a total for the range. A period that spans others comes before the periods inside it.
  • By fiscal year — one column per fiscal year, for a from–to range of years, with a total for the range.
  • A single fiscal year, such as FY27 (current) — each allocation's budget for that year, with used, remaining, and % used, and the periods it comes from. Years that haven't started show Not started, so you can set up next year ahead of time.
Screenshot of the allocations list grouped By period, with a column per period, a not-chargeable parent expanded to show its sub-allocations, and a total for the range.

In the year and period views, each parent shows how much of its budget is still unassigned to the allocations under it, how much it's over-assigned, or All assigned. Ordering sorts by the figures for the years shown, not today's. Fiscal years come from the Allocation Start Date policy (see Fiscal years). Allocations without periods aren't shown in the year and period views; a note says how many are hidden.

Editing budgets

To change many budgets at once, click Edit budgets above the list. Every amount becomes a field, and a bar at the bottom counts your changes. Enter moves down a column and Esc undoes a cell. Lowering one budget shows what it frees on the parent, so you can give that money to another allocation, and raising one past its parent's budget blocks saving until you fix it. Click Save changes to save them all together, or Discard.

A fiscal year's budget can't be edited here when it spans several periods or repeats monthly. Change it on the allocation's page.

Editing an allocation

Open the allocation's row menu and click Edit allocation to change its Total or Budget periods, Chargeable, and, for managed allocations, its Allowed resource types. The name, type, and unit are fixed. Changing the total re-arms threshold emails, so users are notified again when the new budget fills up.

Deleting an allocation

Open the allocation's row menu and click Delete. You can't delete an allocation while resource groups bill it or allocations are under it; change the resource groups' allocation or delete them, and delete the allocations under it, first.

Deleting an allocation also deletes its usage events and costs, and clears it as the default allocation on any cloud account. If it has cloud usage, those costs show as "unknown" afterwards, so export anything you need first.

Units and SKUs

On the Units tab, create custom units for non-dollar budgets.

  • Track usage in USD — when on, usage is rated into dollars using the unit's Cost per unit and its pricing rules, which can change over time without rewriting past usage. When off, the unit is a consumption unit that tracks raw quantities.
  • SKUs — the billable items within a unit, for example SLURM_NODE_HOUR. Each SKU has a rate multiplier (1× by default) with its own history. Usage events reference a SKU code, and the SKU must belong to the allocation's unit.

A usage event's amount is its quantity × the SKU rate × the unit rate. A unit can't be deleted while allocations use it.

Recording usage events

Usage events can be posted only to custom allocations, by users with Use or Admin on the allocation. Each event carries a quantity (greater than zero), a start and end time, and a SKU code. Only organization admins can attribute usage to another user. See pw billing allocations usage post.

CLI

The pw billing commands manage allocations, units, and SKUs:

Tracking Slurm usage

If your organization runs Slurm-managed HPC clusters, the slurm-tracker CLI can post usage from those clusters directly into custom allocations. It runs on a Slurm login or controller node (typically as a cron job every few minutes), maps each Slurm account to an allocation and each Slurm partition to a SKU, and records core-hour consumption as usage events.

See the slurm-tracker README for installation, configuration, and the account-to-allocation mapping format.