SaaSFlow
ConceptsCommon objects

Subscriptions

A customer's ongoing commitment to pay for a product on a recurring basis. Captured as discrete events that drive every subscription report.

A subscription is a customer's ongoing commitment to pay for a product on a recurring basis. SaaSFlow doesn't store subscriptions as a single "active" record — it stores every change to a subscription as a discrete subscription event, and reconstructs the current state by replaying those events.

Where subscription data comes from

SourceWhat lands as subscription data
StripeEvery Subscription, SubscriptionItem, and Invoice event becomes a SaaSFlow subscription event.
HubSpotCommerce subscriptions and contracts.
ManualYou can add subscription events from the customer's detail page — useful for off-Stripe contracts (annual deals, special pricing).

A subscription event is always attached to a customer and a plan item (the priced variant under a product).

Event types

TypeMeaning
NewThe customer started a paid subscription for the first time, or a previously-churned customer started fresh.
ExpansionExisting subscription grew — upgraded plan, added seats, added an add-on. Recurring revenue went up.
ContractionExisting subscription shrank — downgraded plan, removed seats, removed an add-on. Recurring revenue went down but the customer is still active.
ChurnThe customer cancelled. Recurring revenue drops to zero for them.
ReactivationA previously-churned customer started a new subscription. Counts separately from "new" so you can analyse win-back.

The Subscriptions report groups events by period and shows the net impact of each type.

Two timestamps per event

Each event carries two dates that matter for analytics:

  • Effective time — the date the change took financial effect (when revenue recognition begins / ends).
  • Committed time — the date the customer or counterparty committed to the change (when the contract was signed).

These are usually the same date. They differ when there's a gap between booking and go-live — for example, a customer signs an annual contract on Jan 1 that starts Feb 1. The distinction drives the MRR vs CMRR split — see MRR & subscriptions for what that means in the reports.

Editing events

Editing a single event is supported (correct an amount, change the type, attach to a different plan item) but rare in practice. Most events come from integration sync and re-running a full sync is usually the right answer when the underlying data was wrong.

You can also delete an event from the customer's event log if it was clearly created in error — for example, a duplicate after a manual entry that crossed with an integration sync.

On this page