Skip to content

Know what every subscriber unlocks — and why.

A subscription is a changing relationship, not a purchase row. CherrySub gives product teams the current access state, the event that changed it, and the revenue consequence in one place.

Real lifecycle states in sandbox. No production customer data required.

State

pro · active

What the customer can use right now.

Reason

recovered

The store event that moved the state.

Effect

+$9.99 MRR

The number that changed with it.

Every change, one explanation.

Open a customer, a chart, or a failed integration. The same signed history explains all three instead of forcing product, support, and engineering to reconcile screenshots.

Lifecycle
From trial to recovery without losing the thread.
Each store event becomes a legible product state. Access policy stays stable while billing changes underneath it.
Trial7 days · 28 Jul
ActivePro monthly · 4 Aug
GraceRetry 1 · 12 Aug
RecoveredNo access gap · Today
Access levels
Products change. Access names do not.
Pricing, duration, and store IDs map into app-owned permissions.
Signed change
The event carries the answer.
Support can see exactly why access moved without asking engineering to query two stores.
CherrySub-Signature: t=1755518400,v1=9f2c…
{
  "type": "subscription.renewed",
  "reason": "billing_retry_recovered",
  "access_levels": { "pro": "active" }
}
Saved audience
Grace-period customers, without a new query.
Segments remain attached to the same state model used by charts and customer timelines.
Recovered1,284
In grace507
Retrying294

Store products are inputs. Your product model is the contract.

Keep pricing experiments and store-specific identifiers at the edge. Let your app ask one stable question everywhere.

Store-shaped product logic

Store identifiers leak into client code.
Pricing changes require access-logic changes.
Support reconstructs state from purchase screenshots.

App-owned access logic

The app asks has("pro") on every platform.
Products can change without changing permissions.
Every access change keeps its signed reason.

Follow one test subscriber from purchase to access.

Start in sandbox, map one product, and watch the customer timeline resolve.