Paid
Weekly Growth review · ISO week undefined · undefined undefined · undefined · Generated undefined
Is paid acquisition efficient — are we buying reseller sign-ups at a sustainable cost?
Fact · Cause · Action
AI-generated — stub. Volume is fine; efficiency isn't — CAC has drifted well over target, and it's two specific campaigns doing the damage, not the channel. The table is the whole story; the sections below let you validate each fact and cause.
| Section | Fact | Cause | Proposed action |
|---|---|---|---|
| Campaign detail | LinkedIn retargeting's ~£230 group average hides a crater — content-engaged doubled to £300 CAC — and a star (competitor-lookalike £160). Display — broad spent £200 for 0 sign-ups. | Creative fatigue on content-engaged; wasted spend on Display; competitor-lookalike scaling well. | Refresh content-engaged creative; pause Display; shift budget to competitor-lookalike and brand-core. |
| Sign-ups vs CAC | Blended CAC £220, up from £187 and well over the £150 target — creeping up for a month. | The two underperforming campaigns are dragging the blended number. | Reallocate their budget to Search — brand (CAC £107) and re-check CAC next week. |
| Paid funnel forward rates | Landing → sign-up dipped to 2.0%, below its 2.2% floor. | Lower-intent traffic from the weak campaigns lands but doesn't convert. | Should recover once the campaign mix is fixed; watch, no separate action. |
| Product funnel | ~86% who start the sign-up form abandon it — 42 started, only 6 completed. | Self-serve friction in the sign-up flow; no human to recover a stalled user. | Product review of the sign-up form — instrument the drop-off steps and fix the biggest one. |
Sign-ups vs CAC — efficiency
This week. The two are pulling apart the wrong way — sign-ups drifting down while CAC climbs to £220 against a £150 target. When paid works these move together (more sign-ups, lower cost); right now they diverge, which is the whole paid problem in one picture. · AI stub
Catalog Error: Table with name supply_paid_kpi does not exist!
Did you mean "pg_catalog.pg_am"?
LINE 5: from demo.supply_paid_kpi order by week_start
^Paid funnel
This week. 48k impressions narrowing to 6 sign-ups. The shape is normal; the pinch is Landing → sign-up, where paid traffic lands but doesn't convert. · AI stub
Catalog Error: Table with name supply_paid_funnel does not exist!
Did you mean "pg_catalog.pg_indexes"?
LINE 2: ... SELECT * FROM (select stage, count, ln(count) as size from demo.supply_paid_funnel order by stage_order
^Paid funnel forward rates
This week. Click → landing holds, but Landing → sign-up dipped to 2.0% — below its floor — with volume under floor too. Lower-intent traffic is landing but not signing. · AI stub
Catalog Error: Table with name supply_paid_steps does not exist!
Did you mean "main.sqlite_master"?
LINE 4: from demo.supply_paid_steps order by step_order
^Product funnel — landed to sign-up
This week. The media funnel stops at 'signed up', but the on-site journey shows where those sign-ups are lost: 300 landed → 42 started the form → just 6 completed. Roughly 86% who start the form abandon it — a product/UX problem, not a media one, and it hits self-serve paid users hardest. · AI stub
Catalog Error: Table with name supply_paid_product_funnel does not exist!
Did you mean "pg_catalog.pg_proc"?
LINE 2: ... SELECT * FROM (select stage, count, ln(count) as size from demo.supply_paid_product_funnel order by stage_order
^Campaign detail
This week. Read this at the campaign level, not the channel — the averages hide the action. LinkedIn retargeting looks middling as a group (~£230 CAC), but that masks two opposite stories: competitor-lookalike is a star (£160 and improving — scale it) while content-engaged has doubled to £300 (creative fatigue — refresh that creative, not the whole channel). Display — broad spent £200 for zero sign-ups — pause. Brand-core (£110, improving) is the efficient core to lean on. The action is per-campaign; a channel-level "refresh LinkedIn" would miss both the star and the crater. · AI stub
Catalog Error: Table with name supply_paid_campaigns does not exist!
Did you mean "main.duckdb_columns"?
LINE 6: from demo.supply_paid_campaigns order by channel, spend desc
^
