Revenue
Grow → Revenue answers one question: are you buying customers for less than they are worth?
It joins Stripe (what customers pay) with channel spend (what acquisition costs). It is not a Stripe Dashboard clone.
What you see
- Paid LTV : CAC (or payback) when both sides exist
- A Trend chart of verified CAC vs current LTV — same date range controls as Acquisition → Analytics (including custom range, grain, and compare)
- Supporting numbers — Paid LTV, CAC, ARPU — and a channel table
- Incomplete when a pipe is missing, with the gap named (Stripe, Ads, identify, …)
Paid LTV only counts Stripe customers who have an ad-click first touch on their contact. Company-wide LTV is the wider Stripe book.
What to connect
| Need | Where |
|---|---|
| Stripe | Settings → Integrations → Stripe |
| Google Ads spend | Settings → Integrations → Google Ads, then Grow → Paid |
| Ad click → customer | Tracking snippet + stx.identify({ email }) after signup |
Connect order does not matter. The scoreboard fills as each piece lands.
Identify after signup
stx.identify({ email: user.email })Call this when the user is signed in (signup and ideally login). It links the anonymous visit — and any Google click id on it — to the contact. Names and plan belong on POST /contacts; identify only needs email for this stitch.
If Revenue says identify is missing, wire that call (or ask Ranla to open a PR when GitHub is connected).
Paid vs Revenue
| Page | Job |
|---|---|
| Grow → Paid | Run the ad account — spend, drafts, approvals |
| Grow → Revenue | Grade the business — was the win worth the cost? |
Next steps
- Google Ads — connect and operate Paid
- Instrument your product — snippet + events
- On-site messages — capture before signup