Subscription Management

Detailed guide

odoo subscription
recurring billing
subscription management
MRR
ARR
auto-renewal
subscription lifecycle

Terminology

Table

TermDefinition
SubscriptionRecurring service with automatic periodic billing
Recurring PeriodBilling cycle (daily, weekly, monthly, yearly)
MRRMonthly Recurring Revenue
ARRAnnual Recurring Revenue
Churn RatePercentage of customers who cancel subscriptions
Trial PeriodFree trial period
RenewalSubscription renewal
UpsellUpgrade to higher plan
DownsellDowngrade to lower plan

Prerequisites

Key points

  • Install **Sale Subscription** module (sale_subscription)

  • Set up automatic payment methods (credit card, bank transfer)

  • Configure email templates for renewal notifications

  • Set up access rights for Subscription Manager group

  • Configure accounting journal for recurring revenue


Set Up Subscription Products

Steps

  • 1. Go to **Sales → Products → Products**

  • 2. Create new product or edit existing one

  • 3. In **General Information** tab, select **Product Type = Service**

  • 4. Enable **Recurring** option

  • 5. Set **Recurring Period**: Daily, Weekly, Monthly, Yearly

  • 6. Enter **Recurring Price** (price per cycle)

  • 7. Configure **Invoicing Policy**: Prepaid or Postpaid

  • 8. Set **Trial Period** if needed (e.g., 14 days free)

  • 9. Save product


Create Subscription

Steps

  • 1. Go to **Sales → Subscriptions → Subscriptions**

  • 2. Click **Create** to create new subscription

  • 3. Select **Customer**

  • 4. Add **Subscription Products** to order lines

  • 5. Set **Start Date**

  • 6. Configure **Recurring Period**

  • 7. Select **Pricelist** if applicable

  • 8. Set **Payment Terms**

  • 9. Click **Confirm** to activate subscription


Subscription Lifecycle

Table

StatusDescriptionActions
DraftSubscription being draftedEdit, confirm
In ProgressActive, auto-generates invoicesMonitor, upgrade, downgrade
To RenewExpiring soon, needs renewalAuto or manual renewal
ClosedClosed (completed or cancelled)View history, reactivate
CancelledCustomer cancelled earlyAnalyze churn reason

Automatic Renewal

Steps

  • 1. Go to **Sales → Configuration → Settings**

  • 2. In **Subscriptions** section, enable **Automatic Renewal**

  • 3. Set **Renewal Reminder** (days before expiry to send email)

  • 4. Configure **Payment Method** for auto-renewal (credit card, SEPA)

  • 5. Set **Grace Period** (time after failed payment)

  • 6. Configure **Retry Payment** (number of retry attempts)

  • 7. Save configuration


Upgrade / Downgrade Plans

Steps

  • 1. Open subscription to modify

  • 2. Click **Upsell** (upgrade) or **Downsell** (downgrade)

  • 3. Select new product or change quantity

  • 4. System automatically calculates **Prorated Amount**

  • 5. Choose **Apply Immediately** or **Apply at Next Renewal**

  • 6. Confirm changes

  • 7. System creates credit note (downgrade) or additional invoice (upgrade)


Track MRR/ARR

Key points

  • Go to **Sales → Reporting → Subscriptions Analysis**

  • View **MRR** (Monthly Recurring Revenue) by month

  • Calculate **ARR** = MRR × 12

  • Analyze **New MRR** (from new customers)

  • Track **Expansion MRR** (from upsells)

  • Measure **Churn MRR** (lost from cancellations)

  • Calculate **Net MRR Growth** = New + Expansion - Churn

  • Export reports by **Customer**, **Product**, **Sales Team**


Manage Recurring Invoices

Steps

  • 1. System auto-generates invoices per **Recurring Period**

  • 2. Go to **Sales → Subscriptions → Subscriptions to Invoice**

  • 3. View list of subscriptions needing invoices

  • 4. Click **Create Invoices** for batch creation

  • 5. Invoices created in **Draft** status

  • 6. Confirm and send invoices to customers

  • 7. Track payments in **Accounting → Customers → Invoices**


Handle Failed Payments

