GPM Data Model Overview
The GPM data model is built around a single master item catalogue connected to four supporting concepts — categories and hierarchies, attributes and values, relationships, and actions (CTAs). Understanding how these relate is the key to understanding how Raytio's product catalogue works.
The big picture
Items
The item catalogue is the master register of everything the platform can sell, book, compare, or categorise. Every record represents a single item — whether it is a radiology procedure, an insurance product, a subscription plan, or a category node in the hierarchy. Items carry identity fields, physical attributes (dimensions, weight), behavioural flags (purchased, shipped, stocked), and organisation ownership.
For more detail, see Items.
Categories and hierarchies
GPM uses two complementary mechanisms for organising items:
- Item categories — groups of typed attributes (like "Settlement" or "Benefits") that define what metadata an item can carry.
- Catalogue hierarchy — a tree of
CATEGORY-typed items linked byBELONGS_TO_CATEGORYrelationships that determines how users browse the marketplace.
For more detail, see Categories and Hierarchies.
Attributes and values
GPM uses an extensible attribute pattern to attach typed metadata to items. Each domain, such as insurance, radiology, or beauty, can define its own attribute sets while using the same product catalogue model. These domains and attributes are examples; organisations can extend them to suit their own catalogue structures. Attribute definitions belong to categories and carry a data type, validation rules, and display configuration.
For more detail, see Attributes and Values.
Relationships
Items are connected to each other through directed relationships. The most important type is BELONGS_TO_CATEGORY, which builds the catalogue hierarchy. Additional types support substitutes, accessories, and order-modification semantics.
For more detail, see Relationships.
Actions (CTAs)
Item actions define the call-to-action buttons displayed in the marketplace — "Compare", "Get a Quote", "Book Now". Actions can be defined directly on an item or inherited from ancestor categories, so an entire category of items shares the same CTAs without duplication.
For more detail, see Actions (CTAs).
Resource settings
Resource settings store authorisation policy limits associated with individual items — for example, how many times an item can be used, or a monetary cap on a service. The authorisation engine evaluates these at runtime.
For more detail, see Resource Settings.
Item types
Items are distinguished by their item_type. The following types are examples from the standard catalogue setup, not a closed list:
| Type | Usage |
|---|---|
| CATEGORY | Hierarchy node (cannot be reclassified once children exist) |
| MERCHANT_CATEGORY | Merchant classification node |
| PROCEDURE | A specific service offering (e.g. CT Scan) |
| SERVICE | A general service |
| INSURANCE_PRODUCT | An insurance product |
| PRODUCT | A physical or digital product |
| PLAN | A subscription plan |
| CREDIT_BUNDLE | A prepaid credit package |
| VERIFICATION | A verification service |
The item type list is extensible, so additional product, service, or category types can be introduced as catalogue requirements expand.
Multi-tenancy
The entire GPM model is tenant-scoped. Catalogue data is isolated by tenant, while public-facing items such as categories, services, insurance products, and items linked to public price lists can be shown on marketplace pages without requiring login.
Internationalisation
All user-facing text can have locale-specific translations, allowing the API to return the appropriate language for the requesting user.