Marketing Analytics

Acquisition dashboard

First-party attribution: every visitor gets an anonymous ID, every session carries its channel, and the quote funnel is measured end to end. Lifecycle stages that don’t exist yet (spend, policies, renewals) show example data, clearly marked.

Example data: illustrative numbers for stages that don't exist yet (ad spend, policies, renewals, referrals). Tiles marked EXAMPLE are not measurements.

Measured — last 30 days

Live tracking isn’t configured in this build (missing NEXT_PUBLIC_ANALYTICS_FN_URL). Events still record to Appwrite if the site env vars are set; see APPWRITE_SETUP.md §7 to enable this dashboard.

Unit economics — example data

Example
Monthly ad spend
$2,700
Google + Meta + LinkedIn
Example
Cost per visitor
$0.52
Example
Cost per quote
$14.21
Example
Cost per policy
$71
Example
Renewal rate
79%
Example
Customer lifetime value
$714
$210/yr × 3.4 yr avg
Example
Referral rate
24%
referrals per renewing customer
Example
Revenue, top channel
$3,990
Organic search — the education payoff

Full lifecycle funnel Example

An illustrative steady-state month after launch. Hatched bars are lifecycle stages the site can’t measure yet.

VisitorsExample
5,200
Article readersExample
3,100
Quotes startedExample
310
Quotes completedExample
190
Policies purchasedExample
38
RenewalsExample
30
ReferralsExample
9

How this works: the site writes events to Appwrite (web_events), which sync to BigQuery with a consistent visitor/customer ID through the whole lifecycle. See the funnel overview for the strategy behind it.