DEMO — synthetic data. Service business model (home services / remodeling): daily marketing performance for the last 3 months (2026-05-06 → 2026-08-03) across Google Ads, Meta Ads, Organic Search, Direct and Email — spend, impressions, clicks, leads, consults booked, jobs won and won revenue, with per-step cost ratios (CPM, CPC, CPL, cost/consult, CAC) and ROAS. KPI scorecards with sparklines, a metrics-by-period table (day/week/month), an expandable channel → campaign table, a paid-vs-organic contribution split, and metric / conversion / cost trend charts. Global channel and campaign-type filters. Rows are generated by clients/demo/data-gen/marketing-performance.mjs from the service-funnel dataset, so the two dashboards reconcile exactly — no real client data.
clients/demo/data-gen/marketing-performance.mjs from the same dataset behind the
Conversion Funnel report — so the two reconcile exactly. Filter Google Ads in either
one and the leads, consults, jobs and revenue match.The funnel report asks where do people drop off. This one asks what did we pay to get them, and did it pay back. Same fictional home-services company, viewed from the media side: one row per day per campaign, with impressions and clicks in front of the funnel and won revenue behind it.
Every ratio is computed on the totals of whatever is in view — never as an average of daily ratios, which would let a thin Sunday count as much as a heavy Tuesday. A ratio shows — when its denominator is zero.
Google Ads and Meta Ads carry spend, impressions and clicks. Organic Search, Direct and Email have no media cost, so their spend and impressions are zero and every cost ratio (CPM, CPC, CPL, Cost/Consult, CAC) plus CTR and ROAS reads — for them. Their "Clicks" column is sessions rather than paid clicks, which keeps Lead CVR and everything downstream comparable. The Paid vs. rest of marketing section shows what each side actually contributes.
Leads, consults, jobs and revenue are first-touch — credited to the campaign that first brought the person in, and recorded on that arrival date. That makes channel comparisons fair: spend and outcome sit in the same row for the same campaign.
One thing to know about the demo data: every step is booked on the arrival date itself, so there is no settling lag here — the last few days are complete, just short (the range ends mid-week). Against a real warehouse the same query would lag, because a job signed in August is credited back to a June click, and recent weeks would keep filling in for months. Read this dashboard for shape and mechanics, not for how fresh real data behaves.