Allocation Dimension Element Cutoff Thresholds

Many allocation dimensions have a "long tail" problem where a significant number of elements account for a very small portion of total spend. This can impact materialization performance and query speed while delivering minimal analytical value.

You can use the ElementCutoff parameter to filter out these low-value elements from allocation dimensions. ElementCutoff sets a cumulative percentage threshold; elements that fall below this threshold are either excluded or grouped into a named bucket.

Supported allocation types

ElementCutoff is supported for the following allocation types:

Allocation TypeSupportedNotes
Proportional AllocationYesPrimary use case
Telemetry AllocationYesStandard telemetry only
Telemetry Allocation (rate-based)NoRate allocations have different semantics
Even AllocationNoAll elements have equal weight; threshold is not meaningful

How the threshold works

The threshold is based on cumulative allocation percentage, sorted in descending order by allocation value. Elements are included until the cumulative sum exceeds (100 - ThresholdPercent). A secondary sort by element value ensures deterministic results.

Elements that fall below the threshold can be handled in 2 ways:

  • Excluded: Sub-threshold elements are excluded from the dimension (default behavior when no Name is specified).
  • Grouped: Sub-threshold elements are aggregated into a named bucket (when Name is specified).

In both cases, the thresholded allocation values are renormalized so that non-excluded values sum to 1.0, ensuring cost allocation correctness.

Example

Given elements with the following original allocations and a threshold of 10%:

ElementAllocationCumulativeStatus
A45%45%Included
B30%75%Included
C15%90%Included (90% is within 100 - 10)
D7%97%Excluded
E3%100%Excluded

Exclude mode (no name specified)

Included elements (A, B, C) have an original sum of 0.90, so they are renormalized by dividing by 0.90:

ElementThresholded AllocationOriginal Allocation
A0.50 (0.45 / 0.90)0.45
B0.333 (0.30 / 0.90)0.30
C0.167 (0.15 / 0.90)0.15
DExcluded0.07
EExcluded0.03

Thresholded allocations sum to 1.0 (0.50 + 0.333 + 0.167).

Grouping mode (with name specified)

When grouping is enabled, the bucket receives the excluded allocation, so no renormalization is needed for included elements:

ElementThresholded AllocationOriginal Allocation
A0.450.45
B0.300.30
C0.150.15
DExcluded0.07
EExcluded0.03
Small Accounts0.10N/A (synthetic)

Thresholded allocations sum to 1.0 (0.45 + 0.30 + 0.15 + 0.10).

CostFormation syntax

Add an ElementCutoff block to your allocation dimension definition:

ElementCutoff:
  ThresholdPercent: 5      # Required: cumulative percentage threshold (0-100 exclusive)
  Name: 'Other'            # Optional: bucket name for grouped sub-threshold elements

Parameters

  • ThresholdPercent (required): A number between 0 and 100 (exclusive). Determines the cumulative percentage of allocation below which elements are filtered out.
  • Name (optional): A string that specifies the name of a grouping bucket. When provided, sub-threshold elements are aggregated into a single element with this name instead of being excluded. You can use any name that makes sense for your use case, for example, "Other", "Small Accounts", or "Long Tail".

Example: Exclude sub-threshold elements

The following example defines an allocation dimension that filters out elements in the bottom 5% of cumulative allocation:

RDSSplitCosts:
  Name: RDS Split Costs
  Hide: True
  Type: Allocation
  AllocateByRules:
    AllocationMethod: Proportional
    SpendToAllocate:
      Conditions:
        - And:
          - Source: Account
            Equals: 123456789012
          - Source: Service
            Equals: AWS RDS
    AcrossElements:
      Rules:
        - Type: GroupBy
          Source: SingleTenantProduct
  ElementCutoff:
    ThresholdPercent: 5

Example: Group sub-threshold elements

The following example groups sub-threshold elements into a bucket named "Small Accounts":

RDSSplitCosts:
  Name: RDS Split Costs
  Hide: True
  Type: Allocation
  AllocateByRules:
    AllocationMethod: Proportional
    SpendToAllocate:
      Conditions:
        - And:
          - Source: Account
            Equals: 123456789012
          - Source: Service
            Equals: AWS RDS
    AcrossElements:
      Rules:
        - Type: GroupBy
          Source: SingleTenantProduct
  ElementCutoff:
    ThresholdPercent: 10
    Name: 'Small Accounts'

Configuration priority

ElementCutoff can be configured at 2 levels. The following list describes the order of precedence, from highest to lowest:

  1. CostFormation ElementCutoff: An explicit per-dimension configuration in your CostFormation definition file.
  2. Organization default: A default threshold configured at the organization level by CloudZero. If you need help configuring an organization-level default, contact your FinOps Account Manager or Customer Success Representative.

If neither is configured, no threshold is applied and all elements are included (backward compatible default).

📘

To disable the cutoff for a specific dimension when an organization-level default is set, explicitly set ThresholdPercent: 0 in the dimension's ElementCutoff block.

Edge cases

  • Single element: Always included regardless of threshold.
  • Tied allocation values: A secondary sort by element value ensures deterministic results.
  • Threshold of 0 or not configured: No elements are filtered (effectively disabled).
  • Name collision with existing element: If the grouping bucket name matches an existing element, the sub-threshold values merge with that element.