Overview

Last 30 days · ending Jun 12, 2026
☆ Save view ✦ Ask 🧪 1 experiment 🔔3
⌘K
Yesterdayin expected range
$6,646
1,186 conversions · within the holdout-era norm
June pacing→ 7% under plan
93%
pacing alarm below has the fix
Health
✓
checks passed · 0 disapprovals · guardrails green
Decisions needed
—
start review mode →

⚡ Needs a decision today

📉 Pacing alarm — 7% under plan

June is tracking ~$21k under the $300k plan. Best homes for the extra budget, pre-checked against guardrails:

Teacher AI · +$280/day headroom
$2.97/signup · best efficiency in the account
Conquest · losing 33% IS to budget
1,573 cross-funnel signups hiding here
Hold the rest until Jun 16
the holdout verdict may free brand budget anyway
WAIT

🌙 While you were out

✓
System · /check · 9:02
Daily health check passed — pacing normal, 0 disapprovals.
🧪
Experiment
Holdout day 8 of 12 — organic recapture steady at ~250 signups/day.

Shortcuts:
Monthly spend plan$278.6k / $300k · on pace
Cost / signup vs ceiling$3.19 / $3.50 ✓
Q2 pipeline target$2.4M / $2.0M · exceeded

Spend & conversions — last 60 days

🪜 The funnel — this window

🧪 Live experiment

⏸
Brand-search incrementality holdout — brand campaign paused since Jun 4; protected by a guardrail until the verdict.
📉
Early read: brand clicks are only ~35–55% incremental.
💰
~$4,000/mo of related fixes deliberately held so they don't contaminate the test.

⚡ Needs your attention

Channels

Click a channel to focus the whole dashboard on it.

Top campaigns

Every action in Compound is attributed — an agent, the orchestrator, or you. Nothing happens anonymously.
Click a campaign name for the full drill-down. CPA shows “—” where it isn’t the right scoreboard.

▸ What-if: reallocate budget estimate — directional only

🔑 This is where the Keyword Researcher hunts. Converting terms get promoted into managed keywords (bids and ads under explicit control); waste gets blocked with surgical match types; brand-adjacent terms stay held while the holdout runs.
Auto-written by the reporter agent at the end of every cycle.

Weekly brief — Acme Learning

Week of Jun 6–12, 2026 · written by Compound · reviewed by your strategist

The week in one paragraph

A quiet, deliberate week: spend held at the reduced level you set in late May (~$48k across Google + LinkedIn), signups stayed efficient at $3.19 — comfortably under the $3.50 ceiling — and the brand-search experiment entered its final stretch with a verdict due Jun 16. The June 11 audit queued 12 recommendations worth ≈$38,000/mo; none have been applied yet, pending your approval.

What we found

  • $21,000/mo flagged: Demand Gen bought 177,000 clicks for 60 signups (~$350 each). We queued an analytics trace before judging — junk clicks or broken tracking, the data will say.
  • $12,000/mo of proven volume: ~7,600 signups/60d are flowing through unmanaged search terms. Fourteen promotions are queued.
  • A creative formula: compliance-proof ads (FERPA, 20k districts) earn 16.8% CTR vs 8.4% generic — now feeding every new B2B brief.

What we deliberately did NOT do

~$4,000/mo of brand-negative fixes are held — applying them mid-experiment would contaminate the holdout. The fix is queued for the moment the verdict lands.

What happens next

