Change the funnel today.

Appfunnel lets a growth marketer edit the quiz, the paywall, the price and the trial and put it live on your own domain — without opening a ticket. Every release rolls back in one confirm, and the activity record names who changed what.

And you get the number it moves. CAC, ROAS, payback and net profit are surfaces in the same product, computed on purchases confirmed against your own processor rather than on the pixel ATT already blinded — so the thing you shipped this morning and the thing you are judged on next quarter finally live in one place.

A funnel flow with an A/B test running on a single page: at step 33, between the Discount step and the Upsell-coach step, an experiment named “Paywall — countdown vs no countdown” shows a Warming up status and two page thumbnails captioned Current and Version B at 50% each, with the surrounding steps unchanged.
Fork one page into variants, or rewrite it outright, and put it live from here. The step before it and the step after it never change.

Your ROAS problem is probably a CAC problem

When return slides, the instinct is to blame monetization: subscribers must be worth less than they used to be. In the cohorts we have analyzed on our own funnels, monetization was the part that held.

  1. Read LTV per paying user at equal age

    Compare every cohort at month 1 against every other cohort at month 1 — not month 1 against month 4. A young cohort always looks worse until you line the ages up.

  2. Read CAC the same way

    Spend divided by paying users, per acquisition cohort, on the same axis as the revenue curve. This is the half that usually lives in a different tool.

  3. Divide

    Terminal return is roughly terminal LTV per paying user over CAC. One of the two moved. In our own cohorts it was not the first one.

  4. Fix the one that moved

    A CAC problem is a channel, creative and bid problem. An LTV problem is a paywall and retention problem. They are not the same quarter of work, and picking wrong costs you the quarter.

The test that never gets run is the one that would have moved the number

Creative gets tested every week because you can change it yourself. The funnel gets tested twice a year for exactly the same reason. This closes that gap.

Describe the change instead of filing it. Say what the page should do and watch it render. You start from a funnel that already works rather than a blank canvas, in the same web builder the funnel was made in.

Test one page, not the whole funnel. Fork just the paywall — or one quiz step, or the upsell — into up to four variants and leave the rest of the flow exactly as it is. That is the test most teams want and almost never get to run. See how experiments work.

Read why a variant won, not just that it did. Every step in the flow reports its own numbers per variant, so you can see which page each variant loses people on instead of guessing from a single conversion rate.

Revenue calls the winner. The verdict is settled on revenue per visitor shown, so a variant that wins the click and loses the sale never gets promoted — and neither does one that converts more people onto a cheaper plan.

Change the price without an app review. The paywall is a web page. A new price, a different trial length or a new offer goes live the same day, with no store review cycle standing between the idea and the test.

Check it on a phone while you edit. Preview the funnel at real device dimensions and step through it as a visitor would, so a paywall that looks fine in a desktop window does not reach an iPhone broken.

Ship it yourself without being the one who broke it

Autonomy is only usable if a mistake is cheap. The reason your engineers said no last time was not that they distrusted you — it was that nothing they were shown had an undo.

  1. Every release rolls back

    Open the list of releases from the editor, pick the one that was live before, confirm. Live traffic moves back to it in seconds — no deployment to sit through, no engineer to page.

  2. Going live is always an explicit confirm

    Nothing swaps itself. Promoting a winning variant and pointing live at a different release are both a deliberate action you take, not something that happens to you overnight.

  3. Your coding agents draft; they don’t ship

    An agent paired to an editor session can write pages and save them into the draft. There is no publish action on that surface — putting something live stays a human click.

  4. The log says who, what, and which object

    Team activity filters by Team, Security, Content, Connections and Project, and every entry names the object it touched — under the name that object had on the day.

Your spend and your revenue in the same place

Not another dashboard to reconcile. The funnel you shipped, the spend it consumed and the money it returned are computed together, on one axis.

CAC and ROAS per channel. Measured on realized revenue rather than platform-reported conversions, so the ratio you argue about in the weekly is the one that hit the bank.

Spend pulled in from the ad networks. Meta, TikTok and Google spend syncs in on a daily schedule, so the ratio is computed on both sides instead of pasted from a spreadsheet that went stale on Tuesday.

