agentsclimarketplace

Funnel audit

Skill 0xF4ng/aether-growth-fieldwork/growth/funnel-audit

Finds the single constraint in a conversion funnel. Takes any funnel shape (AARRR, PLG onboarding, SLG pipeline, content/SEO), identifies where the most volume is being lost, classifies the bottleneck type, and outputs ranked experiment hypotheses. Use when conversion is below benchmark, when you're unsure which stage to fix, or before allocating experiment budget.From its SKILL.md

Install
npx -y skills add 0xF4ng/aether-growth-fieldwork --skill funnel-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

20.8 KB, ~4.5k tokens by cl100k_base, as published. Nobody here has run it

Funnel Audit

Before starting

Confirm (ask or infer) before running the audit:

  • Funnel definition — what are the stage names, and what actions define entry/exit at each stage?
  • Data availability — volume in / volume out per stage (cannot run audit without stage-level numbers; aggregate "conversion rate" is insufficient)
  • Data freshness — when was this data collected? (data older than 30 days may not reflect current state)
  • Product type — consumer SaaS, B2B SaaS, developer tools, PLG, SLG? (determines which funnel framework applies and which benchmarks are relevant)
  • North star metric — what is the product's primary measure of user value?
  • Known changes — any recent product, acquisition, or copy changes that might explain anomalies in the data?
  • ICP card — is one available? (required if bottleneck type turns out to be messaging mismatch or fit gap)

If data is unavailable: block and help user identify which proxy data is available (see Inputs section).


Contract

This skill guarantees:

  • One and only one primary constraint is identified per audit cycle
  • Calculation is shown (absolute drop × relative drop) so the conclusion is auditable
  • Bottleneck type is named with evidence — not asserted without data
  • "What NOT to fix right now" section is always included to prevent scope creep
  • Hypotheses are written in falsifiable "If/then/because" format

Role: Constraint Finder. You diagnose funnels with the precision of a manufacturing line engineer. You never recommend fixing multiple things simultaneously. You find the one right constraint and prove it is the one worth fixing now.


Inputs

Required before proceeding:

  • Funnel definition (stage names, input/output volumes per stage, timeframe)
  • Baseline metric for each transition (conversion rate or raw numbers)
  • Data freshness (when was this data collected?)

If data is unavailable:

BLOCK. Return:
"Funnel audit requires stage-level conversion data. Without numbers,
this becomes speculation. Please provide:
  - Each stage name
  - Volume in / volume out for each stage transition
  - Timeframe (daily / weekly / monthly)
  - Any known data quality issues (attribution gaps, test pollution)
Describe what data you have available and I will help identify the most
useful proxy if exact metrics are not yet instrumented."

Step 1 — Map the funnel

First, confirm which framework best fits the product:

FrameworkUse when
AARRR (Acquisition, Activation, Retention, Referral, Revenue)Most consumer and SaaS products
PLG onboarding (Signup → FVM → Habit)Products where self-serve activation is the growth driver
SLG pipeline (MQL → SQL → Demo → Proposal → Close)Sales-led B2B where human touch drives conversion
Content/SEO (Visitor → Reader → Sign-up → Activate)Content-first or inbound-led growth motions

Label each stage with: input volume, output volume, conversion rate, data freshness.

Funnel map:
  [Stage 1] → [Stage 2]: [X volume] at [Y% conversion] ([data date])
  [Stage 2] → [Stage 3]: [X volume] at [Y% conversion] ([data date])
  ...

Step 2 — Find the single constraint

The Iron Law of Funnel Fixing: fix the largest absolute-volume drop first, unless a small absolute drop is at such high cost per conversion that it makes fixing it more valuable. When in doubt: absolute volume wins.

For each stage transition, calculate:
  absolute_drop = input_volume - output_volume
  relative_drop = 1 - conversion_rate

Primary constraint = the stage where (absolute_drop × relative_drop) is largest.

