Last verified: 28 September 2026
Value Exchange Disclosure
Sovern's value-exchange model — auto-projected from canonical registries. Substrate code defines only schemas, primitives, and flow plumbing; commercial terms live in runtime configuration per AGENTS.md Rule 22.
Generated from lib/registry/value-exchange-axes-registry.ts, lib/registry/compensation-models-registry.ts, lib/registry/collection-policy-statuses-registry.ts, lib/registry/pricing-flow-templates-registry.ts
No hardcoded pricing (Rule 22)
Per AGENTS.md Rule 22: no literal currency amounts, percentages, or entity-named pricing branches anywhere in substrate code. All commercial terms live in runtime configuration and pricing flows. Substrate ships only schemas, rules engines, primitives, and flow invocation plumbing. Six CI guards enforce this invariant including this trust-page anti-drift guard.
Value-exchange axes (7)
Axis 1 — Environment
scope: Per-environment operator fee (covers hosting, support, ops)
who charges: Org operating the env (in their Business Expression) · who pays: Org consuming the env
Axis 2 — Expression
scope: Per-expression access fee
who charges: Expression steward (in their Business Expression) · who pays: Org granted access
Axis 3 — Organization
scope: Per-org substrate fee
who charges: Env operator or expression steward · who pays: The organization
Axis 4 — Space
scope: Per-space tier (A4 tenant boundary)
who charges: Env operator / expression steward · who pays: Space host org
Axis 5 — Participant
scope: Per-human-participant with overage allowance
who charges: Space host org · who pays: Space host org (on behalf of members)
Axis 6 — Agent presence
scope: Per-AI-agent enrolled in a space (BB.sub6; distinct from seat)
who charges: Space host org · who pays: Space host org
Axis 7 — Usage meter
scope: Per-unit usage (compute, AI tokens, storage, anchors, invocations, flow-runs, attestations)
who charges: Env operator / expression steward · who pays: Org consuming
Cross-cutting shapes (2)
marketplace_revenue_share — Marketplace revenue share
% take on any transaction through any of the three marketplace surfaces (Sovern Catalog, Internal Market, External Store per AA.sub1); configurable per surface, per plan, per contract; no default hardcoded. · requires revenue-attestation primitive: no
revenue_cash_outcome_share — Revenue / cash / outcome share
Y% of customer's revenue / net cash / profit / completed-outcome (the 'grow with you' shape); requires revenue-attestation primitive (opened as horizon §ZAM ZÆ5). · requires revenue-attestation primitive: yes
Compensation models (7)
fixed — Fixed
parameters: amount, currency, period · ships v1: yes · requires attestation primitive: no
notes: The existing PlanCatalogEntry case
per_unit — Per unit
parameters: unit_price, currency, meter_key · ships v1: yes · requires attestation primitive: no
notes: Per-invocation, per-token, per-listing, per-anchor
tiered — Tiered
parameters: tiers[] with (threshold, rate, currency) · ships v1: yes · requires attestation primitive: no
notes: Graduated seat pricing, graduated meter pricing
hybrid — Hybrid
parameters: components[] composing any of above · ships v1: yes · requires attestation primitive: no
notes: Multi-axis pricing flows
revenue_share — Revenue share
parameters: percentage, currency, attestation_primitive_ref · ships v1: no · requires attestation primitive: yes
notes: Requires §ZAM ZÆ5 revenue-attestation primitive before operational
cash_share — Cash share
parameters: percentage, currency, attestation_primitive_ref · ships v1: no · requires attestation primitive: yes
notes: Same — requires §ZAM ZÆ5
outcome_share — Outcome share
parameters: percentage, outcome_event_ref · ships v1: no · requires attestation primitive: yes
notes: Requires attested-outcome primitive (subset of §ZAM ZÆ5 or separate horizon)
Collection policy statuses (4)
collected — Collected
Gross price collected at period close per pricing-flow output.
deferred — Deferred
Collection deferred to a future date (e.g., trial period); requires `collect_at` timestamp. · requires field: collect_at
discounted — Discounted
Discount applied as a percentage of gross; requires `percentage` numeric value. · requires field: percentage
waived — Waived
Charge waived (e.g., personal space for individual; partnership allocation). When applied out-of-normal-policy, requires `attestation_id`. · requires field: attestation_id (when out-of-normal-policy)
Pricing flow templates (4)
fixed_period_flow — Fixed period flow
The existing PlanCatalogEntry behaviour wrapped as a flow (backwards-compat path for current `system_settings.billing.plans` entries). Fixed-period fee alignment per BB.sub4.
input: PricingFlowInput per BB.sub4 · output: PricingFlowOutput per BB.sub4 with single line item · ships v1: no
per_seat_with_overage_flow — Per seat with overage flow
Fixed allowance + per-excess-seat rate.
input: PricingFlowInput with `participant_count` per space · output: PricingFlowOutput with line items for fixed allowance + overage · ships v1: no
usage_metered_flow — Usage metered flow
Reads `meter_readings`; applies per-unit rates.
input: PricingFlowInput with `meter_readings` · output: PricingFlowOutput with line items per meter · ships v1: no
hybrid_multi_axis_flow — Hybrid multi-axis flow
Composes any subset of the 7 axes.
input: PricingFlowInput composed across axes · output: PricingFlowOutput with multi-axis line items · ships v1: no
Future expansion (§ZAL horizon)
Per the §ZAL horizon stub, the value-exchange substrate will be extended with the value_exchange_attestations table (J6.BB.4), pricing-flow operational behaviour (J6.BB.3), and the J Wave 6 commerce-module decomposition. Templates are shape-only at v1 and throw E_TEMPLATE_NOT_OPERATIONAL_AT_V1. See docs/architecture/DECISIONS.md §ZAL when published.