Variables
Replace each placeholder before you run the prompt.
{{funnel_data}}Stage counts: leads, MQLs, SQLs, opportunities, closed-won. Plus stage-to-stage conversion rates.90 days. Leads: 480. MQLs: 220 (46%). SQLs: 60 (27% of MQL). Opportunities: 22 (37% of SQL). Closed-won: 5 (23% of Opp).
{{channel_context}}Where the leads come from, what we know about lead quality by source.Mostly Google Ads paid search. Some PMax. No social. Sales feedback: "PMax leads are flakier."
Prompt
Diagnose the conversion path below. Identify which stage transitions are broken vs healthy, and propose hypotheses for each broken stage.
FUNNEL:
{{funnel_data}}
CONTEXT:
{{channel_context}}
OUTPUT:
1. Stage-by-stage health assessment: each stage transition (lead→MQL, MQL→SQL, SQL→Opp, Opp→Won) gets healthy / weak / broken with the rate and your reasoning.
2. For each weak/broken stage, propose 3 distinct hypotheses about why. Don't pile up hypotheses about the same thing — make them genuinely different (e.g. "intent mismatch", "qualification too strict", "sales handoff bug").
3. For each hypothesis, propose a diagnostic test that would confirm or rule it out.
4. A prioritized investigation plan: which hypothesis to test first and why.
5. Channel-level callouts: do any of the hypotheses apply differently to PMax vs paid search?
Do NOT recommend "improve sales follow-up" as a primary hypothesis unless the funnel data clearly shows MQL→SQL is the broken stage.
Do NOT recommend "test more landing pages" without naming the specific failure mode you'd be testing for.Expected output shape
Stage assessment + 3 hypotheses per broken stage + diagnostic tests + prioritized investigation plan.
Why we wrote it
CPL alone is a vanity metric in B2B. Multi-stage funnel diagnosis is the real work — and most agencies skip it because it requires coordinating with the sales side. This prompt structures it.
How to use
- Open Claude or ChatGPT. The recommended model for this prompt is
claude-opus-4-7— opus when the prompt requires deep reasoning, sonnet for the rest. - Replace every
{{variable}}with content specific to your account. The examples above are starting points, not templates to ship as-is. - Paste the prompt and run.
- Read the output against the expected shape above. If the model produced a structurally different response, re-prompt rather than accept the drift.