Payback, per acquisition cohort. Watch each cohort climb toward its own breakeven line and see which channels cross it, with young cohorts projected forward from the shape of mature ones. How the cohorts are built.

Net profit, after everything. Proceeds after processing fees, tax, refunds and chargebacks, minus what you spent to acquire — the number that survives a conversation with finance.

Verified revenue sent back to Meta and TikTok. Purchases confirmed against your own processor are fed to their conversion APIs server-side, so their optimizers bid against money that actually landed rather than a pixel ATT already blinded.

One thing still needs your engineers, once

A subscriber who paid on the web has to be recognized as a subscriber when they open your app. That is a one-time integration on the app side — through RevenueCat, or against your own backend. Once it is done, the funnel, the paywall, the price, the trial and the tests are yours to change without them. It is one conversation at the start of the project, not a standing dependency, and we would rather you find that out here than in week three.

Questions, answered directly

Our engineering team will never let marketing publish to production. What do I tell them?

Start with the undo, because that is what they are actually worried about. Every release rolls back to the previous one in a single confirm, live traffic moves in seconds, and nothing ever swaps itself without someone clicking. Every change lands in an activity record that names the person, the action and the object they touched. Be straight with them about the current limit too: roles and per-person access cover the team, billing, stores, domains, integrations and API keys, but publishing is not separable from project access today — anyone you invite into a project can put a funnel live. What makes that workable is that a mistake costs seconds to reverse and leaves a trail, not that it is impossible to make.

What actually still needs an engineer?

One thing, once. A subscriber who paid on the web has to be recognized as a subscriber when they open your app, and that is a one-time integration on the app side — through RevenueCat, or against your own backend. After it is done, the funnel, the paywall, the price, the trial and the tests are yours to change without them. It is one conversation at the start, not a standing dependency.

We already have an MMP, an attribution tool and BI. Why another dashboard?

Because your MMP measures installs and your BI measures revenue, and neither of them measures the funnel that sits between them — which is the only part of the chain you can change this afternoon. Appfunnel measures the surface it also lets you edit, from purchases confirmed against your own processor rather than from pixels, with your ad spend synced in so return is computed on both sides. It is not a closed box either: core analytics are readable over the API, and purchases, subscriptions and renewals stream to your own stack over webhooks. Keep your stack; this adds the layer none of it can see.

Can I test just the paywall, or does it have to be the whole funnel?

Just the paywall, and that is the usual case. Fork any single page in the flow — a quiz step, the paywall, an upsell — into a variant you edit like any other page, and the rest of the funnel keeps running untouched. A test carries your control plus up to three challengers, so four variants at once, and every step of the flow reports its numbers per variant so you can see where each one loses people.

How do I know a variant has genuinely won?

Appfunnel scores every variant against the control as the data arrives and tells you when one has actually won rather than had a good Tuesday. The verdict is settled on revenue per visitor shown, so a variant that lifts clicks and drops sales is not a winner. When one clears the bar you promote it in one click, and the promotion always takes your confirm.

Where do the CAC and LTV numbers on this page come from?

From our own funnels, not from an industry report. Across four monthly acquisition cohorts we analyzed on this platform, net LTV per paying user was flat to improving at equal cohort age while CAC ran from roughly $38 to roughly $127. The newest cohort was still a partial month when we measured it, so treat $127 as the noisiest figure in the set. We are showing you the shape of the diagnosis, not a number to plan against.

Can I set a different price for each country?

Not as a price table you edit inside Appfunnel. Your funnel points at products in your catalog, and location-based pricing is resolved by your payment provider — so a market-by-market price is set up in Stripe and reflected here, rather than configured twice. What you can change freely and immediately is which offer a funnel shows, what it costs and how long the trial runs.

What does it cost?

Growth is $199 a month plus 2% of proceeds — proceeds being what is left after processing fees, tax, refunds and chargebacks. The first 14 days are free: you add a card to start, nothing is charged until day 15, and cancelling before then costs you $0. It is month-to-month with no binding.

Ship the test this week. Roll it back in one confirm if you’re wrong.

Everything on Growth, free for 14 days. Cancel before day 15 and you pay $0.