Bundle Math — Effective Quantity
When a product has bundle options (Components, Fixed Price Components, or Accessories), Pinion needs to decide how the parent bundle’s quantity relates to each option’s quantity.
The rule
| Option type | Effective quantity on the line item |
|---|---|
| Component | parent quantity × option quantity |
| Fixed Price Component (FPC) | parent quantity × option quantity |
| Accessory | option quantity (no parent multiplication) |
A child with no option type is treated as an Accessory. On a subscription bundle, every option also carries the contract term; see Subscription bundles and the contract term.
Worked example
This example is a non-subscription bundle, so no term applies. A customer orders 3 units of a “Hardware Bundle” parent. The bundle contains:
- 1 Component “Power Supply” with option quantity 2
- 1 Accessory “Cable Kit” with option quantity 2
After Pinion saves the lines:
| Line item | Quantity stored on the line | Why |
|---|---|---|
| Hardware Bundle | 3 | parent quantity |
| Power Supply | 6 | Component → 3 × 2 = 6 |
| Cable Kit | 2 | Accessory → no multiplication |
The Product Display tab shows the same effective quantity (6) on the “Power Supply” row. Hover the quantity number to see the breakdown: “Effective quantity = parent quantity (3) × option quantity (2) = 6.”
Subscription bundles and the contract term
On a subscription bundle, Pinion applies the contract term once. The term comes from the bundle parent product (its subscription term unit and proration type) over the bundle’s date window, and it reaches every option whatever the option product’s own Subscription flag or term unit says. The one exception is a discount option, which never has the term applied to it directly.
| Line | Quantity stored on the line |
|---|---|
| Bundle parent | bundle quantity × term |
| Component / Fixed Price Component | bundle quantity × option quantity × term |
| Accessory | option quantity × term |
| Discount option | its effective quantity by option type; the term is never applied directly, so a Component-typed one carries it only through the term-baked parent quantity and an Accessory-typed one not at all |
A Component inherits the term through the parent’s term-baked quantity, so the term is not applied to it a second time. An Accessory doesn’t scale with the parent, so it takes the term directly: static on the quantity axis, scaled on the term axis.
Take the same bundle as a 3-year subscription whose parent product has a term unit of Year (term = 3):
| Line item | Quantity stored on the line | Why |
|---|---|---|
| Hardware Bundle | 9 | 3 × 3 |
| Power Supply | 18 | Component → 3 × 2 × 3 = 18 |
| Cable Kit | 6 | Accessory → 2 × 3 = 6 |
A segmented (MDQ) bundle is the exception: it is not multiplied by the term. Each segment’s quantity already carries its own proration, so applying the term as well would count it twice.
Why this matters
Related
- Pricing Models — how the parent total relates to the child line totals.
- Fixed Price Components — the flat-total variant of a scaling child.
- The Universal Invariant — the equation the effective quantity feeds.