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:

SegmentUnit price
Y1base
Y2base × (1 + uplift%)
Y3base × (1 + uplift%)²
Ynbase × (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.