| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 875 |
| Technical Name |
gb_revenue_mrr_movement_dashboard |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
| Versions | 18.0 19.0 |
Revenue & MRR Movement Da
MRR waterfall (new/expansion/contraction/churn) and cohort retention dashboard
Tracking SaaS metrics in fragile spreadsheets means the numbers never tie out and nobody trusts the churn figure. This module turns your recurring-revenue records (mrr.subscription) into a board-ready dashboard: a reconciled MRR movement waterfall classifying new, expansion, contraction, reactivation and churn so opening plus movements always equals closing. It rolls up net and gross retention, MRR and logo churn, ARR, ARPA, a sign-up cohort retention table and a growth/churn-based forecast. Built for SaaS founders, finance leads and CFOs, it is pure Odoo data depending only on base and mail — so it runs in Community with no external analytics service.
Key Features
Recurring revenue subscriptions
mrr.subscription records a customer, plan, mrr_amount and start/end dates with a trial/active/paused/churned state. arr_amount (mrr × 12), cohort_month and is_active are computed automatically, and action_activate, action_pause and action_churn drive the lifecycle with chatter tracking.
Reconciled MRR movement waterfall
mrr.snapshot.build_snapshot classifies every subscription's mrr_on(period) against one month earlier into new, expansion, contraction, reactivation and churned MRR. A _check_reconciliation constraint enforces that opening + movements = closing to within a penny, so the waterfall always ties out.
The retention metrics investors ask for
Each snapshot's _compute_derived produces net_new_mrr, ARR, ARPA, gross_churn_rate, net_retention_rate and logo_churn_rate from real stored movement figures. These are the SaaS health numbers boards and investors expect, computed not estimated.
Cohort retention table
mrr.cohort.build_cohort groups subscriptions by their sign-up cohort_month and walks forward month by month, writing mrr.cohort.line points with retained_mrr, retained_customers and retention_pct. action_rebuild_all_cohorts regenerates every cohort so you can read retention curves across the whole base.
MRR forecasting
mrr.forecast projects forward from a base_mrr over a horizon applying monthly_growth_pct and monthly_churn_pct. action_derive_rates averages the trailing six snapshots to set realistic rates, and action_compute generates one mrr.forecast.line per month with projected MRR, new, churn and ending ARR.
One-click snapshot building and ranges
action_rebuild_current snapshots the current month-end on demand, action_recompute refreshes a chosen period, and rebuild_range builds a snapshot for every month-end between two dates. Helpers like total_mrr_on and mrr_active_on compute live MRR for any reference date.
Customer counts and ARPA roll-up
Snapshots store active_customers, new_customers and churned_customers, and derive ARPA as closing MRR over active customers. Together with logo_churn_rate this separates revenue movement from customer movement so you see whether churn is a few big accounts or many small ones.
Pure Odoo data, no external service
All models — mrr.subscription, mrr.snapshot, mrr.cohort and mrr.forecast — are plain Odoo records depending only on base and mail. No Stripe or third-party analytics account is required, so the entire dashboard runs in Community on data you already own.
Use Cases
Screenshots
Cohorts
Forecasts
Subscriptions
Why Choose This Module
Stop tracking SaaS metrics in fragile spreadsheets. This module turns your recurring-revenue lines into a board-ready dashboard: the MRR movement waterfall (new, expansion, contraction, reactivation, churn) reconciled so opening + movements = closing, net and gross retention, churn rates, cohort retention and ARR. Everything is plain Odoo data — works in Community with no external service.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: base, mail
- Support: support@pokutsoft.com
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 875 |
| Technical Name |
gb_revenue_mrr_movement_dashboard |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module