Source: https://www.revvly.ai/docs/concepts/subscription

Customers

# Subscription

The agreement — one customer, one plan, on a cadence, pinned to specific versions.

## Overview

A Subscription pins exactly one of {a Bundle version, a Module version, or neither} plus a list of pinned Variable Component versions. It freezes its base price at creation; renewals and invoices read that frozen number rather than re-resolving pricing rules. Mid-cycle changes become Expansions. Upgrading a pin is an explicit action — there is no implicit propagation of new module or bundle versions. A Subscription can also carry a billing schedule, which changes when it is invoiced without changing what it costs: a prepaid term bills several periods of the plan, and of the components billed ahead with it, on one invoice at signing, and a deferred activation is signed now and switched on later, sitting Pending — out of MRR, renewals, and usage — until it goes live.

## How it connects

This concept highlighted in context. Click a peer to navigate.

Related

Module

Bundle

Variable Component

Subscription

Related

Discount

Client

Subscription Variable Usage

- Belongs to one Client
- Pins exactly one of Bundle / Module / neither
- Pins specific Variable Component versions
- Generates Invoices, emits Lifecycle Events
- Tracks usage via Subscription Variable Usage
- Can have Discounts applied (base price, components, or the whole invoice)

## Key fields

What you’ll see when creating or editing a Subscription.

- **Client**: Who

- **Pinned composition**: Bundle+version OR Module+version OR neither

- **Variable Component refs**: Pinned component versions

- **Base price + currency**: Frozen at creation

- **Original amount + FX rate**: Preserved for imported / converted subscriptions

- **Period**: Monthly / Quarterly / Yearly

- **Status**: Trial / Pending / Active / Cancelled / Grace period…

- **Billing schedule**: Optional — a prepaid term or a deferred go-live, separate from the price

- **Subscription type**: Standard / Trial / Custom (also Acquisition / Renewal / Expansion in some flows)

- **Renewal info**: Next renewal date, grace period, last auto-renewal result

- **Pending migration**: A scheduled bundle/module-version change

- **Discounts & overrides**: Active Discount Instances, plus any base-price / component-rate / billing-timing overrides

## Example

Acme · Pro v2 · Monthly

Pinned

Bundle Professional v2

Price

$49 USD

Status

Active · Next renewal May 23

