Required Datapoints
- Activation Timestamp (or onboarding completion)
- Timestamp of First Expansion Feature Use or Milestone Value Moment
- Definition of “Expansion Feature” and related value signal
Time to Value (Expansion Features) measures the average time it takes for users or accounts to adopt and gain value from premium or advanced features after their initial onboarding or activation. It helps assess expansion readiness and product maturity velocity.
Time to Value (Expansion Features) is a key indicator of upsell readiness, feature adoption, and advanced engagement, reflecting how quickly users move from core features to monetizable, premium functionality.
The relevance and interpretation of this metric shift depending on the model or product:
A shorter time signals strong product education and in-product discovery, while delays may point to poor visibility, unclear ROI, or lack of onboarding.
By segmenting by user type, feature path, or tier, you can spot which users are ready to expand and where guidance is needed.
Time to Value (Expansion Features) 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 Strategy | Expansion Strategy is a strategic process focused on identifying, prioritizing, and executing opportunities to increase revenue and market share within existing customer accounts. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include QBR Engagement Rate and Time to Value (Expansion Features). |
| Onboarding Design | Onboarding Design are guided smoothly through the early stages of product adoption. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Engagement Depth (First 3 Sessions) and Onboarding Satisfaction Score (OSS). |
| Feature Monetization | Feature Monetization is the strategic process of identifying, packaging, pricing, and launching specific product features as standalone or upgradeable offerings to generate additional revenue. It helps teams translate strategy into repeatable execution. Relevant KPIs include Time to Value (Expansion Features). |
| QBR Planning | QBR Planning involves methodical preparation for high-impact, periodic reviews between internal stakeholders and customer organizations. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Time to Value (Expansion Features). |
| Engagement Triggers | Engagement Triggers focuses on Identifying, tracking, and responding to specific customer behaviors or milestones—now termed Customer Activation Signals—plays a crucial role in modern go-to-market strategies. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Time to Value (Expansion Features). |
80 accounts activated in Q2
45 of them used expansion features
Avg. time between activation and first expansion use = 10.3 days
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('UserOnboarding', { sql: `SELECT * FROM user_onboarding`, measures: { count: { type: 'count', sql: 'id', title: 'User Onboarding Count', description: 'Counts the number of user onboarding records.' } }, dimensions: { id: { sql: 'id', type: 'string', primaryKey: true, title: 'User Onboarding ID', description: 'Unique identifier for each user onboarding record.' }, activationTimestamp: { sql: 'activation_timestamp', type: 'time', title: 'Activation Timestamp', description: 'Timestamp when the user completed onboarding.' } }})cube('FeatureUsage', { sql: `SELECT * FROM feature_usage`, measures: { count: { type: 'count', sql: 'id', title: 'Feature Usage Count', description: 'Counts the number of feature usage records.' } }, dimensions: { id: { sql: 'id', type: 'string', primaryKey: true, title: 'Feature Usage ID', description: 'Unique identifier for each feature usage record.' }, firstExpansionFeatureUse: { sql: 'first_expansion_feature_use', type: 'time', title: 'First Expansion Feature Use', description: 'Timestamp of the first use of an expansion feature.' }, expansionFeatureDefinition: { sql: 'expansion_feature_definition', type: 'string', title: 'Expansion Feature Definition', description: 'Definition of the expansion feature used.' } }})cube('TimeToValue', { sql: `SELECT u.id AS user_id, TIMESTAMPDIFF(DAY, u.activation_timestamp, f.first_expansion_feature_use) AS time_to_value FROM user_onboarding u JOIN feature_usage f ON u.id = f.user_id`, measures: { averageTimeToValue: { type: 'avg', sql: 'time_to_value', title: 'Average Time to Value', description: 'Average number of days it takes for users to adopt expansion features after onboarding.' } }, dimensions: { userId: { sql: 'user_id', type: 'string', title: 'User ID', description: 'Unique identifier for the user.' }, timeToValue: { sql: 'time_to_value', type: 'number', title: 'Time to Value', description: 'Number of days from activation to first expansion feature use.' } }})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