Required Datapoints
- Weighted Inputs (e.g., usage frequency, intent events, CS score, firmographics)
- Scoring Model Definition
- Total Active Accounts
Expansion Opportunity Score is a weighted score that indicates how likely an existing customer is to expand based on usage, engagement, intent, and fit. It helps prioritize accounts for cross-sell and upsell.
Expansion Opportunity Score is a key indicator of customer growth potential and upsell prioritization, reflecting how a blend of behavioral, firmographic, and engagement signals quantifies an account’s readiness for expansion.
The relevance and interpretation of this metric shift depending on the model or product:
A rising score indicates clear expansion signals and stronger customer alignment, while a flat or low score may reflect dormant opportunity or misaligned account growth strategies.
By segmenting by account tier, region, or product line, you unlock insights to refine your expansion forecast, prioritize CS time, and optimize outreach timing.
Expansion Opportunity Score informs:
These are the main factors that directly impact the metric. Understanding these lets you know what levers you can pull to improve the outcome
Actionable ideas to optimize this KPI, from fast, low-effort wins to strategic initiatives that drive measurable impact.
Activities commonly tied to improving or operationalizing this KPI.
| Activity | Description |
|---|---|
| Expansion Targeting | Expansion Targeting is a strategic process focused on analyzing existing customer accounts to uncover new avenues for revenue growth. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Expansion Intent Signal Rate and Expansion Opportunity Score. |
| Sales Forecasting | Sales Forecasting involves systematically estimating future sales and revenue outcomes by examining historical data, market trends, pipeline health, customer behaviors, and external influences. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include Expansion Opportunity Score and Referral Opportunity Pipeline Contribution Rate. |
| Growth Pipeline Planning | Growth Pipeline Planning is a structured process focused on identifying, prioritizing, and mapping future revenue opportunities across the sales and product funnel. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Expansion Opportunity Score. |
| Intent Scoring | Intent Scoring focuses on systematically evaluating and grading signals of buyer interest or engagement across multiple digital and interpersonal touchpoints. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include Expansion Opportunity Score. |
This KPI is associated with the following stages in the AAARRR (Pirate Metrics) funnel:
This KPI is classified as a lagging Indicator. It reflects the results of past actions or behaviors and is used to validate performance or assess the impact of previous strategies.
This role is directly accountable for the KPI and is expected to drive progress and decisions around it.
These roles contribute directly to performance and typically partner on execution, reporting, or optimization.
These leading indicators influence this KPI and act as early signals that forecast future changes in this KPI.
These lagging indicators confirm, quantify, or amplify this KPI and help explain the broader business impact on this KPI after the fact.
How this KPI is structured in Cube.js, including its key measures, dimensions, and calculation logic for consistent reporting.
cube('ExpansionOpportunityScore', { sql: `SELECT * FROM expansion_opportunity_scores`,
joins: { Accounts: { relationship: 'belongsTo', sql: `${CUBE}.account_id = ${Accounts}.id` } },
measures: { expansionOpportunityScore: { sql: `expansion_opportunity_score`, type: 'number', title: 'Expansion Opportunity Score', description: 'Weighted score indicating likelihood of account expansion based on usage, engagement, intent, and fit.' }, totalActiveAccounts: { sql: `account_id`, type: 'countDistinct', title: 'Total Active Accounts', description: 'Total number of active accounts.' } },
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true, title: 'ID', description: 'Unique identifier for each expansion opportunity score record.' }, accountId: { sql: `account_id`, type: 'string', title: 'Account ID', description: 'Identifier for the account associated with the score.' }, usageFrequency: { sql: `usage_frequency`, type: 'number', title: 'Usage Frequency', description: 'Frequency of usage events for the account.' }, intentEvents: { sql: `intent_events`, type: 'number', title: 'Intent Events', description: 'Number of intent events recorded for the account.' }, csScore: { sql: `cs_score`, type: 'number', title: 'CS Score', description: 'Customer success score for the account.' }, firmographics: { sql: `firmographics`, type: 'string', title: 'Firmographics', description: 'Firmographic data related to the account.' }, createdAt: { sql: `created_at`, type: 'time', title: 'Created At', description: 'Timestamp when the score was created.' } }});Note: This is a reference implementation and should be used as a starting point. You’ll need to adapt it to match your own data model and schema