Customer Renewal & Churn
Renewal pipeline for contracts and subscriptions with churn-risk scoring
Renewals slip through the cracks when nobody owns a pipeline for them: a contract's end date arrives, the customer is not contacted in time, and the account quietly churns, taking recurring revenue with it. Account-management, customer-success and sales teams in subscription and contract businesses feel this loss every quarter. This module gives sales a dedicated gb.renewal pipeline where every renewable contract becomes an opportunity with a stage, owner, renewal value and an explainable, automatically-computed churn-risk score.
Key Features
Dedicated Renewal Pipeline
Each gb.renewal record carries term dates, renewal_date, renewal_value, an owner and a configurable gb.renewal.stage flowing Upcoming, Contacted, Negotiating, Renewed and Lost. Stages mark is_won/is_lost and a baseline probability, giving renewals their own kanban pipeline instead of getting lost in the sales funnel.
Weighted Churn-Risk Engine
_compute_risk blends four configurable signals: renewal urgency (days_to_renewal ramp), open ticket pressure, order recency and overdue invoice amount, each weighted by an ir.config_parameter. The result is a stored 0-100 risk_score banded Low/Medium/High, so teams instantly see which accounts are most likely to churn.
Explainable Risk Breakdown
get_risk_breakdown returns each signal's exact point contribution, and action_show_risk_breakdown posts it to the chatter as a readable note. A CSM sees why a renewal is risky, not just the headline number, making the score trustworthy and actionable.
Engagement-Aware Scoring
Logged gb.renewal.touchpoint records (call, email, meeting, note with outcome) feed an engagement_score based on recency, volume and outcomes. Active engagement subtracts up to 20 risk points, so a renewal being worked properly correctly reads as lower risk than a silent one.
Probability-Weighted Forecast
_compute_probability discounts each stage's baseline by the risk score to produce renewal_probability and expected_value. get_pipeline_forecast aggregates total value, expected value and value-at-risk by band, giving managers the headline numbers for the renewal board and accurate revenue forecasting.
Bulk Renewal Generation
The gb.renewal.generate.wizard scans confirmed sale orders placed around one term length ago, deriving a renewal date and value from each and skipping orders that already have a renewal. It seeds an entire renewal pipeline from existing recurring orders in one click.
Daily Risk Refresh & Nudge
An ir.cron runs cron_refresh_risk daily, recomputing days-to-renewal, overdue, recency and risk on all open renewals. High-risk renewals within 30 days automatically get a to-do activity scheduled on their owner, so imminent churn risks are never missed.
Customer Roll-Up & Analysis
res.partner gains gb_renewal_value_at_risk and gb_max_renewal_risk, while the gb.renewal.report SQL view powers pivot and graph analysis by month, stage, owner and band. Account managers see at-risk value per customer and slice the whole pipeline for reporting.
Use Cases
Screenshots
Renewals
Generate Renewals
Renewal Analysis
Renewal Stages
Why Choose This Module
Renewals slip through the cracks when nobody owns a pipeline for them: a contract's end date arrives, the customer isn't contacted in time, and the account quietly churns. This module gives sales a dedicated renewal pipeline — every renewable contract becomes a renewal opportunity with a stage, an owner, a renewal value and an automatically-computed churn-risk score.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: sale_management
- Support: support@pokutsoft.com
Update date: 2026-07-02