Steps

  • 1. System auto-retries payment per **Retry Payment** config

  • 2. If failed, sends reminder email to customer

  • 3. Subscription moves to **Payment Failed** status

  • 4. During **Grace Period**, customer retains access

  • 5. After grace period, subscription becomes **Suspended**

  • 6. Customer updates payment method

  • 7. Click **Retry Payment** to try again

  • 8. If successful, subscription returns to **In Progress**


Subscription Templates

Steps

  • 1. Go to **Sales → Configuration → Subscription Templates**

  • 2. Click **Create** to create new template

  • 3. Name template (e.g., "Basic Plan", "Premium Plan")

  • 4. Add **Products** to template

  • 5. Set default **Recurring Period**

  • 6. Configure **Trial Period**

  • 7. Set **Pricing** and **Discounts**

  • 8. Save template

  • 9. When creating new subscription, select template for quick setup


Churn Analysis

Key points

  • Go to **Sales → Reporting → Subscriptions Analysis**

  • Filter by **Status = Cancelled**

  • Analyze **Churn Rate** = (Cancelled subscriptions / Total subscriptions) × 100%

  • View **Churn Reason** if configured

  • Analyze by **Product**, **Customer Segment**, **Sales Team**

  • Calculate **Revenue Churn** = Revenue lost from cancellations

  • Compare **Voluntary Churn** (customer-initiated) vs **Involuntary Churn** (payment failure)

  • Propose customer retention strategies


Portal Integration

Steps

  • 1. Customer logs into **Customer Portal**

  • 2. Go to **My Account → Subscriptions**

  • 3. View list of active subscriptions

  • 4. View invoice and payment history

  • 5. Download PDF invoices

  • 6. Update payment method

  • 7. Upgrade / Downgrade plan (if allowed)

  • 8. Cancel subscription (if allowed)


Best Practices

Key points

  • Set up **trial period** to increase conversion rate

  • Configure **auto-renewal** to reduce churn from forgotten renewals

  • Send **renewal reminder** 7-14 days in advance

  • Set **grace period** of 3-7 days for failed payments

  • Use **subscription templates** to standardize plans

  • Track **MRR/ARR** monthly to measure growth

  • Analyze **churn rate** and cancellation reasons

  • Provide flexible **upsell/downsell** options

  • Integrate **payment gateway** supporting recurring payments

  • Automate **dunning process** for debt collection


Common Issues

Table

IssueCauseSolution
Invoices not auto-generatedCron job not running or subscription not dueCheck Scheduled Actions, manually run Create Invoices
Auto-payment failedCard expired, insufficient funds, payment gateway errorSend reminder email, allow customer to update payment method
MRR incorrectSubscription not confirmed, or discount calculated wrongCheck subscription status, verify pricing rules
Customer not receiving renewal emailsEmail template not configured or email server errorCheck Settings → Email Templates, test send email
Upsell prorated amount wrongProrated configuration incorrectGo to Settings → Subscriptions, check Prorated Billing

FAQ

Key points

  • **How to create free trial?** In subscription product, set Trial Period (e.g., 14 days) and Trial Price = 0.

  • **Can I change billing cycle mid-term?** Yes, use Upsell/Downsell to change recurring period, system auto-calculates prorated amount.

  • **How can customers self-manage subscriptions?** Enable Customer Portal, customers can view, upgrade, downgrade, and cancel subscriptions online.

  • **What's the difference between MRR and ARR?** MRR is monthly recurring revenue, ARR = MRR × 12 (annual recurring revenue).

  • **How to handle mid-cycle cancellations?** Options: prorated refund, allow usage until end of cycle, or no refund (per policy).

  • **Can I create subscription from quotation?** Yes, add recurring products in quotation, confirmation auto-creates subscription.

  • **How to track churn rate?** Go to Subscriptions Analysis, filter Status = Cancelled, calculate % vs total subscriptions.

  • **Can I set discounts for subscriptions?** Yes, use Pricelist or Coupon/Promotion to apply discounts to recurring products.

  • **Does subscription integrate with accounting?** Yes, auto-creates journal entries for deferred revenue per cycle.

  • **How to send renewal reminders?** In Settings → Subscriptions, set Renewal Reminder (days before expiry) and configure email template.