← Back to KPIs

Conversion Rate

ConversionRetail, SaaS, Education, Media, Manufacturing, Other, Technology, Finance, Healthcare, E-commerce

Conversion rate measures the percentage of eligible sessions or users that complete a defined conversion action, such as a purchase, lead submission, or signup. It is a core KPI for evaluating how effectively digital experiences turn traffic into business outcomes.

Business Use Case

1️⃣ Monitor conversion rate for key actions in a funnel flow such as Checkout, Purchase, Lead Completion etc., to identify change in conversion trend and fix issues or growth conversation rates by removing friction identified through A/B testing. 2️⃣ Used to monitor funnel health, campaign traffic quality, purchase experience, and revenue opportunity.

Business Criticality

High

Journey / Navigation Area

Digital Analytics, Business Intelligence

Scope

Session

Formula

(Sessions with Conversion Event / Total eligible sessions) * 100

Calculation Notes

1️⃣ Parameterized KPI. Define the conversion goal, eligible population, reporting scope, and attribution window before calculation. 2️⃣ Use goal-specific KPI definitions for purchase, signup, lead, cart, checkout, or booking conversions.

Technical Details

Measure TypeRate
Aggregation WindowUser, Daily, Monthly, Yearly, Quarterly, Weekly, Hourly, Session

Events

PlatformEvent
Google Analytics 4conversion_event_name // Define conversion specific event such as purchase, signup, lead, add_to_cart, etc.
Adobeconversion_event_name // Define conversion specific event such as purchase, signup, lead, add_to_cart, etc.

Data Mappings

W3 Data Layer
window.digitalData.event.push({
  eventInfo: {
    eventName: "conversion_complete",
    eventAction: "conversion",
    type: "conversion",
    timeStamp: new Date().toISOString()
  },
  attributes: {
    conversionGoal: "{{conversion_goal}}",   // purchase, signup, lead, add_to_cart, etc.
    conversionId: "{{conversion_id}}",
    conversionValue: 0,
    currency: "USD",
    conversionStatus: "complete",
    entityScope: "session"                  // session, user, account, visit, lead
  }
});
GA4 Data Layer
dataLayer.push({
  event: "{{conversion_event_name}}",
  conversion: {
    conversion_goal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
    conversion_id: "{{conversion_id}}",
    conversion_value: 0,
    currency: "USD"
  }
});
Adobe Client Data Layer
adobeDataLayer.push({
  event: "conversion.complete",
  conversion: {
    goal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
    id: "{{conversion_id}}",
    value: 0,
    currency: "USD"
  }
});
XDM Mapping
xdm: {
  eventType: "conversion.complete",
  _tenant: {
    conversion: {
      goal: "{{conversion_goal}}", // purchase, signup, lead, add_to_cart, etc.
      id: "{{conversion_id}}",
      value: 0
    }
  }
}

SQL Queries

Google Analytics 4 (BigQuery)
DECLARE conversion_event_names ARRAY<STRING> DEFAULT ['purchase'];
DECLARE eligibility_event_names ARRAY<STRING> DEFAULT ['session_start'];

WITH event_rows AS (
  SELECT
    user_pseudo_id,
    user_id,
    CAST((
      SELECT value.int_value
      FROM UNNEST(event_params)
      WHERE key = 'ga_session_id'
    ) AS STRING) AS ga_session_id,
    event_name
  FROM `project.dataset.events_*`
  WHERE _TABLE_SUFFIX BETWEEN '20260101' AND '20260131'
),

session_flags AS (
  SELECT
    user_pseudo_id,
    user_id,
    ga_session_id,
    MAX(CASE WHEN event_name IN UNNEST(eligibility_event_names) THEN 1 ELSE 0 END) AS is_eligible,
    MAX(CASE WHEN event_name IN UNNEST(conversion_event_names) THEN 1 ELSE 0 END) AS is_converted
  FROM event_rows
  WHERE ga_session_id IS NOT NULL
  GROUP BY user_pseudo_id, user_id, ga_session_id
)

SELECT
  SAFE_DIVIDE(
    COUNTIF(is_eligible = 1 AND is_converted = 1),
    COUNTIF(is_eligible = 1)
  ) * 100 AS conversion_rate
FROM session_flags;
Adobe Experience Platform (AEP Query Service)
WITH event_rows AS (
  SELECT
    COALESCE(
      identityMap['ECID'][0].id,
      identityMap['CRMID'][0].id
    ) AS entity_id,
    eventType,
    _tenant.conversion.goal AS conversion_goal,
    timestamp
  FROM aep_experience_event_dataset
  WHERE timestamp >= TIMESTAMP '2026-01-01 00:00:00'
    AND timestamp <  TIMESTAMP '2026-02-01 00:00:00'
),

entity_flags AS (
  SELECT
    entity_id,

    MAX(CASE
      WHEN eventType = 'web.webpagedetails.pageViews'
      THEN 1 ELSE 0
    END) AS is_eligible,

    MAX(CASE
      WHEN eventType = 'commerce.purchases'
        OR (
          eventType = 'conversion.complete'
          AND conversion_goal IN ('purchase', 'signup', 'lead')
        )
      THEN 1 ELSE 0
    END) AS is_converted

  FROM event_rows
  WHERE entity_id IS NOT NULL
  GROUP BY entity_id
)

SELECT
  SUM(CASE WHEN is_eligible = 1 AND is_converted = 1 THEN 1 ELSE 0 END) * 100.0
  / NULLIF(SUM(CASE WHEN is_eligible = 1 THEN 1 ELSE 0 END), 0) AS conversion_rate
FROM entity_flags;

Source Data

Digital Analytics, Business Intelligence

Dependencies

Prerequisite: List the dependencies required for this KPI

Metrics:

Conversions

Dimensions:

Conversion Type

Report Attributes

Day, Page, Product

Recommended Reporting Views

Views
Executive KPI DashboardConversion Funnel DashboardTraffic AnalysisCampaign PerformanceCRO Dashboard

Segment Eligibility

True

Governance

Data SensitivityInternal

Governance

Created bydev-user
Created on5/29/2026
Last modified bydevyendarm
Last modified on7/8/2026
StatusPUBLISHED

GitHub

View related Pull Requestcatalog/kpis/conversion-rate.yml

Community Discussion