Growth & Loops
it compoundsa funnel depletes; a loop feeds itselfNew users arriveThey create output(content, referrals, data)Reach and proof growThe next user costs less
Operate · a play

Growth & Loops

"Growth has stalled, the funnel leaks, and nothing compounds."

Find the one loop that compounds and the single constraint throttling it.

Loops compound; funnels deplete. Without a loop you rent growth from paid forever, and the day you stop paying, growth stops.

Not sure this is your constraint? Run the diagnostic

Growth loops are closed cycles where the output of one turn becomes the input of the next, so the system reinvests its own results instead of being refilled from outside. A funnel runs once and depletes: pour traffic in, some converts, repeat next month. A loop compounds, because invited users invite more users and expansion revenue funds the surface that triggers the next expansion. The "Growth & Loops" constraint is binding when growth has stalled and you cannot name the one thing that actually compounds. The fix: find the single loop that compounds, mark the variable inside it that moves money, then attack the one constraint throttling that variable.

What do "growth loops, not funnels" actually mean?

Most teams have an AARRR dashboard (Acquisition, Activation, Retention, Referral, Revenue) and call it a growth model. A dashboard measures stages; a loop explains why next month is bigger without proportional new spend. The test most loops fail: can you draw a credible arrow from the output back into the input without buying that input again? If not, it is a funnel.

Six engines are worth diagramming, each with one compounding variable:

  • Viral / referral: new users via invites and shared artifacts. Variable: K-factor.
  • Content / SEO: new users via indexed pages. Variable: net-new pages per cohort times discovery-to-signup.
  • Paid: new users via reinvested margin. Variable: reinvestable margin per user (LTV/CAC).
  • Sales: new logos via pipeline. Variable: pipeline per landed account.
  • Expansion / monetization: more revenue per existing account. Variable: net revenue retention.
  • Engagement / retention: returning users and habit. Variable: terminal retention times natural frequency.

This play lives at the strategy layer. The compounding variable earns its place only if it moves CAC payback, lifetime value, or net-new active users. The unit-economics math sits in the measurement and attribution and demand and conversational pipeline execution domains.

How do I know growth loops are MY binding constraint?

If prospects cannot say what you do, that is a positioning problem. If you are targeting the wrong accounts, that is an ICP and jobs-to-be-done problem. Growth and loops is the binding constraint when the machine works but nothing accrues. The tells that it is yours:

  • Every new month of growth costs a new month of spend, and the day you pause paid, growth flattens within a cohort.
  • You have the AARRR dashboard but cannot point at the single arrow that self-sources more than half your net-new actives or revenue.
  • Retention and expansion are treated as someone else's job, not as the engine.

Run the cold-start gate first. A loop cannot compound until a minimum-viable network exists and the behavior is happening organically. Below that threshold, network effects run in reverse and loop optimization just burns spend (Andrew Chen, The Cold Start Problem). Three conditions have to pass before you fund loop work:

  1. The loop is already firing on its own, a recurring share of new actives arriving via its own mechanism with zero paid push.
  2. At least one atomic network (one team, one ZIP code, one campus) is above density and retaining, not a global average that hides empty networks.
  3. The hard side, the small share who do most of the work, is being retained and not just acquired.

If any condition fails, the binding constraint is network density, not the loop variable, and the honest move is to build the network by hand.

What is the method: name the engine, mark the variable, find the one constraint?

