GuidesFunnel Report

Funnel Report

What the Funnel report needs to work and how to track each step of your conversion journey.

This documentation applies to the legacy Hardal platform. View current documentation or open the legacy dashboard.

The Funnel report visualises how users move through a sequence of events — from first visit to final conversion. It works with any events you're already tracking; no extra configuration is needed beyond making sure each step fires as a separate event.

How it works

Hardal counts the number of sessions that reached each step in order. A session must fire the events in sequence to be counted at each step. Drop-off between steps is calculated automatically.

The default funnel for an e-commerce signal is:

page_view → view_item → add_to_cart → begin_checkout → purchase

What each step needs

The funnel itself only requires that each event is tracked. For the best data, add context to your key events:

// Step 1 — auto-tracked by Hardal on every page load
hardal.track("page_view");

// Step 2 — user views a product
hardal.track("view_item", {
  currency: "USD",
  value: 99.99,
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

// Step 3 — user adds to cart
hardal.track("add_to_cart", {
  currency: "USD",
  value: 99.99,
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

// Step 4 — user begins checkout
hardal.track("begin_checkout", {
  currency: "USD",
  value: 99.99,
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

// Step 5 — purchase complete
hardal.track("purchase", {
  transaction_id: "ORDER-001",
  value: 99.99,
  currency: "USD",
  items: [{ item_id: "SKU-001", item_name: "Product Name", price: 99.99, quantity: 1 }]
});

Use the same item_id and item_name across view_item, add_to_cart, and purchase. Inconsistent item identifiers break the Items report and make funnel-level product analysis unreliable.

Custom funnels

You can build funnels around any events. For a lead generation funnel:

hardal.track("page_view");          // Step 1 — landing
hardal.track("sign_up");            // Step 2 — registration
hardal.track("trial_start");        // Step 3 — trial
hardal.track("purchase", { ... });  // Step 4 — conversion

The Funnel page in the dashboard lets you select which events form each step.

Common setup issues

SymptomLikely causeFix
Steps show 0 sessionsEvent name mismatchCheck the exact event name used — add_to_cart ≠ addToCart
Funnel not appearingEvents not firing in orderVerify each step fires via the Events page in analytics
Drop-off looks wrongSame session fires steps out of orderEnsure events fire only when the action actually occurs

View Funnel report

See your live funnel performance in the analytics dashboard