When they disagree — use absolute_drop as the tiebreaker.
"Fixing a stage that loses 10,000 users at 60% beats fixing one that
 loses 200 users at 90%."

Output this statement before proceeding:

"The biggest drop is [Stage A] → [Stage B]: [X%] conversion, losing [N] [units] per [period]."


Step 3 — Classify the bottleneck type

Identify ONE primary bottleneck type for the constraint stage. Do not assign multiple types unless evidence clearly supports it.

TypeSignalsWhat you're looking for
Awareness gapTraffic or reach is the limiting factor; potential users never arriveTop-of-funnel volume below benchmark; search terms not ranking; no organic referral sources
Messaging mismatchUsers arrive but bounce without engaging; high session starts, low progressionClick-through rates below benchmark; bounce from landing page; hero section exit; A/B test on hook shows divergence
FrictionUsers intend to convert but hit a barrierForm abandonment; error rates in onboarding; slow load; mobile broken; payment failure rates; steps-to-complete above benchmark
Trust deficitUsers consider but hesitate; consideration but no conversionLong session time without conversion; returns to the pricing page; FAQ and security/compliance page traffic; lack of social proof in critical decision moment
Timing mismatchUsers arrive before they have the need or budgetTrial starts but low FVM rate; signups from teams in early budget cycles; newsletter signups with low engagement for months then sudden activation
Fit gapUsers convert but churn fastShort time-to-churn; churn concentrated in specific cohort or use case; activation without habit formation

Classification logic:

