Go to Items

1. Definition 2. Functional Requirements 3. Syntax 4. Semantics 5. Conformance Testing

1 Definition

A Data Type defining the rules, parameters, and conditions under which a service is offered, billed, chosen, settled, and accessed.

2 Functional Requirements

Function Description
Pricing Intent Specifies the high-level pricing strategy selected by the provider or by the user (e.g., one_time, subscription, pay_per_use).
Currency Context Defines the currency and value representation for all monetary fields (via CurrencyObject).
Model Components Identifies the pricing model sections required by modelType (e.g., oneTime, subscription, payPerUse, etc.).
Constraints Communicates validation rules such as mandatory fields per model type, minimum price ≥ 0, Idurations for time-based terms.
Discount Logic Includes optional discount definitions and applicability scope (percentage, fixed, promo_code).
Hybrid Composition Enables combining multiple pricing models into a single plan with optional weighting for calculation order.
Access Conditions Specifies time windows, quotas, and upgrade paths for freemium or tiered models.
Execution Parameters Captures operational parameters for billing cycles (e.g., billingPeriod, commitmentTerm, autoRenew).
Trace Metadata Provides provenance for auditability (e.g., schema version, originating module, decision path).
Semantic Tags Domain-specific annotations for categorising pricing plans (e.g., premium, promotional).
Fallback Status Indicates whether a pricing configuration is primary, deferred, or a fallback option.
DataExcgangeMetadata Data describing and/or regulating the use, origin, authorisation, and security state of a Data Instance.
Trace Information about the Process producing the SPM and the Time of production.
DescrMetadata Any free-text descriptive metadata.

3 Syntax

https://schemas.mpai.community/MMM4/V2.2/data/ServicePricingModel.json

4 Semantics

