Required Datapoints
- Referral Messages Sent
- Number with Customization Detected (e.g., edited message field)
- Tracking Window
Personalized Referral Outreach Rate measures the percentage of users who send a customized or non-default referral message when inviting others. It helps assess referral intent and engagement quality.
Personalized Referral Outreach Rate is a key indicator of advocacy quality and referral intent, reflecting how often users add custom messages or context when inviting others to try the product.
The relevance and interpretation of this metric shift depending on the model or product:
A high rate typically signals confidence, affinity, and product-market fit. A low rate may indicate reliance on passive incentives or limited emotional connection to the product.
By segmenting by cohort — such as referrer role, product plan, or source channel — you can identify who’s actively evangelizing, and where to double down on advocate enablement.
Personalized Referral Outreach Rate 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 |
|---|---|
| Referral Program Optimization | Referral Program Optimization focuses on the strategic assessment, redesign, and ongoing optimization of customer and partner referral initiatives. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Personalized Referral Outreach Rate and Referral Churn Rate. |
| Advocacy Campaigns | Advocacy Campaigns focuses on Coordinated efforts to shape public perception, influence stakeholder opinions, and impact industry standards play a crucial role in creating favorable conditions for product adoption and business growth. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include New Users from Referrals and Personalized Referral Outreach Rate. |
| Post-Activation Strategy | Post-Activation Strategy is a structured process where a company actively engages with new customers immediately after product activation or onboarding. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Personalized Referral Outreach Rate. |
| In-App Referral Nudges | In-App Referral Nudges are strategically designed in-app notifications or call-to-actions that encourage existing users to refer new customers to a product or service. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Personalized Referral Outreach Rate. |
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('ReferralMessages', { sql: `SELECT * FROM referral_messages`,
measures: { totalMessagesSent: { sql: `referral_message_id`, type: 'count', title: 'Total Referral Messages Sent', description: 'Total number of referral messages sent by users.' }, customizedMessages: { sql: `CASE WHEN message_customized = TRUE THEN referral_message_id ELSE NULL END`, type: 'count', title: 'Customized Referral Messages', description: 'Number of referral messages that were customized by users.' }, personalizedReferralOutreachRate: { sql: `100.0 * ${customizedMessages} / NULLIF(${totalMessagesSent}, 0)`, type: 'number', title: 'Personalized Referral Outreach Rate', description: 'Percentage of referral messages that were customized by users.' } },
dimensions: { referralMessageId: { sql: `referral_message_id`, type: 'string', primaryKey: true, title: 'Referral Message ID', description: 'Unique identifier for each referral message.' }, userId: { sql: `user_id`, type: 'string', title: 'User ID', description: 'Unique identifier for the user sending the referral message.' }, messageCustomized: { sql: `message_customized`, type: 'boolean', title: 'Message Customized', description: 'Indicates whether the referral message was customized by the user.' }, createdAt: { sql: `created_at`, type: 'time', title: 'Created At', description: 'Timestamp when the referral message 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