PCM Data Model Overview
The PCM data model is built around four core concepts — Price Lists, Prices, Price List Rules, and Price List Parties — that work together to support flexible, multi-context pricing across the Raytio platform.
Core concepts
- Price lists — named, typed containers that group prices for a particular purpose (e.g. "Standard Retail", "Partner Wholesale")
- Prices — the actual monetary amounts associated with catalogue items, including support for one-time and recurring billing
- Price list lines — the join between a price and a specific version of a price list
- Price list rules — adjustments that modify prices programmatically (markups, discounts, currency conversions)
- Price list parties — associations between price lists and specific customers or customer sites
Entity relationships
How it all fits together
Price lists are the top-level organising unit. Each list has a type (e.g. standard, promotional) and a base currency. Lists are versioned — when prices change, a new version is created while the previous version remains for historical reference.
Prices exist independently of price lists. A price defines how much a catalogue item costs under a given billing model (one-time or recurring). Prices are connected to price list versions through price list lines, which act as the join table.
Price list rules provide a way to derive prices programmatically. Rather than manually entering every amount, a rule can apply transformations — multipliers, addends, rounding, currency conversion — to produce derived prices from a base set. Rules can target all items or specific catalogue items.
Price list parties link price lists to specific customers or customer locations, enabling customer-specific pricing without duplicating the entire price structure. A resolution hierarchy checks for site-specific, then customer-specific, then default pricing.
Common patterns
All PCM entities share consistent patterns:
- Effective dating — start and end dates control when records are in effect, allowing changes to be scheduled in advance
- Multi-tenancy — every record is tenant-scoped, ensuring complete data isolation
- Internationalisation — names and descriptions support translated variants
Bulk import
A dedicated bulk-import process lets you load prices in batches. Records are staged with item keys and amounts, then processed into the pricing structure. Each staged record tracks its processing status, making it easy to monitor import progress and troubleshoot failures.
Further reading
- Price Lists and Versions — how pricing is structured and versioned
- Prices and Price Tiers — tiered pricing and volume discounts
- Price List Rules — rule-based pricing logic
- Price List Parties — customer-specific pricing overrides