Lifetimely: Funnel report

Funnel report

At a glance

The Funnel report counts customers who complete configurable order steps and shows conversion, drop-off, and timing between those steps. Use it to test a specific purchase-path hypothesis—for example, whether customers who buy a trial product later buy a full-size product—and identify the transition that needs attention.

Availability and data freshness

Availability and prerequisites: The current route sends Shopify or Amazon store context, but the Insights API contract says Amazon report data is beta and currently supports only Repurchase Rate reports. Klaviyo list and segment filters require corresponding imported data.

Freshness and history: The fallback range starts 365 days before today and ends yesterday in the store timezone. A date range saved from this or another report overrides that fallback.

Open the report

From Customer behaviour, select Funnel (/customer_behaviour/funnel). The report opens with Orders placed in: Any sequence, By: Any customer, and one visible unfiltered order step. It recalculates as you change the definition; there is no separate Apply button.

Define the population and steps

Choose the order sequence

  • This sequence: Matching orders must occur chronologically. The configured steps do not need to be consecutive: other orders can occur between them. When combined with New customers, the first configured step must be the customer's first-ever qualifying order; with Any customer, the sequence can begin at any qualifying order in the customer's purchase history.
  • Any sequence (default): Customers can complete the configured steps in any order. Treat the columns as matches to configured conditions, not as a chronological journey. The report does not show timing in this mode.

Choose customers

  • Any customer (default): Includes customers with qualifying order activity in the selected period.
  • New customers: Includes customers whose first qualifying order is in the selected period.

Store-wide prefilters are sent automatically. Because prefilters are applied before customer classification, excluding a customer's actual first order can cause their next qualifying order to become their first order for this report.

Configure order steps

Use Add funnel step to add an order condition and Add filter within a step to narrow it. At least one visible step remains in the editor. Step filters currently offered are:

Step filter Available operators
SKU, Product, Product type, Product variant, Order tag, Discount code, Product tag, Sales channel =, !=, contains, doesn't contain
Order value =, !=, >, <, >=, <=

Equals and not-equals controls select one or more source values. Contains and doesn't-contain accept text. Order value accepts a numeric amount.

Caution: Product variant is visible in the editor, but the frontend marks it as not implemented by the API. Do not use it for decisions until support is confirmed.

Use the customer-side Add filter action to narrow customers by Customer tag, Country, State, Klaviyo list, or Klaviyo segment. These filters offer =, !=, contains, and doesn't contain. Klaviyo filters send list or segment names rather than internal Klaviyo IDs.

Do not interpret an empty value as a defined filter condition.

Select dates

Use Time period to choose custom dates or Last 6 months, Last 12 months, This year, or a Since 2020 through Since 2025 preset. Presets end yesterday; This year and Since… begin at the named calendar boundary in the store timezone. The selected range is saved and shared with other reports that use the common report date picker.

Changing dates changes the qualifying activity window, not the display grouping: Funnel has no daily, weekly, or monthly grouping control.

Funnel definitions other than the shared date range are component state and are not saved as a reusable view; reloading starts from the default sequence, customer mode, and visible step.

Read the visualization and table

  • Step cards and bars: Each column shows the customer count returned for that step. The first bar is the 100% baseline; each later bar's height is its Total conversion % relative to step 1. Green indicators show converted customers and red indicators show the difference from the preceding step.
  • Funnel conversion rate: The unweighted arithmetic mean of Total conversion % for every post-first step. It is not necessarily the final-step conversion rate.
  • Average time to convert: Shown only for This sequence. Despite the tooltip's first-to-last wording, the current UI averages the non-null API-provided Avg. time between values for post-first steps and rounds the result to whole days. It is not computed as an average of customer-level first-to-last durations.
  • Table: Repeats each step as Completed, Dropped off, Total conversion %, Prev. conversion %, and Avg. time between. Timing is rounded to whole days; unavailable values display as -.
  • CSV export: Fetches the active funnel again and exports one row per step with the same calculated columns. The file contains raw numeric percentages and timing values, but it does not include the date range or filter definition as metadata; record those separately when sharing the export.
  • Ask AI: Sends the returned funnel data plus the page's date range and sequence mode as report context. The explicit page context does not include the customer mode or filter definitions, so include those in the question when they matter.

