Incident Lab · SEV3 · SQL
The churn report is suddenly empty
Customer success: 'customers with no order in 90 days' returned 0 rows this morning. It had 2 yesterday.
Nothing in the model changed. What changed is the data: a guest checkout created an order with no customer ( customer id IS NULL ). The model uses customer id NOT IN (SELECT customer id FROM recent orders) . In SQL, x NOT IN (…, NULL) is never true: comparing with NULL gives unknown , so every customer drops out. This trap exists in every database (Postgres, Snowflake, BigQuery, DuckDB). Investigate: Fix churn candidates so a NULL in recent orders can't empty the report. Columns: customer id , name .
