Skip to content

[19.0][ADD] spreadsheet_dashboard_subscription_oca: subscription dashboards#118

Open
alvaro-domatix wants to merge 1 commit into
OCA:19.0from
alvaro-domatix:19.0-add-spreadsheet_dashboard_subscription_oca
Open

[19.0][ADD] spreadsheet_dashboard_subscription_oca: subscription dashboards#118
alvaro-domatix wants to merge 1 commit into
OCA:19.0from
alvaro-domatix:19.0-add-spreadsheet_dashboard_subscription_oca

Conversation

@alvaro-domatix

@alvaro-domatix alvaro-domatix commented Jun 25, 2026

Copy link
Copy Markdown

Ready-to-use spreadsheet dashboards for subscriptions, built on the community spreadsheet_dashboard engine with no Enterprise dependency. Four dashboards are shipped under a dedicated Subscriptions group in the Dashboards app (auto_install wires them up when both spreadsheet_dashboard and subscription_oca are present):

  • Subscriptions — monthly/annual recurring revenue, active subscriptions and average MRR, with breakdowns by template, product category, sales team, salesperson, start month and stage.
  • Salesperson — recurring revenue and number of subscriptions by salesperson and sales team.
  • MRR Evolution — net/new/churned MRR and the cumulated MRR over time (change events derived from start/close dates; mid-life expansion/contraction is not tracked).
  • Retention — cohort sizes and recurring revenue per start month, plus a survival curve from start/close dates.

All dashboards expose global filters (salesperson, sales team, customer, template). The MRR/retention figures are produced by two SQL models defined in this module, which read the recurring_monthly field of subscription_oca.

⚠️ Depends on OCA/contract#1451 (compute MRR and ARR), which adds the recurring_monthly field on sale.subscription that the MRR/retention SQL views read. The CI will stay red on the view creation (column sub.recurring_monthly does not exist) until that PR lands in OCA/contract. Originally opened as OCA/contract#1472 and moved here following @popadron's placement review.

@alvaro-domatix

Copy link
Copy Markdown
Author

Note on the failing tests: the MRR/retention SQL views read sale_subscription.recurring_monthly, a field introduced by OCA/contract#1451 (compute MRR and ARR), which is not merged yet. Once that PR lands in OCA/contract, the views will create cleanly and this PR's CI will go green. Pre-commit and runboat already pass; the module itself is complete.

@chrisandrewmann

Copy link
Copy Markdown
Contributor

@alvaro-domatix thanks for this. However the spreadsheet default branch is still 18.0 as the core spreadsheet_oca and spreadsheet_dashboard_oca are not successfully migrated to 19.0 yet.
There is a PR but it's a long way off being usable. I think we should focus on getting that done first before adding new modules.

…for subscriptions

Add ready-to-use spreadsheet dashboards for subscriptions, built on the
community `spreadsheet_dashboard` engine with no Enterprise dependency.
Four dashboards are shipped under a dedicated *Subscriptions* group in the
Dashboards app (`auto_install` wires them up when both `spreadsheet_dashboard`
and `subscription_oca` are present):

* **Subscriptions** — monthly/annual recurring revenue, active subscriptions
  and average MRR, with breakdowns by template, product category, sales team,
  salesperson, start month and stage.
* **Salesperson** — recurring revenue and number of subscriptions by
  salesperson and sales team.
* **MRR Evolution** — net/new/churned MRR and the cumulated MRR over time.
  MRR change events are derived from the current state (a positive event at
  start date and a negative one at close); mid-life expansion/contraction is
  not tracked, which would require a dedicated MRR event log.
* **Retention** — cohort sizes and recurring revenue per start month, plus a
  survival curve built from the start and closing dates.

All dashboards expose global filters (salesperson, sales team, customer,
template) and refresh from the subscription analysis SQL models defined in
this module. Depends on `subscription_oca` (OCA/contract) for the source data.
@alvaro-domatix alvaro-domatix force-pushed the 19.0-add-spreadsheet_dashboard_subscription_oca branch from 59b61c4 to 8dff80a Compare June 25, 2026 17:27
@alvaro-domatix

Copy link
Copy Markdown
Author

@chrisandrewmann thanks for the context. I originally opened this as OCA/contract#1472 and moved it here following @popadron's placement review, so I'd like to double-check with you how you'd prefer to proceed.

When I checked the 19.0 dependencies, spreadsheet_dashboard already resolved from the community core (shipped with Odoo itself), so this addon only needed subscription_oca from OCA/contract on top — that's why it didn't look blocked by the spreadsheet_oca/spreadsheet_dashboard_oca migration. The remaining red CI is just OCA/contract#1451 (recurring_monthly field), unrelated to the spreadsheet framework.

Happy to hold this PR, or to close it and re-open OCA/contract#1472 if you'd rather keep this repo dormant until there's a clearer 19.0 policy. Let me know which you prefer and I'll align.

@chrisandrewmann

Copy link
Copy Markdown
Contributor

@alvaro-domatix thanks. I was hoping to contribute to spreadsheet_oca 19 migration but busy with other projects. I've actually submitted a PR to subscription_oca (OCA/contract#1463) for recurring automated payments which I feel should be high priority.
Although I'm not on the OCA board. I'll leave it to you to decide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mod:spreadsheet_dashboard_subscription_oca Module spreadsheet_dashboard_subscription_oca series:19.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants