Required Datapoints
- Number of Active Customers/Users in Scope
- Number of Times a Warm Introduction Was Prompted or Offered
- Defined Triggers (e.g., QBR, NPS score, renewal success)
Warm Introduction Offer Rate measures the percentage of customers, partners, or users who are asked or prompted to provide a warm introduction to a relevant contact. It helps assess how often teams or workflows are activating social referrals as part of GTM efforts.
Warm Introduction Offer Rate is a key indicator of customer advocacy readiness and network-based growth activation, reflecting how often your team asks for or offers introductions to new prospects via trusted relationships.
The relevance and interpretation of this metric shift depending on the model or product:
A low rate suggests missed opportunities or discomfort with the ask, while a higher rate shows process maturity and scalable relationship-led growth.
By segmenting by CSM, rep, lifecycle stage, or NPS, you pinpoint when and where referrals are most likely to succeed.
Warm Introduction Offer 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 |
|---|---|
| QBRs | QBRs are structured, recurring meetings between provider teams—such as sales, customer success, or product—and their customers. It helps teams translate strategy into repeatable execution. Relevant KPIs include Referral-Ready Account Rate and Relationship Depth Score. |
| Advocacy Programs | Advocacy Programs are strategic programs aimed at cultivating and empowering satisfied customers to become active brand champions. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Referral Discussion Initiation Rate and Referral Retention Rate. |
| Renewal Campaigns | Renewal Campaigns involves the strategic and operational processes that ensure existing customers maintain their subscriptions or service agreements. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Warm Introduction Offer Rate. |
| Referral Activation | Referral Activation is the intentional process of equipping and motivating existing customers, partners, or stakeholders to actively refer new prospects into the funnel. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Warm Introduction Offer Rate. |
| Customer Success Enablement | Customer Success Enablement involves implementing strategic initiatives, providing resources, and developing processes to empower customer-facing teams—especially Customer Success Managers. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Warm Introduction Offer Rate. |
200 high-satisfaction customers (NPS 9–10) in Q2
38 were asked for warm intros during onboarding check-ins or renewals
Formula: 38 ÷ 200 = 19% Warm Introduction Offer 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('WarmIntroductionOffers', { sql: `SELECT * FROM warm_introduction_offers`,
measures: { warmIntroductionOfferCount: { sql: `warm_introduction_id`, type: 'count', title: 'Warm Introduction Offer Count', description: 'Counts the number of times a warm introduction was prompted or offered.' }, warmIntroductionOfferRate: { sql: `100.0 * ${warmIntroductionOfferCount} / NULLIF(${activeCustomerCount}, 0)` , type: 'number', title: 'Warm Introduction Offer Rate', description: 'Calculates the percentage of active customers or users who were prompted for a warm introduction.' } },
dimensions: { warmIntroductionId: { sql: `warm_introduction_id`, type: 'string', primaryKey: true, title: 'Warm Introduction ID', description: 'Unique identifier for each warm introduction offer.' }, customerId: { sql: `customer_id`, type: 'string', title: 'Customer ID', description: 'Identifier for the customer involved in the warm introduction offer.' }, triggerEvent: { sql: `trigger_event`, type: 'string', title: 'Trigger Event', description: 'The event that triggered the warm introduction offer, such as QBR or NPS score.' }, offerDate: { sql: `offer_date`, type: 'time', title: 'Offer Date', description: 'The date when the warm introduction was offered.' } },
joins: { ActiveCustomers: { relationship: 'belongsTo', sql: `${CUBE}.customer_id = ${ActiveCustomers}.customer_id` } }});cube('ActiveCustomers', { sql: `SELECT * FROM active_customers`,
measures: { activeCustomerCount: { sql: `customer_id`, type: 'count', title: 'Active Customer Count', description: 'Counts the number of active customers or users in scope.' } },
dimensions: { customerId: { sql: `customer_id`, type: 'string', primaryKey: true, title: 'Customer ID', description: 'Unique identifier for each active customer.' }, customerName: { sql: `customer_name`, type: 'string', title: 'Customer Name', description: 'Name of the active customer.' }, activationDate: { sql: `activation_date`, type: 'time', title: 'Activation Date', description: 'The date when the customer became active.' } }});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