Required Datapoints
- New Users or Accounts
- Timestamp of Account Creation
- Timestamp of First Use for Each Top Feature
- Top 3 Features (pre-defined)
Feature Adoption Velocity (Top 3 Features) measures the average time it takes for new users to adopt your top 3 product features after onboarding. It helps assess onboarding effectiveness and early value alignment.
Feature Adoption Velocity (Top 3 Features) is a key indicator of early product alignment and value delivery speed, reflecting how quickly users begin interacting with your most important or differentiating features.
The relevance and interpretation of this metric shift depending on the model or product:
Faster adoption velocity suggests strong product guidance and early relevance, while a slower rate flags potential friction or messaging gaps during first use.
By segmenting by traffic source, persona, or activation cohort, you can fine-tune onboarding, education, and support experiences to increase engagement and reduce early drop-off.
Feature Adoption Velocity (Top 3 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 |
|---|---|
| Onboarding Optimization | Onboarding Optimization is a strategic process focused on refining and streamlining the experience new customers have when adopting a product or service. It improves performance by removing friction, testing changes, and scaling what works. Relevant KPIs include Action-to-Activation Time Lag and Activation Cohort Retention Rate (Day 7/30). |
| Product Education | Product Education is a strategic process focused on equipping go-to-market teams—including sales, customer success, and support—with the essential knowledge, skills, and resources to effectively position, demonstrate, and support a product. It helps teams translate strategy into repeatable execution. Relevant KPIs include Feature Adoption Rate (Early) and Feature Adoption Velocity (Top 3 Features). |
| Feature Launch Analysis | Feature Launch Analysis involves systematically evaluating the performance, adoption, and business outcomes of a newly launched product feature. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include Feature Adoption Velocity (Top 3 Features). |
| In-App Messaging | In-App Messaging involves strategically delivering direct, contextual messages to users within a digital product or application. It helps teams translate strategy into repeatable execution. Relevant KPIs include Feature Adoption Velocity (Top 3 Features) and Referral Invitation Rate. |
Avg. time to use top 3 features: 1.5, 2.3, 3.0 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: { newUserCount: { sql: `id`, type: 'count', title: 'New User Count', description: 'Counts the number of new users or accounts created.' } }, dimensions: { id: { sql: `id`, type: 'string', primaryKey: true, title: 'User ID', description: 'Unique identifier for each user or account.' }, accountCreationTimestamp: { sql: `account_creation_timestamp`, type: 'time', title: 'Account Creation Timestamp', description: 'Timestamp when the account was created.' } }})cube('FeatureUsage', { sql: `SELECT * FROM feature_usage`, measures: { featureAdoptionTime: { sql: `TIMESTAMPDIFF(SECOND, ${UserOnboarding.accountCreationTimestamp}, first_use_timestamp)`, type: 'avg', title: 'Feature Adoption Time', description: 'Average time in seconds for new users to adopt a feature after onboarding.' } }, dimensions: { id: { sql: `id`, type: 'string', primaryKey: true, title: 'Usage ID', description: 'Unique identifier for each feature usage event.' }, featureName: { sql: `feature_name`, type: 'string', title: 'Feature Name', description: 'Name of the feature being used.' }, firstUseTimestamp: { sql: `first_use_timestamp`, type: 'time', title: 'First Use Timestamp', description: 'Timestamp when the feature was first used by the user.' } }, joins: { UserOnboarding: { relationship: 'belongsTo', sql: `${CUBE}.user_id = ${UserOnboarding.id}` } }})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