Freemius is the billing layer behind a large share of commercial WordPress plugins and themes, and its licence-based model behaves differently from SaaS subscriptions in one decisive way: a meaningful share of revenue is often lifetime licences, which never renew and never churn, and which should not carry a recurring multiple.
TL;DR: Freemius sells WordPress plugins and themes on a licence model, where lifetime deals and non-renewing annual licences behave nothing like SaaS subscriptions. Here is how to read it.
Every churn calculation needs the same seven things: a stable customer identifier, subscription status, recurring amount and currency, billing interval and term, start date, cancellation or end date, and ideally the date of the last successful payment. (Why each one, and what breaks without it →) What changes between platforms is where those fields live and which status values mislead you.
Freemius models plugins, plans, licences, subscriptions and payments. A licence grants access and has an expiry; a subscription is the recurring payment arrangement behind an auto-renewing licence. Lifetime licences have no subscription at all. Because the WordPress plugin market sells heavily on annual licences with updates and support, the renewal decision is annual and highly visible, which makes renewal-rate analysis unusually informative here.
| Needed | Where it lives in Freemius | Watch out for |
|---|---|---|
| Account identifier | User ID, plus licence ID and subscription ID | One user can hold licences across several plugins. Aggregate by user. |
| Subscription status | Active, cancelled, or absent entirely for lifetime licences | The absence of a subscription is itself the key signal. Do not read it as missing data. |
| Amount and currency | Subscription or licence amount and currency | Renewal amounts often differ from initial amounts because of renewal discounts. |
| Billing interval and term | Annual, monthly or lifetime | Lifetime must be excluded from recurring revenue entirely. |
| Start date | Licence created date, or first payment date | Straightforward. |
| Cancellation or end date | Subscription cancellation date, plus licence expiry | A cancelled subscription still leaves a licence valid until expiry. |
| Last successful payment date | Most recent payment on the subscription | Needed to distinguish an expired licence from a failed renewal. |
These are the errors we see repeatedly on this platform. Each one is silent: the analysis completes and returns a number that is wrong.
Lifetime deals are common in the WordPress market and they are one-time revenue with an ongoing support obligation, which is close to the opposite of a subscription. They should be excluded from MRR, valued separately, and counted as a cost of service going forward. A Freemius business with a large lifetime cohort can look far more recurring than it is.
Where a renewal is discounted relative to the first year, revenue per customer declines on a known schedule even with perfect retention. Model the renewal amount, not the acquisition amount, and check whether the discount is permanent or first-renewal only.
Almost all decisions land in the licence anniversary month, so monthly churn is close to meaningless and the annual renewal rate is close to everything. Build the renewal calendar and compute the observed renewal rate on cohorts that have actually reached an anniversary.
Licences expire because a subscription was cancelled, because a renewal payment failed, or because the licence was never auto-renewing. Those are voluntary churn, involuntary churn and a scheduled ending respectively, and only the payment history distinguishes them.
Vague requests produce filtered exports. This wording asks for the complete set in the platform's own vocabulary, which is what gets you a usable file first time:
Please export all Freemius licences, subscriptions and payments for the full history, with user ID, plugin, plan, licence ID, subscription ID where one exists, amount and currency for both initial and renewal, billing period including lifetime, created date, expiry date, cancellation date, and payment history. Please flag lifetime licences explicitly and state whether renewals are discounted relative to first purchase.
One check first, and it is the same on every platform: count the rows that carry a cancellation or end date. If none do across a multi-year Freemius export, the file was filtered to active subscriptions and every churn figure you compute from it will come out at zero. That single defect causes more wrong churn numbers than every definitional argument put together, and it is fixed with one email rather than with analysis. The three further checks — row count, MRR reconciliation and history length — take another five minutes.
Once you have a clean export, the analysis is the same regardless of where it came from: recompute churn in both logo and revenue terms, build the renewal calendar, check concentration on parent entities rather than accounts, and test whatever the seller has claimed. The seller-claims pages cover the twelve claims worth testing and the arithmetic for each, and the 23-point checklist is the short version.
Official Freemius documentation: https://freemius.com/help/documentation/. Export layouts change; the data model and the traps above do not.
All billing platforms → · Already integrated: Stripe, ChartMogul, ProfitWell, QuickBooks.
Every check on this page can be run by hand in a spreadsheet, and if you have the time you should. If you would rather not: send us the target's subscription export and we run the full human-reviewed analysis — logo churn, revenue churn, customer concentration, annual-plan decay, zombie MRR and an A–F revenue-quality grade. The free Starter tier covers one CSV per month, which is enough to check a single deal.
See a sample report → · Get the free 23-point checklist →
As one-time revenue with an ongoing support and update obligation, not as recurring revenue. They belong outside MRR and outside the subscription multiple, and the support cost of servicing them should be treated as a going-forward expense. A large lifetime cohort makes a business look more recurring than it is.
Because renewal pricing is frequently discounted relative to the first purchase. Even at a perfect renewal rate, revenue per customer steps down at the first anniversary. Model the renewal amount rather than the acquisition amount, and check whether the discount applies once or to every renewal.
The observed annual renewal rate on cohorts that have actually reached an anniversary, not a monthly churn rate. With annual licences, almost every decision lands in the anniversary month, so a monthly figure mostly measures the calendar. Build the renewal calendar first.