Skip to main content

Pricing model blueprint (plan-centric)

This guide explains how to map a business pricing model into Vluna with billing plan as the center.

It focuses on concept wiring and ownership boundaries, not endpoint syntax.

Core principle​

In Vluna, your pricing model is the combination of:

  • what is sold: billing plan
  • what is allowed/enforced: entitlements + gate policies
  • who gets it and when: plan assignment
  • what exceptions apply: contract terms (optional)
  • how funding enters the account: plan-issued credits, grants, purchases

Current boundary:

  • billing plan does not directly carry per-plan meter price overrides.
  • Runtime pricing is based on meter pricing baseline, optionally adjusted by contract-term-based pricing where applicable.

What pricing means in this model​

In this document, pricing in runtime decisions is:

  • meter pricing (baseline)
  • optional contract-term-based pricing (for negotiated exceptions)

It includes:

  • meter pricing rules used to compute priced outcomes
  • optional contract-term parameters used by rating policies (where applicable)

It does not include:

  • access configuration (entitlements)
  • enforcement limits/rate control (gate policies)
  • funding source state (credits/grants/purchases)

Runtime effect:

  • usage path: commit reflects active meter pricing (and applicable contract terms) at commit time
  • outcome path: ratings reflect active policy + pricing/term inputs for the evaluated window

Current model note:

  • Meter prices are configured on meter_code and should be treated as stable baseline pricing.
  • Billing plans do not act as first-class per-plan meter-price override carriers.
  • Commercial differentiation across plans is typically expressed via entitlements/limits and funding design (for example, included credits via plan-linked grants).

Three primary chains​

Use these three chains to reason about plan-centered pricing design:

  1. Access chain:
    • billing plan -> entitlements -> feature_family_code / feature_code
    • Purpose: define what the account is allowed to use.
  2. Feature-to-meter chain:
    • entitlements-selected feature_family_code / feature_code -> meter_code
    • Purpose: determine which meters are used by allowed usage paths.
  3. Enforcement chain:
    • billing plan -> limits/policy intent -> gate policy bundle/policies -> runtime allow/deny/hints
    • Purpose: define how much and how fast the account can consume.

Pricing baseline chain (global to realm/account context):

  • meter_code -> meter pricing baseline (+ optional contract-term-based pricing) -> priced outcome

These chains operate together at runtime and converge into ratings/settlement/ledger.

Concept wiring​

feature_families / features / meters
-> define billable resource vocabulary

billing plan
-> packages commercial intent
-> references entitlements / limits / funding strategy

plan assignment
-> attaches plan to billing_account_id with effective window

contract terms (optional)
-> customer-specific pricing/term overrides

funding flows
-> plan-issued credits / grants / checkout purchases

runtime
-> usage path: authorize -> commit
-> outcome path: events -> event rating policies -> ratings

rating / settlement / ledger
-> authoritative billable and accounting outcomes

What to configure for each concept​

ConceptWhy it exists in pricing modelWhat to define first
billing plansellable commercial packageplan code/id, included entitlements, limit intent, funding strategy
plan assignmentmakes plan effective for one accounttarget billing_account_id, plan code or id, window start/end
entitlementsfeature access scope under a planfeature_family_code and feature inclusion boundaries
gate policy bundle/policiesruntime enforcement behaviorbundle_key, policy kind (rate/quota), policy shape
contract terms (optional)negotiated customer exceptionsexplicit override scope, effective lifecycle, audit ownership
meter pricingcanonical unit-price baselinemeter-level price rows and effective-time governance
funding objectsmake monetary value available to consumeplan-issued credit rules, grant program/assignment rules, purchase path
runtime signalsproves model works in productiondenial reasons, hints, idempotency behavior, pricing outputs
  1. Define resource vocabulary: feature families, features, meters.
  2. Define billing plan for each commercial offer.
  3. Attach entitlements and enforcement intent to plans.
  4. Define assignment strategy:
    • direct assignment for sales-led flows
    • provider-backed checkout for self-serve flows
  5. Add optional contract terms only for negotiated exceptions.
  6. Decide funding strategy (plan-issued credits, grants, purchases).
  7. Verify runtime behavior through authorize/commit and/or events-to-ratings.
  8. Verify accounting traceability through ratings, settlement, and reports.

Decision boundaries (avoid model drift)​

  • Keep catalog vocabulary stable (feature_family_code, feature_code, meter_code).
  • Keep the three chains independent in design:
    • do not use billing profile fields as entitlement inputs
    • do not encode pricing decisions as access flags
    • do not treat enforcement outcomes as a substitute for pricing configuration
  • Treat billing plan as the commercial baseline; use contract terms as additive exceptions.
  • Do not couple billing profile fields to entitlement or pricing decisions.
  • Make effective-time behavior explicit for assignments, upgrades, downgrades, and cancellations.
  • Require support-grade traceability from billed outcome back to effective plan/terms.

Verification checklist​

  • For any account and timestamp, you can explain:
    • which plan was effective
    • which terms (default vs contract override) applied
    • which funding source paid
    • which rating/ledger records prove the outcome
  • Plan changes are idempotent and auditable.
  • Runtime outcomes (allow/deny/price) match intended plan semantics.