MDQ — Multi-Dimensional Quoting
A subscription product can be priced across dimensions — usually time (year 1, year 2, year 3) but optionally another axis. Pinion calls these segments.
Proration
When a segment doesn’t span a full period of its dimension — a 6-month year-1 segment on an annual subscription, for instance — Pinion prorates the segment’s billable quantity. The billable quantity is always
billable qty = user quantity × term factor
and Pinion stores that already-prorated value on the segment line, so the persisted line is the truth and every display reads it directly.
The term factor is computed from the product’s Proration Type
(Product2.ProrationType__c — Daily / Weekly / Monthly / Quarterly, blank →
the org default). Proration is a general subscription concept, not MDQ-specific,
so its full behavior — the per-type table, the Monthly-vs-Quarterly distinction,
and the blank fallback — lives on the Proration page. Each MDQ
segment prorates its own partial period exactly as that page describes.
Uplift
Each segment can apply a percentage uplift to the previous segment’s unit price (commonly 5% / year). The kernel uses compound uplift:
| Segment | Unit price |
|---|---|
| Y1 | base |
| Y2 | base × (1 + uplift%) |
| Y3 | base × (1 + uplift%)² |
| Yn | base × (1 + uplift%)ⁿ⁻¹ |
Uplift compounds across segments, not across re-pricings — re-pricing a contract on its effective date resets the uplift schedule.
When to use
- Multi-year subscriptions with year-over-year price increases.
- Quotes where partial-period proration matters for billing teams.
- Any product whose total spans multiple periods that should appear as distinct lines.
Related
- Renewals & Amendments — re-pricing resets the uplift schedule.
- Bundle Math — Effective Quantity — the other place quantity gets derived before display.
- Config-Attribute Pricing — per-segment attribute values (value-only today).