Skip to main content
Dimensions turn provider-specific tags, labels, and billing metadata into consistent fields you can use across Costory. Use them to group, filter, alert, report, and allocate costs without rebuilding tags in AWS, GCP, or Azure.
Costory Dimensions page listing imported labels and virtual dimensions

Overview

A dimension is a reporting field in Costory. You can create one by pointing several native tags or labels at the same concept. For example, map aws:Environment, env, and environment into one Environment dimension so filters and splits stay consistent across providers. A virtual dimension is a rule-based dimension. You define the output values from conditions instead of relying on a tag that already exists. For example, a Team virtual dimension can route rows where project_id starts with eng- to Engineering, and route everything else to Platform. Use dimensions when you need to:
  • Clean duplicate tag keys across AWS, GCP, and Azure
  • Normalize values such as prod, prd, and production
  • Allocate untagged resources to teams, products, or cost centers
  • Build shared dashboards, alerts, and reports on stable business fields

Key terms

  • Dimension: A Costory field used to filter, group, allocate, or scope costs.
  • Imported dimension: A dimension created from native provider tags, labels, or billing metadata.
  • Virtual dimension: A dimension whose values come from rules that you define in Costory.
See the Glossary for a full list of terms.

Create a dimension from native tags and labels

Use imported dimensions when the data already exists in your cloud billing export, but the names or values are inconsistent.
1

Open Dimensions

Navigate to Dimensions from the left sidebar.
2

Add a dimension

Click + Add new dimension, then select the native tags or labels you want to merge.
Selecting native tag and label sources to create a Costory dimension
3

Choose the reporting name

Pick the name you want Costory users to see, such as environment, team, or cost_center.
4

Normalize values

Review suggested value mappings and adjust them. For example, map prod, prd, and production to production.
Environment dimension editor remapping values to canonical names
5

Publish

Click Publish all changes. Costory reprocesses historical data so the dimension is available in Explorer, Dashboards, Alerts, and Reports.

Create a virtual dimension from rules

Use virtual dimensions when the right grouping does not exist as a clean tag. Rules can use billing metadata, imported dimensions, or other virtual dimensions.
1

Create the virtual dimension

Open Dimensions, click + Add new dimension > Virtual dimension, and enter a name such as team, business_unit, or product.
Dimensions page with Add new dimension menu showing Dimension and Virtual dimension options
2

Define rules

Add conditions that map cost rows to output values. Conditions can use fields such as account, service, resource name, Kubernetes namespace, imported dimensions, or another virtual dimension.
Virtual dimension rules editor with conditions and output value mapping
3

Order the rules

Rules are evaluated from top to bottom. Drag rules into the priority order you want.
4

Save

Costory reprocesses historical data and makes the new values available across the product.

Dimension sources

SourceExamplesWhen to use
Native tags and labelsenv, aws:Environment, project.labels.teamYou already tag resources, but names or values differ by provider
Standard columnsProvider, account, service, region, namespaceYou need allocation from billing metadata that is always present
Other dimensionsenvironment, team, business_unitYou want a hierarchy, such as namespace -> team -> business unit
Usage metricsDatabase size, API calls, CPU timeYou need shared cost allocation based on actual consumption

Common patterns

Environment dimension

Merge env, environment, and k8s_label_env, then normalize values into development, staging, and production. Use this for environment cost reports and alerts.

Team virtual dimension

Map accounts, namespaces, services, and project IDs to teams. This helps you allocate untagged resources and create team scopes in Teams.

Allocation hierarchy

Build one dimension on top of another. For example: When the team mapping changes, every dashboard, alert, and report that uses the downstream dimensions updates after reprocessing.

Next Steps

Tag & Allocate overview

See how dimensions and shared cost allocation fit together

Shared Cost Allocation

Split shared infrastructure costs with usage metrics

Explorer

Use dimensions to filter and group cost data

Automated Environment Visibility

Walk through an environment dimension example
Last modified on June 24, 2026