Skip to content

Rule-based tagging lets you mark source rows with metadata that the allocation engine uses to decide where those rows go. Use it when you need allocation behavior to vary by row — for example, when costs for one cost center should be spread by headcount but costs for another should be spread by revenue.

  • A flat allocation rule doesn’t capture how cost should actually be spread (different rules for different cost types).
  • You want to direct certain source rows to specific targets while leaving others to spread normally.
  • You’re modeling a multi-pool allocation where each pool uses a different driver.
  1. Tag the source. The values table gets one or more tag columns that classify each row.
  2. Reference tags in the allocation rule. When configuring the allocation step, you express rules in the form “if source tag X = value Y, allocate using driver D and target dimension T.”
  3. The engine routes rows. Each source row is matched against rules in order; the first matching rule decides the allocation behavior.
  • A column named cost_category with values like payroll, facilities, it, marketing
  • A column named pool that names the allocation pool the row belongs to
  • A boolean column like is_overhead that triggers different treatment

A cost table with cost_center and cost_category:

cost_centercost_categoryamount
1010payroll50,000
1010it8,000
1020payroll35,000

You can configure two allocation rules:

  • Payroll rows spread by headcount driver
  • IT rows spread by user-count driver

Both rules run against the same source table; tags decide which one applies to each row.