Jun 16: holdout verdict → brand budget decision + held fixes unlock. Pending your approval: the 12 audit recommendations (the five negatives are one click — they're surgical and risk-free). The retro grades this cycle's changes ~Jun 18.

Every number above links to its evidence in the dashboard. Nothing in this brief was written by a human — and nothing in your account was changed without one.

Experiments are first-class objects: designed up front, protected by guardrails, judged on evidence.

🧪 Brand-search incrementality holdout RUNNINGverdict in 4 days

Jun 4started
Jun 16verdict due
35–55%early incrementality read
$4,000/mofixes held to protect the test
Statistical confidencedirectional now → verdict-grade by Jun 16 (~4 more days of data)

Question: how many brand-search signups are truly incremental vs recaptured free? Design: pause Brand_Search_Demo, watch total signups vs brand volume. The campaign is guardrail-protected — even an approved enable request is blocked until the verdict. Early read: other campaigns recapture ~250 signups/day organically.

📉 Budget-cut staircase COMPLETE · May 20–26

Question: does cutting ~33% of spend hurt efficiency? Verdict: CPA held flat while volume tracked spend — the account had healthy headroom. Learning recorded so no agent ever misreads the dip as decay.

🎨 Compliance-creative split COMPLETE · Apr–May

Question: what message wins district queries? Verdict: compliance-proof creative at 16.8% CTR vs 8.4% generic — 2×. The formula was adopted account-wide and now writes the Creative Studio briefs.

June 2026

plan $300k · tracking 93%

🌡 Seasonality

Teacher searches dip hard from late June (summer break) and ramp from late July (back-to-school). The trend researcher pre-stages the B2S budget plan in July — and won't let anyone misread the June dip as decay.

📌 Coming up

🧪
Jun 16 — holdout verdict; unlocks ~$4k/mo of held fixes
⚖️
Jun 18 — retro grades this cycle's changes
🎪
Jun 22 — ISTE conference; district traffic spike expected

Auction landscape — impression-share overlap

Who you're meeting in the auction and which way they're trending. Watched continuously by the competitor analyst.
📣 New this week: a competitor shipped a comparison page targeting “vs” queries. The landing-page auditor was notified, and a counter-brief is drafted and waiting in Creative Studio.
Keyword cluster: “exit ticket generator”
est. 14k searches/mofits the $3.50 ceilingKeyword Planner
Adjacent to your converting quiz/rubric cluster — similar intent converts at ~$3.10. Drafted as its own ad group with three RSAs.
Keyword cluster: “ai grading rubric”
est. 9k searches/moKeyword Planner
Search demand grew 3× this semester; your rubric-maker term already converts at $3.36 — this is the head term above it.
Audience: lookalike of demo-booking admins
reach ~84kLinkedIn
Built from the 24 lead-form admins + CRM demo bookers. Tighter than the current role targeting that produces engagement clicks.
Channel gap: TikTok teacher-creators
competitor presence detectedtrend researcher
Two competitors run teacher-creator Spark Ads; you have zero presence. Paired with a UGC creative test, this is a fast one to run.
Budget headroom: Conquest losing 33% IS to budget
+$300/day capacityauction insights
Strong cross-funnel economics (1,573 signups) and it's leaving a third of its auctions on the table.
Health score
86/100
2 issues open · checked daily by the account auditor
Conversion scoping
✓
verified Jun 11 — campaigns count only their own goals
CRM join
94%
of deals matched to ad UTMs

Open issues

⚠️

Demo form double-tracked (GA4 + HubSpot)

Demo counts read ~2× high until one source of truth is chosen.

fix queued · rec-09
⚠️

/ai-tool/presentation-maker — 1,900 clicks, ~0 conversions

Siblings convert 16–23% of clicks; this smells like a broken tag, not a bad page.

trace queued
⚠️

3 LinkedIn ads missing UTM parameters

Their landing clicks are invisible to the CRM join until tagged.

✅

Google conversion goals correctly scoped

Verified during the Jun 11 audit.

✅

No disapprovals, no policy flags

All ads serving normally.

Managed spend · 30d
$530k
across 3 clients
Clients
3
+ 1 onboarding
Pending approvals
23
all human-gated
Learnings promoted
6
client → global library

Cross-client learnings — one brain, many accounts

When a learning generalizes, it's promoted to the global library and every client benefits on the next cycle.
Promoted · found at Acme
CRM conversions must be PRIMARY for smart bidding to use them
AppliedSaved Lexbridge the same blind-bidding mistake during onboarding.
Promoted · found at Acme
Conquest terms masquerade as waste — check strategy before judging
AppliedStopped a "cleanup" that would have paused Northwind's best prospecting campaign.
Promoted · found at Northwind
Budget-capped winners are the cheapest growth available
AppliedSurfaced $13k/mo of capped winners across the portfolio, Acme included.
Jun 11 audit · 5 agents in parallel nothing executes without your approval
CONCEPT PREVIEW — Creative Studio

The loop Creative Studio closes: Compound's learning loop discovers which creative wins and why → the insight becomes a structured brief → finished variants get rendered at scale → they land in the ad account paused, awaiting one-click approval → performance feeds the next brief.

1 Insight — from the learning loop

Verified · Jun 11 audit

District queries reward compliance-proof creative

Same campaign, same audience: the ad leading with FERPA compliance + “trusted by 20,000 districts” + admin dashboards earns 16.8% CTR vs 8.4% for generic teacher-freebie creative.

Formula: lead with compliance & scale proof, not features.

📈 Trending now · scraped nightly via Apify
🪝 “POV: my admin asked…” hook format +340% in teacher TikTok
🎵 Trending sound flagged licensed-safe for ads use
🎬 Fast carousel cuts beating talking-head 2:1 this week

All three folded into the brief → so the brief renders into the current moment, not last quarter's.

2 Brief — auto-generated

AudienceDistrict admins & curriculum directors (B2B)
MessageCompliance-first: FERPA / SOC 2, 20k districts, admin visibility
Proof16.8% CTR formula from the learnings log · district logos · privacy score
Formats15s video · 30s UGC-style · 6s bumper · RSA copy set
Trends“POV: my admin asked…” hook · licensed-safe trending sound · fast carousel cuts (Apify, last night)
Landing/curriculum-intelligence
GuardrailBrand kit + claims allow-list enforced by the brand-claims gate

3 Variants — rendered concepts

🏛️0:15
District Trust READY
“20,000 districts already said yes. Here's the 15-second version of why.”

🎤0:30
Teacher Voices · UGC RENDERING
“My admin asked if it was FERPA-compliant. It already was.”
⚡0:06
Compliance Counter READY
FERPA ✓ SOC 2 ✓ 20,000 districts ✓ — six seconds, three proofs.

↻ The loop closes: once live, each variant's CTR, cost-per-signup, and CRM pipeline flow back into the learning loop. Winners get scaled, losers get explained, and the next brief starts from evidence — not taste.

Copy Studio — everyday text ads claims allow-list enforced

Headline variants in the brand voice, char-validated, every claim checked against what the landing pages can prove. Built on the 16.8%-CTR compliance formula.

Variant performance — live creative, watched for fatigue

The loop doesn't stop at launch: every variant's CTR is tracked, and decay automatically queues the next creative brief — fresh creative before performance falls off a cliff.
⚠ Fatigue detected: “Compliance Counter” CTR fell 12.4% → 8.1% over six weeks. A refresh brief was queued automatically — same formula, new execution.
The same operation, drawn as a flow — click any node to inspect & configure it, drag to rearrange, or run a full weekly cycle. Open full screen ↗
The account's institutional memory. Every agent reads this before touching the account — which is why a chart dip doesn't trigger a panic, and an “obviously wasteful” conquest campaign doesn't get paused. Entries are never deleted; reversed ones are marked superseded.
Trust isn't a promise here — it's enforced in code. The same gates apply to the AI agents, the CLI, and this dashboard. There is no bypass path.

The hard rules

✋

No write without approval

Every change is a recommendation until a human clicks approve. Approving one change is never approval for the next.

🔒

Guardrails are law

Daily budget cap ($10,000), max budget move per change (±30%), protected campaigns. Violations return GUARDRAIL BLOCKED — to agents and humans alike.

⏸

Everything new lands paused

New campaigns, ad groups, and ads are created in a paused state for final review. Always.

🧾

Everything is logged

Every applied change records when, what, why (the hypothesis), and from where — so the learning loop can grade it later.

📡

Real data or loud failure

If a source breaks, the dashboard says so. No stubs, no estimates standing in for facts.

What a write actually looks like

$ ./ads set-budget --client acme --campaign "Teacher AI_Search_Signup" --amount 1400
DRY RUN — no changes applied.
  Campaign: Teacher AI_Search_Signup
  Budget: $1,050/day → $1,400/day (+33%)
──────────────────────────────────────────
✗ GUARDRAIL BLOCKED — change exceeds max_budget_change_pct (30%).
Nothing was modified. Adjust the request or update guardrails with the account owner.

$ ./ads set-budget --client acme --campaign "Teacher AI_Search_Signup" --amount 1330 --apply
✓ APPLIED — budget $1,050 → $1,330/day (+27%, within guardrails)
logged → clients/acme/changes.log (hypothesis: capture 5% lost-IS-to-budget; grade in 7d)

The change log feeds the learning loop

Illustrative entries — every line is later graded against real before/after data by the retro cycle.

WhenActionHypothesisVerdict (after 7d)
Jun 18*add-negative “edu-app” (EXACT)~$630/mo waste removed, CTR upgraded by /retro
Jun 18*promote 14 search terms → keywords~$12,000/mo under explicit controlgraded by /retro
Jun 16*brand holdout decisionkeep / restart brand spend on evidenceexperiment

*Future-dated: these are the queued recommendations as they'll appear once approved.

Add a client

From OAuth to first audit in about 20 minutes.
Client name
Connect ad accounts (OAuth — read access first, write unlocks after guardrails)

Slide preview

Add a memory annotation

Pin context the APIs can't see — agents read it before judging this window.

Day
What happened

🚀 Plan a launch

Compound stages the budget lift inside guardrails, queues creative briefs, arms watch alerts, and reports incremental impact afterward.

Name
Window
Budget lift
↑↓ navigate↵ runesc close