Label Description
Header Service Pricing Model Header – Standard “MMM‑SPM‑Vx.y”.
MInstanceID Identifier of the M‑Instance.
MEnvironmentID Identifier of the M‑Environment.
SPMID Identifier of this Service Pricing Model instance.
SPMContext Whether this SPM describes a Service or an AssetPosting.
SPMTime Reference time for this SPM (OSD/V1.5 Time).
ModelType Primary pricing model: OneTime, Subscription, PayPerUse, PayPerTime, Freemium, Tiered, AdSupported, Hybrid. Use Hybrid when combining multiple models.
CurrencyObject Currency object defining the currency for prices and values used in this SPM.
OneTime One‑time purchase model.
├─ Price One‑time price (number ≥ 0).
├─ IncludesUpdates Whether updates are included (boolean).
└─ SupportWindow Support window (OSD/V1.5 Time).
Subscription Subscription pricing data.
├─ RecurringPrice Recurring fee per billing period (number ≥ 0).
├─ BillingPeriod Billing period (e.g., daily, monthly, yearly) — MMM4/V2.2 BillingPeriods.
├─ CommitmentTerm Commitment term (ISO 8601 duration or fixed term).
├─ AutoRenew Auto‑renewal flag (boolean).
└─ Trial Trial details.
├─ Duration Trial duration (OSD/V1.5 Time).
└─ Price Trial price (MMM4/V2.2 Value).
PayPerUse Usage‑based (metered) pricing.
├─ Meter Metered resource (e.g., requests, GB, minutes, transactions).
├─ Unit Unit of measure (e.g., request, GB, minute).
├─ Rate Base price per unit (number ≥ 0).
├─ MinCommit Minimum usage commitment per cycle (number ≥ 0).
├─ FreeQuota Units included at no charge per cycle (number ≥ 0).
├─ OverageRate Price per unit beyond quota or tiers (number ≥ 0).
└─ Tiers[] Tiered usage brackets.
├─ Threshold Upper bound for the tier (units).
└─ Rate Rate for that tier (number ≥ 0).
PayPerTime Time‑window pricing.
├─ Window Rental window (OSD/V1.5 Time).
├─ Price Price per window (number ≥ 0).
└─ GracePeriod Grace period (time/duration).
Freemium Freemium model.
├─ FreeFeatures[] List of free features (strings).
├─ UpgradePath Reference to target tier/subscription (string).
└─ UsageLimits Free‑tier usage limits.
├─ Meter Meter type.
├─ Unit Measurement unit.
└─ Limit Maximum free usage (number ≥ 0).
Tiered Tiered plan.
└─ Tiers[] Array of tiers.
├─ Name Tier name.
├─ Features[] Features included.
├─ Price Tier price (number ≥ 0).
├─ BillingPeriod Tier billing period (MMM4/V2.2 BillingPeriods).
└─ Limits{Key} Arbitrary numeric limits (key → number ≥ 0).
AdSupported Ad‑supported access.
├─ AdProvider Ad network/provider.
├─ PrivacyPolicyUrl URL of privacy policy (URI).
└─ OptOutAvailable Whether opt‑out is available (boolean).
Discounts[] Discount definitions.
├─ Type One of: Percentage, Fixed, PromoCode.
├─ Value Discount value (number ≥ 0).
├─ AppliesTo Scope of discount (e.g., section, tier, meter).
└─ Validity Validity interval (OSD/V1.5 Time).
Hybrid[] Hybrid composition (combine sections).
├─ Ref One of: OneTime, Subscription, PayPerUse, PayPerTime, Freemium, Tiered, AdSupported.
└─ Weight Optional weight/priority (number ≥ 0).
SPMStatus Either “Model” or “Final”.
Chosen Frozen snapshot of the chosen model and parameters.
├─ ModelType Chosen model type.
└─ Parameters Parameter set at selection time.
├─ EffectivePeriod Validity window.
│ ├─ Start Start time.
│ └─ End End time.
├─ Allowances[] Frozen quota allowances.
│ ├─ Meter Meter type.
│ ├─ Unit Unit of measure.
│ ├─ Quantity Quantity allowed.
│ ├─ Window Applicable window label.
│ └─ Rollover Whether unused quota rolls over.
├─ Overage Overage pricing.
│ ├─ Rate Overage rate.
│ └─ Unit Overage unit.
├─ RateLimit Rate limiting constraints.
│ ├─ MaxPerWindow Maximum allowed per window.
│ ├─ Window Window size.
│ └─ Burst Burst allowance.
└─ PriceBreakdown Optional breakdown of base price, discounts, and final charges.
Settlement Payment proof for the SPM‑governed transaction.
├─ SettlementTime Time of settlement (OSD/V1.5 Time).
├─ TargetID Identifier of relevant service/asset/licence.
├─ Transaction Transaction reference (MMM4/V2.2 Transaction).
└─ Evidence[] Optional receipts or provider references (Type, ID).
AssetPosting Data for posting an Asset under this SPM.
├─ AssetID ID of the asset being posted.
├─ Licence / LicenceTerms Terms under which the asset is licensed.
├─ SenderPreValue Value before transaction.
├─ SenderPostValue Value after transaction.
├─ ReceiverPostValue Value after transaction for receiver.
├─ ValueToSender Final value to sender.
├─ SenderWalletID Wallet of sender.
├─ ServiceProviderWalletID Wallet of service provider.
├─ ServiceProviderLicence Licence of service provider.
├─ ReceiverLicence Licence of receiver.
└─ Transaction Transaction object.
Conditional Rules (ModelType‑driven)
If ModelType = OneTime OneTime required.
If ModelType = Subscription Subscription required.
If ModelType = PayPerUse PayPerUse required.
If ModelType = PayPerTime PayPerTime required.
If ModelType = Freemium Freemium required.
If ModelType = Tiered Tiered required.
If ModelType = AdSupported AdSupported required.
If ModelType = Hybrid Hybrid required.
DataExchangeMetadata Regulated/controlled exchange metadata (AIF/V3.0).
Trace Information about the producing Process and time (AIF/V3.0).
DescrMetadata Free‑text descriptive metadata (≤ 2048 chars).

5. Conformance Testing

A Data instance Conforms with MMM-TEC Service Pricing Model (MMM-TEC) if:

  1. Its JSON Object validates against its JSON Schema.
  2. Any included JSON Object validates against its JSON Schema.
  3. All Data in the JSON Object:
    1. Have the specified Data Types.
    2. Conform with the Qualifiers signaled in their JSON Schemas.

Go to Items