Overview
What It Is
The Expansion Signal Spotter monitors customer behavior and company signals to identify when accounts are ready for growth. From usage limits approaching to new features explored to company growth eventsβthe system surfaces opportunities and provides CSMs with the context and timing to have the right conversation.
Why It Matters
Expansion revenue is more profitable than new business. But most CS teams react to customer requests rather than proactively spotting opportunity. Systematic signal detection means you reach out when the customer needs more, not when they ask.
Who It's For
- Customer Success managers with expansion quotas
- Account Managers focused on growth
- CS leaders building expansion motion
- RevOps teams tracking net revenue retention
Preconditions
Required Tools
- Customer Success platform (ChurnZero, Gainsight)
- Product analytics (for usage signals)
- Intent/growth data (Clearbit, ZoomInfo)
- CRM for opportunity tracking
- Slack for alerts
Required Fields/Properties
- Current contract details (seats, tier, features)
- Product usage by feature/seat
- Company growth signals (headcount, funding)
- Engagement metrics
- Historical expansion data
Definitions Required
- What constitutes an 'expansion signal'
- Signal-to-opportunity thresholds
- CSM vs. AE handoff rules
- Expansion conversation playbooks
- Credit/quota attribution
Step-by-Step Workflow
Define Expansion Signals
Goal: Identify the leading indicators of expansion readiness.
Actions:
- Analyze historical expansions for common patterns
- Define product usage signals (limits, new features, power users)
- Identify company growth signals (hiring, funding, news)
- Create engagement signals (exec engagement, new stakeholders)
- Weight signals by historical conversion rate
Implementation Notes: Not all signals are equal. 'Approaching seat limit' has higher conversion than 'exploring new feature'. Weight based on your historical data, not assumptions.
Automation Logic:
Expansion Signal Categories:
1. USAGE SIGNALS (Highest predictive value)
- Seat utilization >80%
- Hitting API/storage limits
- Power users emerging (3+ hours/day)
- Multiple departments using product
- Feature adoption completing (ready for advanced)
2. GROWTH SIGNALS (Company level)
- Headcount growth >20% YoY
- New funding round announced
- Geographic expansion
- New department/division created
- Hiring for roles product supports
3. ENGAGEMENT SIGNALS (Relationship)
- Executive engagement initiated
- New stakeholders added
- Requesting roadmap/vision discussions
- Attending webinars/events
- Referring other customers
4. TIMING SIGNALS (Context)
- Approaching renewal (3-6 months out)
- Budget season starting
- Annual planning cycle
- After major success milestone
Build Signal Detection
Goal: Automatically identify when signals fire.
Actions:
- Configure product usage monitoring
- Integrate growth data feeds
- Set up engagement tracking
- Create composite signal logic
- Build signal confidence scoring
Implementation Notes: Single signals suggest; multiple signals confirm. A customer hitting seat limits AND showing headcount growth is more ready than either signal alone.
Automation Logic:
// Example: Expansion signal detection
const expansionSignals = {
seatLimit: {
detect: (account) => account.seats_used / account.seats_licensed > 0.8,
weight: 5,
urgency: 'high',
approach: 'seat_expansion'
},
featureGraduation: {
detect: (account) => {
const advancedFeatures = ['feature_a', 'feature_b', 'feature_c'];
const explored = advancedFeatures.filter(f => account.features_explored.includes(f));
return explored.length >= 2;
},
weight: 3,
urgency: 'medium',
approach: 'tier_upgrade'
},
headcountGrowth: {
detect: (account) => account.headcount_growth_yoy > 0.2,
weight: 4,
urgency: 'medium',
approach: 'growth_conversation'
},
newDepartment: {
detect: (account) => account.departments_using > account.departments_30d_ago,
weight: 4,
urgency: 'high',
approach: 'cross_sell'
}
};
const calculateOpportunityScore = (account) => {
let score = 0;
let signals = [];
for (const [name, signal] of Object.entries(expansionSignals)) {
if (signal.detect(account)) {
score += signal.weight;
signals.push({ name, ...signal });
}
}
return { score, signals, ready: score >= 8 };
};
Create Opportunity Alerts
Goal: Notify the right people with actionable context.
Actions:
- Configure alert triggers by score/signal combination
- Include expansion context and suggested approach
- Route to CSM or AE based on rules
- Add one-click opportunity creation
- Track alert acknowledgment and action
Implementation Notes: The alert should make the next step obvious. Include: why now, what to discuss, suggested approach. CSMs shouldn't have to researchβgive them what they need.
Build Expansion Playbooks
Goal: Give CSMs conversation frameworks by signal type.
Actions:
- Create playbooks for each expansion type
- Include discovery questions
- Provide value justification talking points
- Build email templates for outreach
- Define handoff process to AE if needed
Implementation Notes: Expansion conversations should feel like helping, not selling. Lead with value they're already seeing, then naturally extend to 'what's next'.
Track and Optimize
Goal: Measure signal accuracy and improve detection.
Actions:
- Track signal-to-opportunity conversion
- Measure expansion close rates by signal
- Identify false positive patterns
- Refine weights based on outcomes
- Build expansion forecasting from signals
Implementation Notes: Your signal model gets smarter over time. Track every signal against eventual expansion (or not) and adjust weights quarterly.
Templates
Expansion Opportunity Alert
π° *EXPANSION OPPORTUNITY DETECTED*
βββββββββββββββββββββββββββββββββββββ
**Account:** {{company_name}}
**Current ARR:** {{current_arr}}
**Potential Expansion:** {{expansion_estimate}}
**CSM:** {{csm_name}}
**Opportunity Score:** {{score}}/10 β
**Timing:** {{timing_indicator}}
βββββββββββββββββββββββββββββββββββββ
## π Signals Detected
{{#each signals}}
**{{signal_name}}** ({{weight}}/5 weight)
{{detail}}
{{/each}}
## π‘ Recommended Approach: {{approach_name}}
{{approach_description}}
**Suggested Opening:**
"{{suggested_opener}}"
**Key Questions to Ask:**
{{#each discovery_questions}}
β’ {{question}}
{{/each}}
## π Account Context
| Metric | Value | Trend |
|--------|-------|-------|
| Health Score | {{health_score}}/100 | {{health_trend}} |
| Seat Utilization | {{seat_util}}% | {{seat_trend}} |
| Feature Adoption | {{features_used}}/{{features_total}} | {{feature_trend}} |
| Last QBR | {{last_qbr_date}} | {{qbr_sentiment}} |
<{{create_opp_link}}|β Create Opportunity> | <{{account_link}}|View Account> | <{{schedule_link}}|Schedule Call>
*Signal detected: {{timestamp}}*
Weekly Expansion Pipeline
π *WEEKLY EXPANSION PIPELINE*
{{week_of}}
βββββββββββββββββββββββββββββββββββββ
**Expansion Opportunities Overview**
- π New signals this week: {{new_signals}} accounts
- π― In-progress opportunities: {{active_opps}} | {{active_value}}
- β
Closed this week: {{closed_count}} | {{closed_value}}
- π Expansion rate: {{expansion_rate}}%
βββββββββββββββββββββββββββββββββββββ
## π₯ Hottest Opportunities (Top 5)
{{#each top_opportunities}}
**{{rank}}. {{company_name}}** | Current: {{current_arr}}
Signals: {{signal_summary}}
Potential: {{expansion_potential}} | Score: {{score}}/10
CSM: {{csm_name}} | Status: {{status}}
{{/each}}
## π Signal Activity
| Signal Type | Count | Avg Conversion |
|-------------|-------|----------------|
{{#each signal_stats}}
| {{signal}} | {{count}} | {{conversion}}% |
{{/each}}
## π― CSM Expansion Leaderboard
| CSM | Opportunities | Pipeline | Closed |
|-----|--------------|----------|--------|
{{#each csm_stats}}
| {{name}} | {{opp_count}} | {{pipeline}} | {{closed}} |
{{/each}}
<{{dashboard_link}}|Full Dashboard>
Expansion Email - Seat Limit
Subject: Your team is growing! Let's talk about scaling {{product_name}}
Hi {{first_name}},
I noticed your team's usage of {{product_name}} has really taken offβyou're now at {{seat_util}}% of your licensed seats, with {{new_users}} new users added in the last month.
This is great to see! It means {{product_name}} is becoming essential to how {{company_name}} works.
As you approach your seat limit, I wanted to reach out proactively to discuss options:
1. **Add seats Γ la carte** - Add exactly what you need, when you need it
2. **Upgrade to {{next_tier}}** - Unlock {{key_benefit}} and get {{additional_seats}} more seats at a better per-seat rate
3. **Annual commitment** - Lock in today's pricing with growth flexibility
Would you have 20 minutes this week to discuss what makes the most sense for {{company_name}}'s growth plans?
[Book time here: {{scheduling_link}}]
Best,
{{csm_name}}
P.S. - I also noticed {{power_user_name}} has become a real power user. Happy to connect them with our {{advanced_resource}} if helpful!
Expansion Signal Definitions
| Signal | Definition | Threshold | Weight | Suggested Approach | |--------|------------|-----------|--------|-------------------| | Seat Limit | Active users / licensed seats | >80% | 5 | Seat expansion | | Feature Graduation | Advanced features explored | 2+ of 5 | 3 | Tier upgrade | | Headcount Growth | Company hiring rate | >20% YoY | 4 | Growth conversation | | New Department | Departments using product | +1 from baseline | 4 | Cross-sell | | Power Users | Users with high engagement | 3+ in top 10% | 3 | Champion expansion | | Approaching Renewal | Days to renewal | <90 days | 2 | Renewal upsell | | Exec Engagement | C-level meeting/interaction | Any | 4 | Executive sponsor |
QA + Edge Cases
Test Cases Checklist
- Account hits 80% seat utilization β expansion alert fires within 24 hours
- Company announces funding round β growth signal detected and added to account
- Multiple signals on same account β composite score increases, higher priority
- CSM creates opportunity from alert β attribution tracked
- Expansion closes β signal accuracy recorded for model improvement
Common Failure Modes
- Signal spam: Too many low-quality signals overwhelm CSMs. Raise thresholds and require multiple confirming signals.
- Wrong timing: Signals fire but customer isn't ready. Add relationship health as a qualifierβdon't pitch expansion to unhappy customers.
- Missing context: CSMs don't know how to act on signals. Enrich alerts with approach guidance and talking points.
- No follow-through: Signals identified but not actioned. Track alert-to-opportunity conversion and hold CSMs accountable.
Troubleshooting Tips
- If conversion is low: Review signal quality, may need to raise thresholds
- If CSMs ignore alerts: Survey for feedback, may need better context or simpler format
- If missing expansions: Analyze closed expansions for signals you're not tracking
- If timing is off: Add account health as a qualifier for expansion outreach
KPIs and Reporting
KPIs to Track
- Signal-to-Opportunity Rate: >30% of high-score signals become opportunities
- Expansion Close Rate: >50% of signal-sourced opportunities close
- Net Revenue Retention: >110% NRR driven by expansion
- Time from Signal to Close: Track and optimize signal timing
- Expansion Revenue: Monthly/quarterly expansion bookings
Suggested Dashboard Widgets
- Expansion Opportunity Heat Map: Accounts by expansion potential score
- Signal Activity Feed: Real-time signal detection stream
- Expansion Pipeline: Opportunities by stage and value
- CSM Expansion Performance: Signal-to-close by team member