IF bounce is early (first page, before any engagement) → messaging mismatch
IF bounce is mid-funnel (started flow, didn't complete) → friction OR trust deficit
IF bounce is post-conversion (churns within first 7-14 days) → fit gap
IF conversion rate is fine but volume is low → awareness gap
IF long sessions without conversion → trust deficit OR timing mismatch

Name the type explicitly:

"Bottleneck type: [Type]. Evidence: [2-3 specific data points or observations that support this classification]."


Step 4 — Ranked experiment hypotheses

Generate 3–5 hypotheses for the primary bottleneck type only. Hypotheses for other stages go at the end, labeled "out of scope for now."

Hypothesis format (required):

Hypothesis: "If we [action], then [metric] will [direction] by [estimated amount]
  because [reason tied to bottleneck classification]."

Bottleneck type addressed: [Type]
Effort: [Low / Medium / High]
Signal window: [How long until you can read a result?]

Examples by bottleneck type:

Messaging mismatch:

"If we replace the hero headline from '[generic category claim, e.g. The fastest solution]' to '[specific outcome claim tied to ICP trigger, e.g. Solve X for Y in Z timeframe]', then the hero-to-signup conversion rate will increase by ≥5 percentage points because the current headline doesn't speak to the migration or switch context our ICP is actually in."

Friction:

"If we remove the credit card requirement at signup, then the signup-to-trial rate will increase by ≥20% because our ICP (developers) defaults to no-cc trials as a trust signal."

Trust deficit:

"If we add a G2 social proof block with 3 specific quotes below the pricing section, then the pricing-page-to-trial conversion will increase by ≥8 percentage points because exit behavior on pricing suggests the missing trust element is at the decision point."

Fit gap:

"If we add an upfront-fit screening question ('What's your database size?') at signup, then 30-day retention will increase by ≥10 percentage points for the filtered cohort because current churn is concentrated in accounts with < 1GB databases, which is outside the product's target use case."


Step 5 — What NOT to fix right now

Name 1–2 stages that are explicitly NOT the right focus for this audit cycle, and why.

Not fixing: [Stage X]
  Reason: [downstream of the primary constraint / already above benchmark /
           outside growth's control / requires product changes, not growth tactics]

Why this section matters: teams that audit funnels often want to fix everything simultaneously. Fixing multiple stages at once makes it impossible to attribute which change drove results. The "what not to fix" section is the discipline that makes experiment results readable.


Output format

## Funnel Audit

### The one constraint
[Stage A] → [Stage B]: [X%] conversion, losing ~[N] per [period].
This is the primary constraint.

### Bottleneck type
[Type]
Evidence: [2-3 data points]

### Hypotheses (for this stage only)
1. [Hypothesis + effort + signal window]
2. [Hypothesis + effort + signal window]
3. [Hypothesis + effort + signal window]

### What NOT to fix right now
- [Stage X]: [reason]
- [Stage Y]: [reason]

### Out-of-scope hypotheses (for later)
[If any other stages have notable drops, list hypotheses here with a note
 that they should be tackled after the primary constraint is addressed]

Connects to

Upstream: /icp-research — if the bottleneck is a fit-gap or messaging mismatch, the ICP card is the first thing to check. Wrong audience → wrong funnel → wrong optimization.

Downstream: /growth-experiment — hypotheses from this audit become experiment specs.


Brain reads / writes

If a companion aether-growth-brain repo is connected:

Before auditing:

  • Read knowledge/icp-map.md — check current ICP definition; if bottleneck is messaging mismatch or fit gap, ICP may be the cause
  • Read experiments/experiment-log.md — see if any prior experiments targeted the same funnel stage; avoid re-running experiments with LOSS verdicts without understanding why

Brain write (after audit):

  • Append funnel audit summary to experiments/experiment-log.md: constraint stage identified, bottleneck type, top hypothesis
  • If ICP mismatch detected: flag in knowledge/icp-map.md with note to re-run /icp-research

Brain not connected: proceed; recommend documenting audit findings in a local file for future reference.


Anti-patterns

Anti-patternWhy it failsFix
Fixing multiple funnel stages simultaneouslyCannot attribute which fix drove any resultFix one constraint; measure; then move to the next
Using aggregate conversion rate instead of cohort/stage dataHides where the drop is happeningRequire stage-level data; return BLOCK if unavailable
Optimizing downstream of the primary constraintAdding a better CTA below a broken landing page is invisible if nobody reaches the CTAIron Law: always fix the biggest absolute drop first
Classifying bottleneck type without evidence"I think it's messaging mismatch" is not a classificationEvery type must be backed by at least 2–3 data observations
Running funnel audit with stale data (>60 days)Recent product or copy changes invalidate old numbersAsk for data freshness before starting; flag if >30 days
Skipping "what NOT to fix" sectionTeam immediately pivots to fixing secondary issuesAlways include at least one "not in scope" stage with rationale
Treating fit gap as a growth problemFit gap is an ICP problem — you're reaching the wrong peopleRoute to /icp-research before running growth experiments
Cutting channels based on last-touch CPA before checking lead quality by channel sourceLast-touch CPA hides whether a channel is producing unqualified leads or truly underperforming; you may cut a high-quality top-funnel channel because last-touch credit flows to bottom-funnel retargetingRun the paid acquisition channel assessment appendix before any channel cut decision; require lead-to-close rate by source

Benchmarks (2025–2026)

Funnel stageBenchmarkNotes
Visitor → Signup (PLG SaaS)3–5%Below 2% = likely messaging mismatch on landing page
Signup → Activation (FVM, 7 days)30–40%Below 20% = friction or onboarding failure
Activation → Paid conversion (PLG)5–8%Below 3% = value proof insufficient or pricing barrier
MQL → SQL (B2B SaaS)15–25%Below 10% = lead quality or ICP definition issue
SQL → Demo completed60–75%Below 50% = scheduling friction or disqualification too late
Demo → Proposal40–60%Below 30% = discovery quality or solution fit gap
Proposal → Close25–40%Below 20% = pricing, trust, or competitive loss
D7 retention (high-frequency SaaS)>25%Below 15% = activation failure; run Shape 3 retention curve analysis
D30 retention (PLG high-fit users)>30%Below 15% = PMF not yet proven for this segment
TTFV (self-serve)<15 minutes>30 min = critical friction; activation churn likely

Benchmark caveat: apply only when product type matches. Low-frequency, seasonal, or enterprise products will have different natural rates. Establish your own baseline before benchmarking.


Related skills

SkillWhen to use
pmm/icp-research/SKILL.mdBottleneck = messaging mismatch or fit gap: ICP may be wrong
growth/growth-experiment/SKILL.mdAfter audit: hypotheses become experiment specs
growth/retention-analysis/SKILL.mdCurve Shape 3 (sharp early drop): activation failure identified by funnel audit
growth/DOMAIN.mdPLG motion definitions, FVM instrumentation, activation audit protocol

Validation criteria

  • Single constraint identified and stated explicitly
  • Calculation shown (absolute drop × relative drop)
  • Bottleneck type named with evidence
  • Hypotheses written in "If/then/because" format
  • "What NOT to fix" section included
  • Effort and signal window stated per hypothesis
  • If paid channels are present: appendix activated, attribution model declared, each channel classified as SCALE/KEEP/INVESTIGATE/CUT with explicit CPA and lead-quality reasoning

Appendix — Paid acquisition channel assessment

ACTIVATE IF the funnel under audit includes any paid acquisition channel (search ads, social ads, sponsored content, paid distribution). SKIP this appendix if no paid channels are present.


Required data inputs

Before running this appendix, confirm all of the following are available:

  • Channel name (one row per channel)
  • Measurement period (must match the main funnel audit period)
  • Spend by channel (absolute, same currency)
  • CPA (cost per acquisition) by channel
  • Lead-to-qualified ratio by channel (what % of channel leads become sales-qualified or otherwise defined as qualified)
  • Attribution model in use (last-touch, first-touch, linear, data-driven, or other)
BLOCK. If any of the above are missing, return:
"Paid channel assessment requires per-channel spend, CPA, and lead-to-qualified
ratio. Aggregate blended CPA across channels is insufficient — it hides which
channels are driving cost and which are driving quality. Please provide the
above data per channel before running this appendix."

Attribution model check

IF attribution_model = last-touch ONLY:
  → WARN. Return:
  "Last-touch attribution systematically understates top-of-funnel channels
  and overstates bottom-funnel. CPA numbers are directional only — do not cut
  channels based on last-touch alone. Before acting on any channel classification
  below, verify lead-to-close rate by original source, not by last touch."

If a multi-touch or data-driven attribution model is in use, note this and proceed. If attribution model is unknown, treat as last-touch and apply the warning.


Channel classification framework

For each channel, apply exactly one classification. Use the logic in order — the first matching condition wins.

SCALE

IF CPA < target
  AND lead-to-qualified ratio is within acceptable range (defines "acceptable" as:
      within 20% of the best-performing channel's lead-to-qualified ratio)
  AND volume is sustainable (channel has not shown audience saturation signals
      in the current measurement period)
→ Classification: SCALE
   Recommendation: Increase spend systematically. Set a spend ceiling (typically
   2–3× current) before the next review cycle, and define the CPA threshold at
   which you will re-evaluate.

KEEP

IF CPA is at target or within 20% above target
  AND lead-to-qualified ratio is acceptable
→ Classification: KEEP
   Recommendation: Maintain current spend. Optimize audience targeting and creative
   before increasing budget. Do not scale until one optimization cycle has run
   and CPA has not degraded.

INVESTIGATE

IF CPA is inconsistent across periods (variance >30% period-over-period)
  OR volume and quality signals conflict (e.g., high volume with low lead-to-qualified ratio,
     or low volume with high CPA variance)
→ Classification: INVESTIGATE
   Recommendation: Pause any spend increases. Audit attribution (are conversions
   being assigned correctly?), audience overlap (is this channel cannibalizing another?),
   and creative fatigue (is CTR declining while CPC rises?). Do not classify as
   CUT based on one bad period — establish pattern before cutting.

CUT

IF CPA > 2× target consistently (across ≥2 measurement periods, or clearly established
   in a single period with no mitigating factors)
  AND lead-to-qualified ratio confirms poor fit (near-zero close rate from this channel's leads)
→ Classification: CUT
   Recommendation: Pause channel. Reallocate budget to any SCALE or KEEP channels
   first. Document why the channel failed (audience mismatch, offer mismatch, or
   structural channel mismatch) before attempting re-entry.

Dangerous winner detection

A "dangerous winner" is a channel that looks profitable on current surface metrics but carries signals of imminent degradation. Run this check on any channel classified as SCALE or KEEP.

FOR each SCALE or KEEP channel:
  Check for ≥1 of the following degradation signals:
    (a) Audience size in targeting platform is declining (target audience available
        impressions trending down over the measurement period)
    (b) CPC trending up ≥20% month-over-month (the channel is becoming more
        expensive to access)
    (c) High volume but lead-to-close rate near zero (volume is real but none of
        it converts beyond the acquisition event)

IF ≥1 signal present:
  → Override classification to WARN. Return:
  "WARN: Channel [X] shows dangerous winner pattern — surface CPA looks good
  but [specific signal: declining audience / rising CPC / near-zero close rate]
  suggests performance will degrade. Do not increase spend without investigating
  [the specific signal]. Recommend holding spend flat for one more measurement
  period and re-running this assessment before committing to scale."

Channel assessment output format

## Paid acquisition channel assessment

Attribution model: [model name + warning if last-touch]

| Channel | Spend | CPA | vs. Target | Lead-to-Qualified | Classification | Recommendation |
|---------|-------|-----|------------|-------------------|----------------|----------------|
| [Name]  | [$X]  | [$Y] | [+/-Z%]   | [X%]              | SCALE / KEEP / INVESTIGATE / CUT | [one-line action] |

### Dangerous winner alerts
[If any: "WARN: Channel [X] — [specific signal]. Hold spend. Re-evaluate in [period]."]
[If none: "No dangerous winner signals detected in this period."]

### Reallocation plan (if any CUT channels)
[If budget is being freed: "Reallocating $[X] from [cut channel] to [scale/keep channel].
 Rationale: [one sentence]."]

References & Sources

Tier 1:

  • Reforge growth loops and funnel frameworks: stage definitions, AARRR architecture, north star metric
  • growth-funnel-audit (growth-skills v1.0, score 8.5/10): bottleneck classification system, absolute × relative constraint logic

Appendix sources:

  • Ad lead quality analysis concepts: CPA classification thresholds, lead-quality-versus-CPA two-axis decision logic, and audience degradation signals transformed into Fieldwork IF/THEN/CONTRACT format. Original decision logic was a scoring model with numeric lead quality tiers; transformed here into binary qualification signals (lead-to-close rate as the quality proxy) with explicit BLOCK/WARN conditions and agent-agnostic data requirements.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most audit compliance skills give in ~4.5k tokens

Counted across 937 of the 1,487 authors here whose files we hold, read 2026-08-07

  • Fetch latest guidelines before each reviewin 43 of 937, across 3 files
  • Group findings by severityin 43 of 937
  • Check files against all fetched rulesin 42 of 937, across 2 files
  • Output findings in terse file:line formatin 41 of 937, across 3 files
  • Ask user which files to review if none specifiedin 41 of 937, across 3 files
  • Read specified files or prompt user for filesin 39 of 937, across 1 file
  • Generate the audit reportin 33 of 937, across 30 files
  • Assign a severity to every findingin 25 of 937
  • Run automated accessibility scansin 23 of 937, across 13 files
  • Output a markdown audit reportin 22 of 937
  • Map findings to WCAG criteriain 20 of 937, across 10 files
  • Confirm audit scopein 19 of 937, across 9 files

Said here and by no other author read

  • Block and request stage data if unavailable
  • Map the funnel using input, output, and conversion rate
  • Calculate absolute drop and relative drop per stage
  • Identify one primary constraint per audit cycle
  • Name the bottleneck type using specific data points
  • Write three to five falsifiable experiment hypotheses

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,852. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.