The deep version produces one artifact for product and the board: a loop diagram with the variable marked, a cohort AARRR scorecard, a unit-economics read, and the named constraint. Four moves get there.

  1. Find the engine empirically. Name the biggest self-sourcing arrow, the one feeding over half your net-new actives or revenue, as the primary loop. Test on the right unit: net-new users for an acquisition-led motion, net-new revenue for an expansion-led one. These can name different engines, so diagram one, not a catalog.
  2. Mark the variable with cycle time, and mark defensibility. A 7-day loop compounds roughly four times faster than a 30-day one at identical strength, so cycle time travels with the variable. Then badge the output arrow from rented (pure paid, copyable) up to stacked (two or more durable powers), because compounding and defensible are independent: a more defensible loop is the higher multiple.
  3. Read the retention curve, not the rate, then the unit economics. Drops-then-flattens means product-market fit holds; decays-toward-zero means no fit, so stop buying acquisition. The flattened tail (terminal retention) is what compounds: identical week-one retention with tails of 40% versus 15% is roughly 2.7x the lifetime value every cycle. Then read CAC payback and margin-adjusted LTV matched to the loop, never blended CAC to justify a paid one.
  4. Name exactly one binding constraint. A growth model has one weakest link at a time (Goldratt's Theory of Constraints), and improving any non-constraint stage produces zero net growth. Diagnose by recoverable value, not raw drop-off: a 25% drop on 8,000 users beats a 70% drop on 200. Re-diagnose after every fix; the constraint relocates.

What does this look like with real numbers?

Take Flowdesk, a usage-priced data-pipeline tool at roughly $8M ARR with a self-serve core and a sales-assisted compliance module.

The cold-start gate passes: about a fifth of newly activated accounts last quarter arrived because a colleague was invited into a shared pipeline, one team-network above density with the hard side retained. The engine test puts more than half of net-new revenue in existing accounts adding seats, so the primary engine is seat-and-usage expansion, the variable is cohort net dollar retention, and the defensibility badge reads switching.

The numbers:

MetricValueRead
Retention curveflattens around 58% (monthly frequency)product-market fit holds
CAC payback (blended)~11 monthsacceptable, not the constraint
CAC payback (expansion-sourced)~7 monthscost was largely paid at land
Net revenue retention~119%strong for the mid-market band
Expansion ROI vs net-new logoroughly 20:1 vs 2:1directional, collapses under heavy sales touch

The binding constraint is not acquisition. The expand-prompt fires too late, when a customer goes over their limit and conversion has already collapsed. That expansion-trigger constraint outranks a louder activation drop because the recoverable value is higher. The first experiment is an A/B on the trigger threshold (80% versus 90% utilization), primary metric cohort net dollar retention, gross retention as the guardrail. The one-line brief: expansion loop, switching moat, late trigger to fix.

What quietly breaks a growth loop?

  • Diagramming a loop before it has density. The most expensive failure here. Run the cold-start gate first, or you optimize a loop that compounds at zero because the network never crossed threshold.
  • Confusing the AARRR dashboard for a growth model. A dashboard measures stages. A model names the one arrow that self-sources growth and the one variable inside it that moves money.
  • Running amplification tests while retention leaks. You amplify a decaying loop. Fix the binding constraint first.
  • Picking a vanity compounding variable. If doubling it does not move CAC payback, lifetime value, or net-new actives, re-pick.

How does the fix show up in revenue?

The signature of a fixed loop is that growth stops tracking spend. CAC payback shortens cycle over cycle, lifetime value rises as the terminal tail holds, and a growing share of net-new actives self-sources without proportional new budget. Report the program as cumulative compounded lift in a dollar figure, not a list of test wins, and make the reinvest-or-kill call on incrementality, not last-click.

Before you spend against a variable, the customer intelligence and synthetic testing domain lets you simulate the response first. If you are not yet sure this is your binding constraint, the Marketing OS diagnostic sorts it against the other eight in ten minutes.

FAQ

What is the difference between a growth loop and a funnel?

A funnel runs once and depletes: traffic enters the top, a fraction converts, and growing next month requires pouring in more traffic. A growth loop is a closed cycle where the output of one turn feeds the input of the next, so it compounds without proportional new spend. The test: if you cannot draw a credible arrow from the output back into the input without buying that input again, it is a funnel.

How do I find my primary growth loop?

Pull the channel and source breakdown, then name the biggest self-sourcing arrow (the source feeding more than half your net-new actives or revenue) as the primary loop. Test on the right unit: net-new active users for an acquisition-led motion, net-new revenue for an expansion-led one. Diagram the dominant one and footnote the rest.

What is the compounding variable in a growth loop?

It is the single ratio that decides whether each cycle is bigger or smaller than the last, chosen because it has to move CAC payback, lifetime value, or net-new active users. For a viral loop it is the K-factor; for an expansion loop, net revenue retention; for a retention loop, terminal retention times natural frequency. Always pair it with cycle time, since a faster loop compounds faster at identical strength.

Why run experiments against only one constraint?

A growth model has one binding constraint at a time, and improving any non-constraint stage produces zero net growth (Goldratt's Theory of Constraints). Name one AARRR stage or loop node, diagnose it by recoverable value rather than raw drop-off, fix it, then re-diagnose, since the constraint relocates.

Do growth loops apply outside B2B SaaS?

Yes, though the form bends. For services and agencies the loop is usually referral plus reputation, and the variable is referral rate times average engagement value. For e-commerce it is often a paid or user-generated-content loop, collapsing toward repeat-purchase rate and average order value. The spine holds: pick the variable that moves CAC payback, lifetime value, or net-new actives, and gate whether the loop can fire first.

When this is your binding constraint

  • Every new month of growth costs a new month of spend.
  • You have an AARRR dashboard but can't name what actually compounds.
  • Retention and expansion are afterthoughts, not the engine.

Your first moves

  1. 1Name the engine and mark the one variable that compounds: virality, content, or paid efficiency.
  2. 2Lay an AARRR scorecard over it and read the unit economics (LTV:CAC, payback, Rule of 40).
  3. 3Name the single binding constraint throttling the loop, and run experiments only against it.

The maturity ladder

Crawl

A funnel you refill with paid every month.

Walk

An AARRR scorecard and a guess at the bottleneck.

Run

One named loop and the single constraint, with experiments against it.

Fly

Compounding loops instrumented; growth that doesn't depend on more spend.

Run it with agents

The strategy decides what and why. These execution domains are the how, run with an agent fleet at whatever stage you're on.

Work with Mahmoud

Want this run for you?

I run this operating model as a fractional CMO: one operator, an agent fleet, and the judgment to delete eighty percent of what the agents make. If one of these constraints is yours, let's talk.

Prefer the full form? Reach out here.