hedgehog-client-portal renderer reference — internal use
Burrow component library
Deliverable card — Google Ads monthly report
Monthly Google Ads performance card. Shows metric tiles, status badge, and narrative summary.
Accelerate Automotive — Google Ads
18,420
Impressions
412
Clicks
2.24%
CTR
28
Conversions
$847.60
Cost
$30.27
CPA
Strong month — CPA held well below target at $30.27 against a $45 target. Brakes campaign drove 14 of 28 conversions.
Data shape
{ "type": "google-ads-report", "month": "May 2026", "client": "Accelerate Automotive",
"status": "approved",
"metrics": { "impressions": 18420, "clicks": 412, "ctr": 2.24,
"conversions": 28, "cost": 847.60, "cpa": 30.27 },
"summary": "Strong month — CPA held well below target..." }
Deliverable card — Meta Ads monthly report
Monthly Meta Ads performance card. Status badge shows "Pending approval" in yellow/amber.
Visions Fitness Centre — Meta Ads
24,100
Reach
61,300
Impressions
890
Clicks
34
Leads
$1,204.50
Cost
$35.43
CPL
Lead volume up 18% month-on-month. CPL is trending slightly above target — recommend reviewing the audience on the Gym Membership campaign.
Data shape
{ "type": "meta-ads-report", "month": "May 2026", "client": "Visions Fitness Centre",
"status": "pending-approval",
"metrics": { "reach": 24100, "impressions": 61300, "clicks": 890,
"leads": 34, "cost": 1204.50, "cpl": 35.43 },
"summary": "Lead volume up 18% month-on-month..." }
Approval panel — Google Ads
Proposed campaign changes requiring client or internal approval. Buttons are disabled in preview mode.
Core Diesel — Google Ads changes
May 2026 · 2 proposed changes
Grand Opening
$30/day
→
$45/day
budget
Grand opening period — increase exposure through June
Services
Maximise clicks
→
Target CPA $55
bid strategy
Sufficient conversion data now accumulated to move to smart bidding
(Buttons are inactive in preview mode)
Data shape
{ "type": "approval-panel", "channel": "Google Ads", "client": "Core Diesel",
"month": "May 2026", "status": "pending",
"changes": [
{ "type": "budget", "campaign": "Grand Opening",
"from": "$30/day", "to": "$45/day", "reason": "..." },
{ "type": "bid-strategy", "campaign": "Services",
"from": "Maximise clicks", "to": "Target CPA $55", "reason": "..." }
]}
Planning report renderer
Monthly planning report showing channel ratings and priority actions.
Holmes Aviation — Planning Report
Channel performance
Google Ads
Performing above target. CPA $82 against $95 target. Recommend maintaining current structure.
SEO
Organic traffic up 12% MoM but target keyword rankings stalled at positions 8–12. Content plan in progress.
Email
Open rate 34.2%, click rate 4.8%. Automation sequences performing well.
Priorities
- Launch content cluster for private pilot training keywords
- A/B test subject lines on the enrolment nurture sequence
- Review Google Ads location targeting — low conversion rate from interstate traffic
Data shape
{ "type": "planning-report", "client": "Holmes Aviation", "month": "May 2026",
"channels": [
{ "name": "Google Ads", "rating": "green", "summary": "..." },
{ "name": "SEO", "rating": "yellow", "summary": "..." },
{ "name": "Email", "rating": "green", "summary": "..." }
],
"priorities": ["Launch content cluster...", "A/B test subject lines...", "Review..."] }
Quarterly plan renderer
Strategic quarterly plan showing channel initiatives with timing.
GluteGuard — Quarterly Plan
Q3 FY27
Focus: Canada market expansion
Google Ads
Launch Canada campaign targeting coeliac-adjacent search terms
July
SEO
Publish 4 blog posts targeting Canadian search intent
Jul–Aug
Email
Build Canada-specific welcome sequence
August
Data shape
{ "type": "quarterly-plan", "client": "GluteGuard", "quarter": "Q3 FY27",
"focus": "Canada market expansion",
"initiatives": [
{ "channel": "Google Ads", "initiative": "Launch Canada campaign...", "timing": "July" },
{ "channel": "SEO", "initiative": "Publish 4 blog posts...", "timing": "July–August" },
{ "channel": "Email", "initiative": "Build Canada-specific welcome sequence", "timing": "August" }
]}
Empty state
Shown when no deliverables exist yet for a client or period.
No deliverables yet for this month.
Data shape
{ "type": "empty", "message": "No deliverables yet for this month." }