Product Buckets
Choose product buckets when different parts of a deal (products/SKUs/categories) pay different rates and you have product-level amounts you can bucket.
Before configuring, decide your bucket taxonomy and mapping rules, and whether you should fall back to deal splitting when amounts are not reliable. Validate on a known deal by confirming bucket totals reconcile to contract value and the Calculation view applies the intended rate per bucket.
When to use this
- Rates depend on product line, package, or SKU group.
- You need to bucket deal items into categories for different treatment.
- You want to validate product mapping quality in your source data.
Core8 supports product-level revenue breakdowns via product buckets, so plans can calculate commission per category.

Two ways to model category-based rates
Option A: Use productBuckets (preferred when product-level amounts exist)
If your deal data includes product-level amounts, Core8 can map revenue into product buckets (for example: ARR, PS, TRAINING).
Plans can then compute commission by bucket.
How to reference buckets in plan logic
Bucket keys are typically accessed as uppercase:
d.productBuckets?.ARR?.amount(bucket amount)d.productBuckets?.ARR?.tcv(bucket TCV)d.productBuckets?.ARR?.months(bucket term length, if present)
Option B: Use deal splitting (fallback)
If you do not have reliable product-level amounts, you can split a deal into child deals where each child represents a revenue category and is calculated separately.
Recommended setup in Core8
- Ensure your data pipeline provides product-level amounts (CRM line items, billing line items, or a structured import).
- Define your bucket names and mapping rules (keep names stable; bucket keys are typically uppercase).
- Validate on a few real deals:
- bucket totals add up to the contract value
- the plan’s logic applies the intended rate per bucket
How to verify
- Pick one known deal with product-level amounts.
- Confirm the deal's bucket totals reconcile to the deal/contract value.
- Open the deal's Calculation view and confirm each bucket uses the intended rate/base.
Notes
- If you split a deal that already has
productBuckets, Core8 allocates bucket amounts across child deals based on split percentages.
Common gotchas
- Decide (and document) which date anchors the behavior: booking date vs invoice date vs payment date.
- If the pattern depends on fields from an integration, confirm those fields actually exist in Data Hub and aren’t overridden.
- Test with a tiny set of deals first, then expand—patterns often “work” but break on edge cases like refunds, partial payments, or split deals.