You’re the analytics lead for FreshCart, a US grocery delivery app with 6M MAUs and 1.2M monthly purchasers. FreshCart operates a hybrid model: customers can place one-off orders or subscribe to FreshCart+ ($9.99/month) for free delivery and member-only pricing. The business is preparing next quarter’s marketing budget and needs a defensible Customer Lifetime Value (CLV) model to set CAC caps by channel.
Over the last 8 weeks, leadership has seen contradictory signals:
The CMO asks: “What is our CLV for new customers by channel, and can we still profitably scale paid acquisition?” The CFO adds: “I don’t want a single number—show me what’s driving it and what levers we can pull.”
You must define CLV in a way that works for:
You also need to address practical issues: censoring (many customers are still active), seasonality (holidays), and the fact that some revenue is high but margin is negative after promos and refunds.
| Table | What it contains | Grain |
|---|---|---|
orders | order_id, user_id, order_ts, subtotal, delivery_fee, tip, promo_discount, refund_amount, substitutions_cost, payment_status | Order |
order_items | order_id, sku_id, qty, item_revenue, item_cogs, category | Line item |
subscriptions | user_id, plan_type, start_ts, cancel_ts, monthly_fee, status | Subscription period |
user_acquisition | user_id, first_touch_channel, campaign_id, install_ts, first_order_ts | User |
support_contacts | user_id, contact_ts, issue_type, resolution_cost | Ticket |
delivery_ops | order_id, courier_cost, distance_miles, batch_flag, late_delivery_flag | Order |
Constraints: