LAUNCH$167 covers Shopify today. Buy now, get a free re-run when Klaviyo, Meta, and GA4 ship in two weeks. Price moves to $297 after. Lock in $167
DATA/GAPRUN A FREE AUDIT
FIELD NOTES·PROBLEM·MAY 9, 2026

is_first_order missing from customer records: how Shopify stores lose LTV tracking

Triple Whale, Northbeam, and every cohort analysis tool worth running needs one specific field on every Shopify order: is_first_order. It's a boolean: true if this is the customer's first ever order, false if they're a repeat. Shopify doesn't expose this directly; you have to derive it.

If you skip it, three things break: blended ROAS is artificially low (because retention revenue gets counted as acquisition), LTV calculations bake in the wrong cohort assumptions, and your post-purchase email flows fire the wrong message because they don't know who's new versus who's a returning customer.

Three ways to derive is_first_order

  1. Use Shopify's customer.orders_count field. When orders_count === 1 on the order's customer object, this order is the first. Available via the Admin API on every order; just check note_attributes or the embedded customer field.
  2. Use a derived field in your warehouse. Run a SQL window function over the orders table partitioned by customer_id, ordered by created_at. The first row per customer is is_first_order=true.
  3. Use Klaviyo's First Order Date customer property. It's already populated by the Shopify integration; pull it server-side via Klaviyo's API for any customer.

Why most Shopify stores get this wrong

Three common errors. First: storing is_first_order at the customer level instead of the order level. The flag is order-specific, not customer-specific. Second: not backfilling historical orders, so cohort analysis only works for orders post-implementation. Third: confusing first_order_at (a customer property) with is_first_order (an order property). You need both.

How to audit your coverage right now

In Shopify Admin, open an order from a repeat customer. Look at the Additional Details section or the Customer panel. Does it show Orders Count? If yes, the data is queryable. If not, your theme isn't surfacing it but the Admin API still has it.

DataGap pulls a sample of your recent orders and reports the percentage with is_first_order coverage. A typical un-audited store has 20-40% coverage; we tell you exactly which is missing.

RUN THE AUDIT
Want to know which of these gaps your Shopify store has right now?

DataGap connects to your Shopify store via read-only OAuth and returns a ranked list of tracking gaps in 10 minutes. $167 one-time. No subscription.

Run a free audit

Frequently asked

Why is Shopify's orders_count not enough?

It tells you how many orders the customer has placed AS OF NOW. To compute is_first_order historically, you need orders_count at the time of each order, which requires a window function over the orders table.

Will Klaviyo's First Order Date work for cohort analysis?

For segmentation in Klaviyo flows, yes. For cross-system attribution analysis in a warehouse, you'll want the order-level boolean derived from your orders table directly.

RELATED FIELD NOTES