Odoo Subscriptions: Manage Recurring Revenue Without a Separate Billing System
Odoo Subscriptions is the recurring-revenue app inside Odoo: convert a won quotation into a subscription contract, auto-invoice each cycle, renew or upsell without re-keying, and report MRR, ARR, churn, and LTV from the same database as CRM and Accounting—so most SMEs do not need a separate Chargebee/Stripe Billing stack for seat-based or simple-tier plans.
TL;DR — Key takeaways
- Renew: extend an active subscription into its next period, with the recurring invoice generated automatically by a scheduled action.
- Proration: decide upgrade/downgrade timing and residual credit rules before go-live; document them on the plan.
- Odoo Subscriptions is the recurring-revenue module inside the Odoo suite.
- Odoo models subscriptions around two ideas: recurring plans and subscription products.
What Odoo Subscriptions Actually Does
Odoo Subscriptions is the recurring-revenue module inside the Odoo suite. According to the official Odoo 19.0 documentation, it is designed to manage recurring revenue through subscription-based products or services, supporting automated invoicing, renewal management, and customer lifecycle tracking.
Crucially, it is not a standalone billing tool bolted onto Odoo. The documentation confirms it integrates natively with Invoicing, CRM, Sales, and Helpdesk, so a lead won in Odoo CRM can become a confirmed quotation in Sales, which becomes a recurring contract in Subscriptions, which posts invoices to Accounting, all without re-keying data or writing an integration.
For an SME, that architecture is the product. Most recurring-revenue businesses stitch together a CRM, a specialist billing engine (Chargebee, Stripe Billing, Recurly), an accounting package, and a metrics tool—then pay someone to keep customer, plan, and invoice records in sync. Odoo collapses that stack into one database. Practitioners on X repeatedly flag the same pain when billing lives outside the ERP: missed renewals, spreadsheet MRR, and churn that exists nowhere as a first-class report.
Odoo's product positioning (including Odoo 19 messaging) also frames prepaid and postpaid billing models in the same module: charge up front for the period, or invoice in arrears, while still automating invoices and stabilizing cash flow. That matters for service retainers (often postpaid or Net-30) and SaaS (often prepaid monthly/annual) sitting in one plan catalog.
Who it fits best: B2B SaaS with seat or tier pricing, agencies and MSPs on retainers, productized service firms, software maintenance contracts, memberships, and field or support packages billed on a cadence. Who should look harder at specialist billing first: pure usage-rated PLG products, complex entitlement graphs, multi-entity revenue waterfalls, or coupon/engine-driven pricing experiments that change weekly.
That does not mean specialist billing tools are obsolete. They win when pricing is extremely complex. For seat-based, flat, or lightly tiered B2B plans—the bulk of Canadian, UK, and US SME subscription businesses—ERP-native billing is usually the simpler system of record.
How Subscriptions Get Created: Recurring Plans and Sales Orders
Odoo models subscriptions around two ideas: recurring plans and subscription products. The official documentation states that recurring plans (previously known as recurrence periods) are configured under Subscriptions app > Configuration > Recurring Plans, and they define the time window in which a subscription is active before it renews. Monthly and Yearly are included by default; custom plans such as Bi-weekly or Quarterly can be added.
One documented constraint is load-bearing: the Days unit of measure cannot be used as a Billing Period for subscription products. The Odoo documentation states explicitly that the daily recurrence period is designated for rentals, and cannot be added to subscription-based sales orders, in order to avoid sales orders that would generate daily invoices.
Plan configuration is where operational policy lives, not just cadence. Partner and implementation guides for Odoo 19 commonly configure, on each recurring plan: billing period, invoice email template, optional product scoping, self-service options, and automatic closing rules when payment does not clear—so unpaid contracts do not sit in In Progress forever. Get the plan template right once; every new contract inherits the same billing and recovery behavior.
A subscription is not created in isolation. The documentation confirms that sales orders with a defined recurring plan automatically become subscriptions. Confirmed quotations and eCommerce checkouts do the same: products marked as Subscriptions and sold on the eCommerce website automatically create and confirm subscription quotations in the backend of Odoo, without any manual step.
This is the mechanism that connects the sales motion to the recurring revenue. Your sales team works in CRM and Sales the way they normally would; the recurring contract is a downstream consequence of a won deal, not a separate process someone has to remember to run.
Renew, Upsell, Close: The Documented Lifecycle Workflows
Odoo 19.0 documents a set of operational workflows that cover the life of a recurring contract after it exists. The main workflow headings on the Subscriptions documentation page are Renew a subscription, Upsell a subscription, and Close a subscription, supported by a self-service layer and automatic payments documentation.
Renew extends an active subscription into a new billing period, generating the next sales order and invoice on schedule. Upsell lets you offer more value to current subscribers on the same sales order, increasing monthly recurring revenue without churning and re-acquiring the customer. Close terminates a subscription and records the reason, which feeds back into retention reporting.
The self-service layer is the fourth pillar. On the recurring plan form, Odoo exposes optional SELF-SERVICE fields including Closable (customers can close their own subscriptions), Upsell (customers can perform quantitative adjustments to their sales order lines, generating upsell quotations), Renew (customers can create a renewal quotation), and Optional Plans (customers can switch plans). This removes a meaningful amount of finance and support overhead, because routine changes do not require a human on your side.
Treat portal self-service as a controlled product decision. For B2B retainers you may disable Closable and force a success conversation before cancel. For B2C or PLG, open Closable and Upsell so customers fix seats and payment methods without tickets. The fields are optional precisely so you can match risk to segment.
Beyond the four lifecycle verbs, Odoo's Subscriptions feature set markets health checks and automated actions: set conditions on subscription templates to flag contracts in good vs bad health, then trigger alerts (emails, scheduled activities, subscription updates, surveys) when a red flag fires. Pair that with close-reason capture so Retention Analysis separates price, product, and payment failure—otherwise the board only sees a single red churn line.
- Renew: extend an active subscription into its next period, with the recurring invoice generated automatically by a scheduled action.
- Upsell: add products or move the customer to a higher tier on the same sales order, lifting MRR in a single transaction.
- Close: terminate the subscription and capture a churn reason, which feeds retention analysis.
- Self-service / portal: customers can close, upsell, renew, and switch plans via optional recurring-plan fields, reducing support load.
- Health checks + automated actions: flag at-risk contracts and trigger emails, activities, or surveys before churn hardens.
Automated Billing, Payments, and the Invoice Trail
A common point of confusion is what happens on each billing cycle. Odoo does not create a brand-new sales order every month as a matter of course. A scheduled action generates the recurring invoice from the original contract on each cycle, posts it to Accounting, and payment is reconciled against the customer's payment method or bank statement.
Odoo also documents a dedicated automatic payments path for subscriptions. Tokenized payment methods (via integrated providers such as Stripe and other Accounting payment providers) can charge on schedule so you run a recurring-revenue business, not a recurring-invoice chase. Failed charges should feed your follow-up / dunning process rather than waiting for someone to notice an open receivable.
Practically, choose a default billing posture per plan family: prepaid monthly/annual for software access and memberships (cash earlier, deferred-revenue work in Accounting), postpaid or invoice-terms for professional retainers where the customer expects Net-15/30. Mixing both in one catalog is fine; mixing both policies on one plan without documentation is how finance disputes start.
This keeps the audit trail clean. There is one subscription record, a chronological set of invoices flowing from it, and matching journal entries in Accounting. Finance teams get a single source of truth rather than a pile of near-duplicate orders, and cash lands against the right invoice without re-keying in a second billing product.
Because the billing engine is shared with Odoo Invoicing and Accounting, the same rules for taxes, payment terms, multi-currency, and bank reconciliation apply. There is no separate reconciliation workflow for subscription revenue—which is the usual integration failure mode when Chargebee or Stripe Billing is system of record and the ERP is only a monthly export.
Reporting: MRR, ARR, Churn, LTV—and Recognized Revenue
This is where Odoo Subscriptions earns its keep for a management team. The Odoo 19.0 subscription reports documentation describes four reporting pages, each answering a different recurring-revenue question.
Subscriptions Analysis covers counts, recurring revenue, and quantities, and can be grouped by sales team, salesperson, plan, product, and next invoice date. Retention Analysis shows cohort retention over time and surfaces churn. MRR Breakdown measures the change in recurring revenue, including the MRR Change measure that tracks the total change in monthly recurring revenue across all subscriptions. MRR Analysis (the MRR Timeline) tracks recurring revenue over time.
On top of those, a Revenue KPIs report exposes the headline numbers most boards ask for: Monthly Recurring Revenue, Net Revenue, Non-Recurring Revenue, Revenue per Subscription, Annual Run-Rate, and Lifetime Value, filterable by company and sales team. Filters let you slice by state (In Progress, Paused, Churned, To renew, Recurring, Non-recurring) so you can answer focused questions rather than staring at one aggregate number.
Odoo's product analytics also surface MRR movement types boards expect: new, churned, expansion (upsell), down/contraction (downgrade), and net new MRR—plus logo churn vs revenue churn and lifetime value. Treat these as operational growth metrics. Read them the way SaaS operators do: New + Expansion + Reactivation inflows, Churn + Contraction outflows, and Net New as the period delta.
Separate operational MRR from accounting revenue. Under ASC 606 (US GAAP) and IFRS 15, cash or invoiced amount is not automatically earned revenue: annual prepays often hit deferred revenue (a liability) and release to the income statement as the service period is delivered. Odoo Accounting documents deferred revenues for invoices for services yet to be rendered, with scheduled generation of deferral entries. Use Subscription reports for growth and retention; use deferred revenue schedules for audit-grade P&L. Boards that mix the two metrics invent false churn and false growth.
For calibration—not as a promise that your business will match these numbers—ChartMogul's SaaS metrics benchmarks show that median early-stage companies sit around 6.2% monthly net MRR churn and 4.1% monthly gross MRR churn, while median companies over $1M ARR land near 2.3% net and 5.3% gross. B2B teams commonly aim for net revenue retention (NRR) above 100% (expansion offsets churn). Use Retention Analysis and close reasons to see whether your problem is voluntary product fit or involuntary payment failure.
| Report | Primary question it answers | Key measures |
|---|---|---|
| Subscriptions Analysis | How many active subscriptions and how much recurring revenue, by team or plan? | Count, recurring revenue, quantity |
| Retention Analysis | How well do we keep customers over time, and where do they churn? | Cohort retention, churn |
| MRR Breakdown | How is recurring revenue changing period over period? | MRR Change, ARR Change, Active Subscriptions Change |
| MRR Analysis / Timeline | What is the trend of monthly recurring revenue? | MRR over time |
| Revenue KPIs | What are the board-level recurring-revenue numbers? | MRR, ARR, Net Revenue, LTV, Revenue per Subscription |
SaaS Metrics Playbook: MRR Movements, Churn, and NRR
Odoo can report the numbers; your team still needs shared definitions so sales, CS, and finance do not argue past each other. The definitions below match common SaaS practice (ChartMogul and similar libraries) and map cleanly onto Odoo's MRR, retention, and Revenue KPI reports.
MRR is normalized monthly subscription revenue from active recurring contracts—not one-time setup fees, not pure usage overages unless you deliberately include them in the recurring product model. ARR (or annual run-rate) is typically MRR × 12 for planning. When a customer pays annually up front, operational MRR still normalizes the contract to a monthly view; accounting may defer the cash separately.
Always split MRR movements. New business MRR is first-time paid contracts. Expansion MRR is upgrades, seat adds, and paid add-ons on existing customers. Contraction (down) MRR is downgrades and seat reductions. Churned MRR is cancellations. Net new MRR is the sum of inflows minus outflows for the period. Without that split, a flat MRR line can hide healthy expansion offsetting a quiet churn problem—or the reverse.
Logo (customer) churn counts accounts lost. Revenue churn weights those losses by MRR. A few large enterprise logos can move revenue churn hard while logo churn looks fine; many small SMB logos can do the opposite. Odoo's close reasons and Retention Analysis only help if you capture why each contract ended and keep non-recurring lines off the recurring product flag.
Net revenue retention (NRR) asks: of the MRR you had at the start of a period, how much remains after expansion, contraction, and churn? NRR above 100% means existing customers grow faster than they leave—the classic path to efficient growth. Gross revenue retention (GRR) ignores expansion and shows pure retention of starting revenue. Negative net churn is the industry phrase for expansion exceeding churn plus contraction.
| Metric | Working definition | Operational use |
|---|---|---|
| MRR | Normalized monthly recurring revenue from active subscription contracts | Weekly ops pulse; exclude pure one-time fees |
| ARR / annual run-rate | Typically MRR × 12 for planning horizon | Board/investor framing; not a cash forecast alone |
| New / Expansion / Contraction / Churned MRR | Period inflows and outflows that explain MRR change | Diagnose growth quality vs vanity net MRR |
| Logo churn | Customers lost ÷ customers at period start | Product/CS health; pair with close reasons |
| Revenue (MRR) churn | Churned (+ optionally contracted) MRR ÷ starting MRR | Finance risk; large logos matter more |
| NRR (net revenue retention) | (Start MRR + expansion − contraction − churn) ÷ start MRR | Efficiency of the installed base; target >100% for B2B |
| LTV | Often ARPA × gross margin ÷ customer churn rate (starting estimate) | Price CAC and payback; refine with real cohorts |
Lead-to-Recurring-Revenue in One Database
Because Subscriptions sits inside the Odoo suite, the path from a cold lead to recognized recurring revenue runs through one database. An opportunity won in Odoo CRM becomes a quotation in Sales, which on confirmation becomes a subscription, which generates recurring invoices in Accounting, which feed the MRR and retention reports.
No middleware, no nightly sync, no duplicate customer records. For a Canadian or UK SME weighing whether to standardize on Odoo, this end-to-end coverage is usually the deciding factor versus a best-of-breed stack where the CRM and billing system are different products from different vendors.
- 01Opportunity won in CRM
A sales opportunity is marked won in Odoo CRM, capturing the customer and the deal.
- 02Quotation with a recurring plan
Sales creates a quotation using subscription products tied to a recurring plan (Monthly, Yearly, or custom).
- 03Confirmed sales order becomes a subscription
On confirmation, the sales order automatically creates and confirms the subscription contract in the backend.
- 04Recurring invoices posted automatically
A scheduled action generates each cycle's invoice from the contract, posts it to Accounting, and reconciles payment.
- 05Reports update in real time
MRR, ARR, churn, and lifetime value reflect the new subscription immediately across all four reporting pages.
The Dynamics 365 Equivalent, and When Each Fits an SME
There is no single Dynamics 365 app called Subscriptions that maps one-to-one onto Odoo Subscriptions. The capability is split across the Dynamics 365 suite, and an SME running a subscription business on D365 typically combines more than one app.
Dynamics 365 Sales is the CRM counterpart to Odoo CRM and Sales: Microsoft's documentation describes it as the app for nurturing sales from lead to order and managing opportunities, quotes, orders, and invoices. But it has no native recurring-billing engine. It manages the sales motion, not the recurring revenue cycle.
Dynamics 365 Finance, the enterprise ERP, provides native subscription billing through Feature management. The Microsoft Learn Subscription billing overview documents three modules that can be used independently or together: Recurring contract billing (recurring billing and price management, contract renewals, consolidated invoicing), Revenue and expense deferrals, and Multiple element revenue allocation for IFRS 15 / ASC 606-style allocation. Microsoft's note is important: Subscription billing is enabled via Feature management and cannot be used together with the separate Revenue recognition feature—you must disable that feature before enabling Subscription billing.
Dynamics 365 Business Central, the SMB-focused ERP, includes a Subscription Billing module with recurring contracts, billing schedules, usage-based billing, automated billing, deferral integration, and revenue recognition, delivered alongside Power BI reporting. Microsoft's 2025 release waves continued to invest here (for example Power BI subscription-billing analytics and UX/terminology alignment), so BC remains a serious path for Microsoft-stack SMEs—not a side module.
The practical contrast for an SME is architectural. On Odoo, CRM, Sales, recurring billing, accounting, and MRR reporting are native modules in one suite. On Dynamics 365, you typically pair Dynamics 365 Sales for the sales motion with Business Central Subscription Billing for recurring invoicing and revenue recognition. Both paths legitimately serve subscription businesses; the right choice depends on whether your organization is standardizing on the Microsoft stack or optimizing for a single unified suite.
| Capability | Odoo Subscriptions | Dynamics 365 Sales | Dynamics 365 Finance / Business Central |
|---|---|---|---|
| CRM and opportunity management | Native (Odoo CRM) | Native | Via D365 Sales |
| Recurring billing automation | Native | Not native | Native (Subscription Billing) |
| Revenue recognition / deferrals | Via Accounting | Not native | Native (Finance) / Native (BC) |
| MRR, ARR, churn, LTV reporting | Native (four report pages) | Not native | Native + Power BI (BC) |
| Customer self-service options | Native (Closable, Upsell, Renew, Optional Plans) | Not native | Via add-ons |
Odoo vs Chargebee or Stripe Billing: When ERP-Native Wins
The real competitor to Odoo Subscriptions for many SMEs is not Dynamics 365—it is the Chargebee / Stripe Billing + HubSpot + QuickBooks (or Xero) stack. Specialist tools are excellent at rating, dunning polish, and developer-centric pricing experiments. They are expensive and fragile when you also need inventory, projects, field service, multi-company accounting, and a single customer master.
A useful rule of thumb from mid-market Odoo implementations: keep Odoo as system of record for contracts, invoices, tax, and deferred revenue when plans are seat-based, flat, or simply tiered; use Stripe (or another provider) as the payment rail, not the contract system. Invert that only when usage metering, credit packs, complex coupons, or multi-subscription hierarchies outgrow what native plans handle cleanly—then specialist billing may own rating while the ERP still owns the ledger.
Practitioners who run usage-based pricing outside the ERP routinely report the same failure modes: MRR math becomes messy at cycle end, mid-cycle overages stall in procurement, and finance cannot reconcile billed usage to recognized revenue without a second system of truth. Hybrid pricing (base subscription plus usage) is rising industry-wide, but hybrid does not automatically require a second billing product if your usage can be posted as ordered quantities or periodic invoice lines into Odoo.
Cost is not only license line items. A consolidated SaaS stack case study pattern shows teams dropping parallel Chargebee + CRM + metrics + glue automation spend once contracts, helpdesk, and accounting share one customer record. For SMEs under roughly mid-market ARR with standard B2B pricing, that consolidation is usually the larger win than any single advanced coupon feature.
If your pricing is simple but payment recovery is the real leak, you do not automatically need Chargebee: tokenized auto-pay, provider retries, Odoo follow-up levels, and a short CS playbook for high-LTV failures often recover more MRR than a new billing SKU. Specialist tools earn their keep when rating logic—not dunning polish alone—is the product constraint.
| Decision factor | Favor Odoo Subscriptions (ERP-native) | Favor Chargebee / Stripe Billing-class tools |
|---|---|---|
| Pricing model | Seats, flat plans, simple tiers, retainers, maintenance contracts | Heavy usage rating, complex entitlements, coupon graphs |
| System of record | Need one customer + invoice + tax + GL trail | Billing can be source of truth; ERP is downstream export |
| Ops footprint | CRM, helpdesk, projects, inventory in same suite | Product-led SaaS with eng-owned billing APIs |
| Finance close | Deferred revenue and multi-currency in Accounting | Need specialized rev-rec export first, ledger second |
| Team size | SME finance + ops without a RevOps eng team | Dedicated billing/RevOps engineering capacity |
Proration, Upgrades, and Failed Payments: The Pitfalls That Break MRR
Clean demos hide the edge cases that destroy trust in your numbers. Mid-cycle upgrades and downgrades must produce a coherent credit or charge for the remainder of the period. Implementation guides for Odoo Subscriptions describe proration on plan changes so the next invoice reflects the true residual value rather than a full double charge. Define whether upgrades bill immediately, at next cycle, or with a separate upsell quotation—then stick to one policy per plan family.
Failed payments are not the same as voluntary churn. Industry operators repeatedly report that a large share of first-attempt declines come from expired cards, insufficient funds, or issuer soft declines—not customers who meant to leave. Subscription operators on X still cite multi-point monthly MRR leakage to expired or declined cards when there is no recovery flow. If you close the contract on the first failure, you manufacture involuntary churn and understate recoverable revenue.
Configure payment retries where your provider supports them, then escalate through Odoo payment follow-up / dunning levels (reminder, stronger notice, service pause, close) with clear ownership. Card-on-file B2C can use short grace; B2B Net-terms need longer and often a human touch for high-LTV accounts before auto-close. Automatic closing on the recurring plan is a safety net, not a strategy.
Capture close reasons so Retention Analysis separates price, product, and payment failures. Without reason codes, the board only sees a red churn line and CS cannot prioritize save plays.
Keep plan change and payment state consistent. A common failure mode in custom portal upgrades is charging after the plan already changed—or changing the plan after a prorated charge failed—leaving entitlements and AR out of sync. Prefer: attempt the charge or confirm the upsell quotation first, then mutate the subscription lines. That sequencing is what specialist billing engines advertise; you can enforce the same discipline in Odoo with standard sales-order and payment workflows.
Finally, separate non-recurring lines (setup fees, hardware, professional services) from recurring plan lines on the same commercial deal. Odoo's Revenue KPIs explicitly surface Non-Recurring Revenue alongside MRR. If everything is tagged recurring, LTV and churn become fiction.
- Proration: decide upgrade/downgrade timing and residual credit rules before go-live; document them on the plan.
- Dunning: treat first declines as recovery work—retry, email, pause—before you mark Churned.
- Grace and auto-close: set Automatic Closing / follow-up delays to match B2B vs B2C collection reality.
- State safety: confirm payment or signed upsell before applying plan changes that raise entitlement.
- Metrics hygiene: keep setup and services off recurring product flags so MRR stays pure.
- Close reasons: required on cancel so logo and revenue churn can be diagnosed, not guessed.
Implementing Subscriptions for a Canadian or UK SME
Rolling out recurring billing is as much a configuration exercise as a technical one. The decisions that determine whether the module delivers clean MRR numbers are made up front: which recurring plans to offer, which products are subscription products, how upsell and close map to your existing sales process, how failed payments escalate, and how renewal invoices and deferred revenue should appear in Accounting.
A practical configuration sequence for an SME: (1) define recurring plans and self-service flags, (2) mark subscription products and price lists, (3) connect payment providers and test tokenized renewals in a staging database, (4) configure deferred revenue methods on annual/prepaid products, (5) turn on scheduled invoice generation and a small pilot cohort, (6) validate MRR reports against a known spreadsheet for one full cycle—including new, expansion, contraction, and churned movements, (7) open portal self-service only after dunning and close reasons work.
Pilot acceptance criteria that prevent false confidence: one full billing cycle with zero unexpected double invoices; a mid-cycle upgrade with agreed proration; a forced payment failure that enters follow-up rather than silent cancel; MRR report totals that match the pilot cohort spreadsheet within a rounding tolerance; deferred revenue schedule entries that reverse correctly for an annual prepaid plan.
As a dual-platform implementation partner, we work with SMEs across Canada, the UK, and the USA on both Odoo and Dynamics 365. Our AI-accelerated delivery is designed to deliver up to 3x faster than a traditional ERP implementation, without skipping the decisions that keep your recurring revenue clean and reportable.
If you are evaluating whether Odoo Subscriptions, a Dynamics 365 configuration, or a specialist billing tool is the right fit for your recurring-revenue business, book an ERP Readiness Call. We will walk through your plans, products, payment rails, and reporting needs, and tell you straight which architecture serves them better.
Frequently asked questions
Does Odoo Subscriptions support daily billing?
No. In Odoo, the Days unit of measure cannot be used as a Billing Period for subscription products; the daily recurrence period is designated for rentals and cannot be added to subscription-based sales orders. Recurring plans under Subscriptions > Configuration > Recurring Plans default to Monthly and Yearly, with custom plans available (Weekly, Bi-weekly, Quarterly), but daily billing is not supported for subscription products.
Does Odoo create a new sales order on every billing cycle?
No. A scheduled action generates the recurring invoice from the original subscription contract on each cycle and posts it to Accounting, where payment is reconciled. New sales orders are not created each cycle as the primary billing mechanism, which keeps the audit trail clean. Renewals and upsells use their own documented workflows when the commercial terms change.
What MRR and retention reports does Odoo Subscriptions include?
Odoo Subscriptions provides four reporting pages: Subscriptions Analysis, Retention Analysis, MRR Breakdown, and MRR Analysis (MRR Timeline). A Revenue KPIs report exposes Monthly Recurring Revenue, Net Revenue, Non-Recurring Revenue, Annual Run-Rate, and Lifetime Value, filterable by company and sales team.
Is there a Dynamics 365 equivalent to Odoo Subscriptions?
There is no single equivalent app. Dynamics 365 Sales handles the CRM and sales motion but has no native recurring billing. Dynamics 365 Finance provides native subscription billing through three modules (Recurring contract billing, Revenue and expense deferrals, Multiple element revenue allocation), and Business Central includes a Subscription Billing module with recurring contracts and revenue recognition. An SME typically pairs D365 Sales with Business Central Subscription Billing.
Can customers manage their own subscriptions in Odoo?
Yes. Recurring plans in Odoo expose optional self-service fields: Closable (customers can close their own subscriptions), Upsell (customers can adjust quantities and generate upsell quotations), Renew (customers can create a renewal quotation), and Optional Plans (customers can switch plans). Subscription products can also be sold through Odoo eCommerce, where a self-service checkout creates and confirms the subscription contract automatically.
When should an SME pick Odoo Subscriptions over Chargebee or Stripe Billing?
Pick ERP-native Odoo Subscriptions when you want one system of record for CRM, contracts, invoices, tax, and the general ledger—especially for seat-based, flat, or simple tier plans, retainers, and maintenance contracts. Prefer specialist billing when usage rating, complex coupons, or entitlement graphs are the product itself and you have RevOps engineering to own that platform. Many teams still use Stripe only as the payment processor while Odoo owns the subscription contract.
How should failed subscription payments be handled?
Treat first declines as recoverable involuntary churn, not voluntary cancellation. Use tokenized automatic payments where appropriate, retry failed charges, and escalate through payment follow-up / dunning (reminders, stronger notices, optional service pause) before auto-closing the contract. Capture a close reason so Retention Analysis can separate payment failure from product or price churn.
How does MRR relate to ASC 606 / IFRS 15 revenue recognition in Odoo?
MRR and ARR from Subscription reports are operational growth metrics derived from contracts. Accounting revenue under ASC 606 / IFRS 15 often differs when customers prepay: cash hits the bank, the invoice may post to deferred revenue (unearned), and revenue is recognized as the service is delivered. Odoo Accounting's deferred revenues feature generates deferral entries for services yet to be rendered. Report both—never substitute MRR for recognized revenue on audited statements.
What is the difference between logo churn and revenue churn?
Logo (customer) churn is the share of accounts that cancel in a period. Revenue (MRR) churn is the share of recurring revenue those cancellations (and often contractions) remove. A few large customers can dominate revenue churn while logo churn looks healthy—or many small logos can inflate customer churn while revenue stays stable. Track both, and capture close reasons in Odoo so Retention Analysis can separate product, price, and payment failures.
What is net revenue retention (NRR) and why does it matter?
NRR measures how much of starting MRR you retain after expansion, contraction, and churn—commonly (starting MRR + expansion − contraction − churned MRR) ÷ starting MRR. B2B SaaS teams often target NRR above 100%, meaning existing customers expand faster than they leave. Odoo's MRR movement views and Revenue KPIs support the inputs; NRR is the management math you apply on top for board reporting.
Does Odoo Subscriptions support prepaid and postpaid billing?
Yes. Odoo positions Subscriptions for both prepaid and postpaid recurring models—for example prepaid monthly/annual software access versus invoice-in-arrears retainers. You still configure recurring plans, products, payment terms, and (for prepays) deferred revenue in Accounting. The operational contract lives in Subscriptions; cash timing and revenue recognition follow Accounting rules.
What are subscription health checks in Odoo?
Odoo's Subscriptions feature set includes health checks on subscription templates—conditions that classify contracts as healthy or at risk—and automated actions that can email customers, schedule activities, update subscriptions, or send surveys when a red flag fires. Use them as an early-warning layer before churn, alongside dunning for payment failures and close-reason capture for voluntary cancels.
Sources & methodology
24 citedEvery pricing figure and statistic on this page is traced to a primary or vendor source with a verification date. Where partner pages are cited, their platform bias is disclosed in-line.
- 01Odoo Subscriptions is designed to manage recurring revenue through subscription-based products or services, supporting automated invoicing, renewal management, and customer lifecycle tracking, and integrates with Invoicing, CRM, Sales, and Helpdesk.↗odoo.com · verified Official Odoo 19.0 user documentation for the Subscriptions app (introductory section), confirming the module's purpose, native integrations, and lifecycle scope.
- 02Recurring plans (previously recurrence periods) are configured under Subscriptions app > Configuration > Recurring Plans; the Days unit of measure cannot be used as a Billing Period for subscription products because the daily recurrence period is designated for rentals.↗odoo.com · verified Official Odoo 19.0 documentation explicitly stating the recurring plan configuration path and the daily-billing constraint for subscriptions (verbatim in the 'Set up recurring plans' section).
- 03Sales orders with a defined recurring plan automatically become subscriptions; products marked as Subscriptions and sold on the eCommerce website automatically create and confirm subscription quotations in the backend of Odoo.↗odoo.com · verified Official Odoo 19.0 documentation describing the sales-order-to-subscription conversion and eCommerce integration (Create a subscriptions quotation and Confirmation sections).
- 04Odoo 19.0 documents Renew a subscription, Upsell a subscription, and Close a subscription as the core operational workflows, supported by SELF-SERVICE fields (Closable, Upsell, Renew, Optional Plans) on the recurring plan form.↗odoo.com · verified Official Odoo 19.0 documentation listing the workflow headings and describing the SELF-SERVICE section fields on the recurring plan form.
- 05Odoo Subscriptions provides four reporting pages (Subscriptions Analysis, Retention Analysis, MRR Breakdown, MRR Analysis) filterable by state and groupable by sales team, salesperson, plan, product, and next invoice date.↗odoo.com · verified Official Odoo 19.0 Subscriptions reports documentation enumerating the four report pages and their filter and grouping options.
- 06The MRR Breakdown report measures the change in monthly recurring revenue, including the MRR Change measure that tracks the total change in MRR across all subscriptions; the Revenue KPIs report shows Monthly Recurring Revenue, Net Revenue, Non-Recurring Revenue, Revenue per Subscription, Annual Run-Rate, and Lifetime Value, filterable by company and sales team.↗odoo.com · verified Official Odoo 19.0 Subscriptions reports documentation describing the MRR Change measure and the Revenue KPIs report with its specific KPI list and filters.
- 07Dynamics 365 Finance includes a native Subscription billing feature (enabled via Feature management) with three modules: Recurring contract billing, Revenue and expense deferrals, and Multiple element revenue allocation.↗learn.microsoft.com · verified Microsoft Learn Subscription billing overview for D365 Finance, confirming the three modules and their capabilities.
- 08Dynamics 365 Business Central includes a Subscription Billing module with recurring contracts, billing schedules, usage-based billing, automated billing, deferral integration, and revenue recognition, delivered alongside Power BI reporting.↗learn.microsoft.com · verified Microsoft Learn Business Central licensing and capability documentation; the Subscription Billing module is part of the standard Business Central financials functionality.
- 09Dynamics 365 Sales is Microsoft's CRM for nurturing sales from lead to order and managing opportunities, quotes, orders, and invoices; it does not include native recurring-billing automation.↗learn.microsoft.com · verified Microsoft Learn overview for Dynamics 365 Sales describing its CRM scope and confirming recurring billing is not part of the Sales app.
- 10Odoo markets the Subscriptions app for recurring revenue with recurring plans, upsells, renewals, retention strategies, and customer self-service options.↗odoo.com · verified Official Odoo app marketing page describing the recurring-revenue positioning and self-service capabilities of the Subscriptions app.
- 11Odoo documents a dedicated Subscriptions and automatic payments topic under the Subscriptions app documentation tree for Odoo 19.0, alongside renewals, upsells, closing, reports, eCommerce, and deliveries.↗odoo.com · verified Official Odoo 19.0 documentation navigation and page for Subscriptions and automatic payments (fetched 2026-08-03).
- 12Odoo Accounting documents deferred revenues (unearned revenues) as invoices for goods or services yet to be delivered/rendered that must be deferred on the balance sheet among current liabilities rather than recognized immediately on the P&L, with generation of deferral entries from Accounting reporting.↗odoo.com · verified Official Odoo 19.0 Deferred revenues documentation defining unearned revenue treatment and entry generation.
- 13Microsoft's Dynamics 365 Business Central 2025 release planning includes subscription billing investments such as analyzing subscription billing data with Power BI reports and aligning Subscription Billing UX/terminology, indicating continued product investment in SMB subscription billing.↗learn.microsoft.com · verified Microsoft Learn 2025 release wave 1 planned features list for Business Central (subscription billing analytics and related items).
- 14Comparative billing guides position Chargebee as stronger for out-of-the-box complex subscription management (dunning polish, plan families, coupons, rev-rec-oriented workflows) while Stripe Billing is often framed as simpler recurring billing for teams already on Stripe payments.↗finsi.ai · verified 2026 Chargebee vs Stripe Billing comparison summarizing feature and pricing posture differences (used only for competitor positioning, not as Odoo documentation).
- 15ASC 606 and IFRS 15 for SaaS align on recognizing revenue as performance obligations are fulfilled rather than solely when cash is collected; operational KPIs such as MRR/ARR must be reconciled carefully to accounting-compliant revenue schedules.↗dualentry.com · verified 2026 SaaS revenue recognition guide summarizing ASC 606 / IFRS 15 posture and the relationship to SaaS metrics.
- 16Implementation-oriented Odoo Subscriptions coverage for 2026 emphasizes mid-cycle proration on upgrades/downgrades, automated invoicing into Accounting, payment-provider auto-charge with retry, configurable dunning/follow-up levels, deferred revenue for annual prepays, and native MRR/ARR dashboards.↗octurasolutions.com · verified May 2026 practitioner feature guide on Odoo Subscriptions capabilities for recurring-revenue businesses (cross-checked against official Odoo docs where claims overlap).
- 17SaaS ERP implementation guidance argues Odoo can own the subscription while Stripe remains the payment processor—or the inverse—with an explicit day-one choice of billing system of record to avoid dual-truth MRR and deferred revenue drift.↗octurasolutions.com · verified April 2026 SaaS ERP guide describing Stripe-vs-Odoo system-of-record architectures for subscription businesses.
- 18Practitioners describe Odoo Subscriptions as underused for companies still generating recurring invoices manually, with automated recurring invoicing, renewal workflows, and MRR/ARR tracking tied to CRM and accounting as the recoverable opportunity.↗x.com · verified X post by @LaniakeaG (2026-04-03) on underuse of Odoo Subscriptions for recurring revenue ops (practitioner signal, not vendor documentation).
- 19Operators of usage-based billing report recurring-revenue math complexity, mid-cycle overage collection friction, and high cost of switching billing platforms—supporting a cautious approach to pure usage-based models without strong process design.↗x.com · verified X post by @agoldis (2026-07-30) detailing usage-based pricing operational issues after multi-year production use.
- 20Odoo Subscriptions feature marketing describes MRR views for new, churned, expansion, down, and net new MRR; growth analysis; customer churn analysis with close reasons; KPI tracking including net/non-recurring revenue, average revenue per contract, annual run rate, lifetime value, logo churn, and revenue churn; cohort analysis; health checks on templates; and automated actions on red flags.↗odoo.com · verified Official Odoo Subscriptions features page (fetched 2026-08-03) enumerating analytics, KPI, health check, and automation capabilities.
- 21ChartMogul's SaaS metrics cheat sheet defines MRR, ARR (MRR×12), ARPA, MRR movements (new, expansion, contraction, churn, reactivation), customer vs revenue churn, NRR, GRR, negative churn, and LTV; median early-stage monthly net MRR churn ~6.2% and gross ~4.1%, with medians near 2.3% net / 5.3% gross above $1M ARR; B2B NRR target commonly over 100%.↗chartmogul.com · verified ChartMogul SaaS metrics cheat sheet with formulas and published median churn benchmarks by ARR band (accessed 2026-08-03).
- 22Odoo publicly marketed Odoo 19 Subscriptions for managing both prepaid and postpaid models with automated invoicing and recurring revenue.↗x.com · verified Official @Odoo X post (2025-09-19) stating prepaid & postpaid support in Subscriptions (#Odoo19).
- 23Subscription operators emphasize that failed payments and expired cards—not only voluntary cancels—drive material MRR leakage when recovery (dunning) flows are missing.↗x.com · verified X post @polsia (2026-07-28) on subscription brands leaking monthly MRR to expired cards without recovery tooling (practitioner marketing signal).
- 24Core SaaS metrics boards expect include MRR, ARR, churn, LTV, CAC, and NRR as a baseline monitoring set.↗sage.com · verified Sage Advice (2026) overview of essential SaaS metrics including MRR, ARR, churn, LTV, CAC, and NRR.
Related services & solutions
Choosing Between Odoo Subscriptions and Dynamics 365?
We implement both platforms for SMEs across Canada, the UK, and the USA. Book an ERP Readiness Call and we will walk through your recurring plans, products, and reporting needs, then tell you straight which platform fits your subscription business. Our AI-accelerated delivery is designed to deliver up to 3x faster than a traditional ERP rollout.