Revenue Intelligence

Your CRM Can't Forecast Renewals — Here's What Can

The NRR Partners Team 6 min read

Ask most SaaS companies how they forecast renewals and the answer is some version of: "We have a Salesforce report that shows upcoming renewals and the rep or CSM sets a confidence percentage."

That's not a forecast. That's a survey of opinions.

Salesforce knows the contract value, the renewal date, and whatever stage the rep clicked last Tuesday. It doesn't know that the customer's usage dropped 40% over the last quarter. It doesn't know that their champion left the company. It doesn't know that three support tickets escalated to severity 1 in the past month. It doesn't know that the customer skipped their last two QBRs.

Those signals live in your CS platform, your support tool, and your product telemetry. Salesforce can't see any of them. And a renewal forecast that can't see those signals is guessing.

The Forecasting Gap

Here's what happens in practice at most mid-market SaaS companies:

90 days before renewal: Someone creates an Opportunity in Salesforce. The stage is set to "Renewal - Pending" or whatever your pipeline looks like. Probability is 80% because "most customers renew."

60 days before renewal: The CSM checks in on the account. Everything seems fine. Nobody changes the probability.

30 days before renewal: The customer says they're "evaluating options." The CSM panics. The probability drops to 50%. Leadership finds out about the risk for the first time. There's no time for a real save play.

Day of renewal: The customer churns. Everyone's surprised except the customer, who has been unhappy for 6 months.

The data to predict this existed the entire time. It just wasn't part of the forecast.

Building the Behavioral Forecast

A real renewal forecast combines three data layers:

Layer 1: Contractual Data (CRM)

This is what Salesforce already gives you:

  • Renewal date
  • Contract value (ARR)
  • Contract terms (multi-year vs. annual, auto-renewal vs. manual)
  • Opportunity stage and pipeline data

In Planhat, this maps to the License model. Each License has a start date, end date, value, product, auto-renewal flag, and status. If you're syncing Opportunities from Salesforce, Planhat can track the pipeline alongside the behavioral data in one place.

Layer 2: Behavioral Data (CS Platform + Product)

This is what Salesforce can't see:

Usage trajectory. Not current usage — the trajectory over 90 days. A customer trending down is a different risk than one trending up, even if both are at the same usage level today. In Planhat, use Calculated Metrics with trailing window comparisons to quantify this.

Feature adoption depth. Are they using the features that correlate with retention? If your product has a "sticky feature" (the feature that retained customers use and churned customers don't), is this account using it? Track via Planhat Metrics or Assets.

Engagement cadence. When was the last meeting? Last email response? Last QBR? Use Planhat's Conversation model and End User Relevance Scores to quantify relationship health. Declining engagement 90 days before renewal is a leading indicator.

Support health. Ticket volume, severity, resolution time, and sentiment. A customer submitting frustrated support tickets in the 90-day window before renewal is a different risk profile than one with zero tickets.

Layer 3: Contextual Intelligence (AI)

This is where the LLM adds a layer that rules and dashboards can't replicate.

Feed Claude or Gemini the structured data from Layers 1 and 2 for each upcoming renewal. Ask it to:

  1. Assess renewal probability based on historical patterns (what happened with similar accounts at similar health levels?)
  2. Identify the top 3 risk factors for this specific renewal
  3. Recommend a specific retention or expansion play
  4. Flag if this renewal has any characteristics that are anomalous compared to the portfolio

Through Planhat's MCP Server, you can give Claude direct access to query live customer data. Set up a workflow that triggers at 90 days before renewal, feeds the full account context to the LLM, and generates a structured renewal intelligence report.

The Renewal Intelligence Report

At 90, 60, and 30 days before each renewal, generate a report that looks like this:

Renewal Intelligence: Acme Corp Renewal Date: June 15, 2026 | ARR: $45,000 | 90-Day Report

AI Risk Assessment: MEDIUM-HIGH (38% churn probability)

Behavioral Signals:

  • Usage: Down 22% over 90 days (30-day avg vs. 90-day avg)
  • Feature adoption: Core platform active, Analytics module unused for 45 days
  • Stakeholder: Champion (Lisa Park) engagement declining — Relevance Score dropped from 78 to 54
  • Support: 2 severity-2 tickets in last 30 days, both with Negative sentiment
  • Engagement: Last QBR was 105 days ago, follow-up actions incomplete

Historical Pattern Match: Accounts with this signal combination renewed 62% of the time. Of those that renewed, 70% contracted. Average contraction: 18% of ARR.

Recommended Play: Schedule an executive check-in (not a QBR — a direct conversation about their goals for next year). Address the Analytics module abandonment — it may be a training gap or a value perception issue. Resolve open support tickets before renewal conversation. Consider offering a success plan review as a bridge to the renewal discussion.

Compare that to a Salesforce Opportunity with "80% probability" and a stage of "Renewal - Pending." Which one helps you actually save the deal?

Operationalizing It

Build this as a Planhat AI Workflow:

  1. Trigger: License renewal date is 90 days out (use the License model's end date)
  2. Data Pull: Aggregate Company health scores, usage Metrics, End User data, Conversation sentiment, Support ticket data, License history
  3. AI Step: Feed to Claude via MCP or API. Use a structured prompt that includes your historical churn patterns as context.
  4. Output: Generate the renewal intelligence report
  5. Delivery: Log as a Note on the Company in Planhat. Send to CSM via Slack. Update a custom field on the Salesforce Opportunity with the AI risk grade.
  6. Repeat: At 60 days and 30 days, regenerate with updated data

The 60-day and 30-day reports show trajectory. Did the risk increase or decrease since the last assessment? Did the CSM's intervention work? This creates accountability and visibility that a static Salesforce probability field never provides.

Bringing Sales Into the Loop

Here's a move most CS teams don't make: share the renewal intelligence with the sales team.

Your AEs care about renewals because they affect quota. But they're working from the same blind Salesforce data as everyone else. Give them the behavioral layer and they become better partners in the renewal process.

Push the AI risk grade back to Salesforce as a custom field on the Opportunity. Now Sales leadership can filter their pipeline by AI risk grade and see which renewals are actually at risk versus which ones are flagged at 80% probability because someone hasn't updated the stage.

This also connects directly to the NRR flywheel. Renewal forecasting isn't just about predicting who will churn. It's about identifying where expansion is possible, where contraction is likely, and where investment in a save play has the highest ROI. The behavioral data tells you all of this. The CRM alone never will.

The NRR Partners team helps B2B SaaS companies build predictive health scoring, AI-powered CS automation, and revenue intelligence. Previously at Planhat. Based in New York, Paris, and Dubai.

The CS Ops Playbook

Five chapters. One system. Read them in order or jump to what matters most.