Data contract: what goes into each number

Report input or output Data used or calculation
Base population Identifiable customers and qualifying commerce orders for the active shop after automatically supplied prefilters, date range, customer mode, and customer filters.
Step completion Customer count returned by the Insights Funnel API for the step's order filters and selected sequence mode. Each step is a customer count, not an order or line-item count.
Avg. time between daysBetween returned by the API for a sequential post-first step.
Display percentages and drop-off Calculated in the frontend from adjacent returned customer counts; they are not additional source totals.

The current TypeScript route sends the shop domain, store timezone date boundaries, store settings, prefilters, Shopify/Amazon selection, step definitions, customer mode, sequence mode, and customer filters to the Insights API. The API returns only step number, completed-customer count, and optional days-between values. Consequently, the repository does not establish these consequential service rules: which order timestamp qualifies, how repeated matches and multi-item orders are deduplicated, how missing customer identity is handled, whether cancellations/refunds or later edits are restated, and how filters combine.

Metrics and calculations

For a post-first step n, let C₁ be the step-1 customer count, Cₙ the current count, and Cₙ₋₁ the preceding count.

Field Definition
Completed Cₙ: customers returned as completing the step.
Total conversion % Cₙ / C₁ × 100. If C₁ is zero, the UI uses 0%. Step 1 displays - in the table and 100% in the chart as the baseline.
Prev. conversion % Cₙ / Cₙ₋₁ × 100. If the preceding count is zero, the UI uses 0%.
Dropped off Cₙ₋₁ − Cₙ. Step 1 displays -.
Drop-off % (Cₙ₋₁ − Cₙ) / Cₙ₋₁ × 100; shown in the visualization. If the preceding count is zero, the calculation uses 0%.
Avg. time between API-provided days between the current and preceding step for This sequence; rounded to a whole day for display.
Funnel conversion rate Arithmetic mean of the non-null Total conversion % values across all post-first steps. A one-step funnel displays -.
Average time to convert Arithmetic mean of non-null post-first Avg. time between values, rounded to a whole day. A missing set of intervals displays -.

In Any sequence, step populations are not necessarily nested. A later step can therefore contain more customers than the preceding step, causing conversion above 100%, negative Dropped off, and a negative displayed drop-off percentage. That result means “more customers matched this configured condition,” not that customers moved backward through a chronological funnel.

Worked example

Suppose 100 customers complete step 1, 60 complete step 2 after an API-reported average interval of 4 days, and 30 complete step 3 after an interval of 8 days.

  • Step 2 total and previous conversion are 60 / 100 = 60%; 40 customers dropped off.
  • Step 3 total conversion is 30 / 100 = 30%; previous conversion is 30 / 60 = 50%; 30 customers dropped off.
  • Funnel conversion rate is the unweighted mean (60% + 30%) / 2 = 45%, not the final 30% conversion.
  • Average time to convert displays (4 + 8) / 2 = 6 days, not the 12-day sum from step 1 to step 3.

The largest proportional transition loss is step 2 to step 3, where half of the preceding group drops. Verify the step filters and customer population, then test merchandising or lifecycle messaging aimed at that transition.

Reconcile unexpected results

  1. Record Time period, Orders placed in, By, every step condition, and every customer filter. The CSV does not preserve that definition.
  2. Check the store's prefilters, especially cancelled, zero-value, POS, draft, channel, order-tag, and customer-tag exclusions. These can change both the base population and which order is considered first.
  3. For Any sequence, compare each step as an independent configured match; do not expect counts to decrease or timing to appear.
  4. For This sequence, remember that unconfigured orders may occur between steps and that New customers anchors step 1 to the first-ever qualifying order.
  5. Compare matching customers and orders with the source platform. Allow for unresolved identity, timestamp, edit, cancellation, refund, and processing-latency rules.

Do not expect Funnel to match Repurchase Rate or Time between orders. Funnel counts customers matching configured steps; Repurchase Rate uses anchored cohorts and fixed repurchase windows; Time between orders counts selected repeat-order intervals. Product Journey is better for discovering paths before defining a funnel.

Next actions

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us