Creating a growth engine and fixing an acquisition funnel in 6 weeks

TL;DR

I spent six weeks as the growth lead on the consumer side of an established rewards app, where people follow the brands they like and earn something back for taking part.

  • The mandate was broad, grow new sign-ups substantially, and the honest starting position was that nobody could say where the funnel leaked or which channel worked, because most new sign-ups arrived in a bucket labeled “organic,” which is a polite word for “we don’t know.”
  • By week six there was a prioritized roadmap the team agreed on, a developer shipping the highest-leverage fix, a measurement standard that made channels legible for the first time, and a lifecycle of +10 emails written against a positioning the company had already approved and was not actually saying.
  • The growth number was being held down by two invisible things, a funnel nobody could see and a promise the product was not keeping. Every workstream in these six weeks ladders back to one of those two, plus a third that follows from both: whatever stands between a new user and their first real action has to go.

The situation

A lean team, an ambitious target, and four acquisition paths running at once: web, brand-referred, user referral, and the app store. Plenty of named symptoms, no shared map.

Web sign-up conversion had improved a lot shortly before I arrived, so there was momentum to work with. A large share of web sign-ups still never became app installs. And the biggest channel of all had no name.

The first move: walk the product cold

Before I opened a single dashboard I went through all four acquisition flows as a brand-new user, logging every friction point, drop-off and confusing moment. 125 findings.

The rule behind that: fresh eyes are a one-time asset and they expire in about a week. A dashboard only answers the questions somebody already instrumented, so the cold walk sees the things the data was never set up to show. Then I triangulated every finding against product analytics, 20+ user interviews and app store reviews, so each one traveled as evidence rather than as an opinion.

From there the work was four moves in order: walk it cold, triangulate, score about 24 initiatives with RICE against work already in flight, and turn the top of that list into specs a developer could start on the next morning.

Problem one: the funnel nobody could see

The most important finding of the audit was that the majority of acquisition was untracked, which meant every channel debate was an argument about a number nobody could produce. I made attribution the number-one priority ahead of every shinier idea, because without it the whole roadmap would be unprovable and the team would keep reallocating budget on vibes.

Problem two: the promise

The second invisible thing was the gap between what the app promises in ads, store copy and partner posts, and what actually happens in the first session. I audited it promise by promise using interviews, store reviews and analytics together, and the pattern was consistent: people were sold an insider relationship with brands they love and landed in something that read like a discount app.

The company had already approved a positioning built on belonging and influence, explicitly not cashback and explicitly not a creator platform. The lifecycle emails were running the other way, with subject lines about getting paid and copy telling people their in-app credit was basically cash. Credit that reads as cash and then behaves like brand-locked store value is how you manufacture distrust, and the store reviews were already saying so in their own words.

So when I redesigned the transactional emails, the move was to keep the mechanic and drop the identity. The mechanic worth keeping was the wallet gap: here is what you have, here is what this costs, here is the action that closes the distance. Concrete, honest, and it teaches the whole loop in one line. The identity to drop was the cash framing.

Problem three: what stands between a new user and the first action

The activation mandate was one sentence: get every new user to take the core earn action on their first day. The obstacle was the product itself. Around five pop-ups fired at someone who had been in the app for four seconds, none of them written for a new user, all of them standing between that person and the single action that best predicts whether they come back.

I inherited about 45 UX problems organized by screen, which is a list rather than a plan. The constraint that shaped everything: a developer had a free day the next morning. So the question was not what we should eventually build, it was what one engineer could ship that week without breaking anything.

I regrouped the 45 items into chunks of work and ranked them by one question only, does this get a first-day user to the earn action. Then the targeting, which was the whole point. A first-day user and an established user are different people, and several of those pop-ups are legitimate for someone who has been around for months. The fastest way to cause an incident is to strip notifications from an entire existing base in order to help the people who signed up this morning, so the work became suppression scoped to first-day users rather than deletion, and the definition of “first-day” got written down and agreed on before anything else.

Where the thinking actually happened

Not in choosing the changes. In the column next to each one, the one that says what this could break:

  • One promotional pop-up shared a feature flag with the tab it promoted, so switching it off for new users would have taken the whole tab down with it. It needed decoupling first.
  • Suppressing the reward pop-up could not be allowed to skip the crediting behind it. The user still earns; they just find out somewhere calmer.
  • Removing the prompt that asks people to follow brands, with no replacement path, would have left new users sitting in an empty feed with nothing followed. That one needed a fallback before it could ship at all.
  • Two items had no targeting logic in them at all, so I marked them shippable immediately. The developer had something to build on day one while the harder plumbing landed.

The same question, applied to the biggest organic surface

The app has several hundred per-brand landing pages, which are its largest organic footprint. The audit found the body rendering client-side, so a crawler or an assistant asking about a brand saw little more than a title. That went to the top as a prerequisite, ahead of every content idea on the list, because copy and structured data are worth nothing while the copy is not in the HTML. Underneath it: a quantified reward in the hero, a trust strip, member picks as rated and shoppable content, a per-brand FAQ so the company owns the answer to “is this legit” instead of leaving it to third parties, and internal links across the set.

What six weeks produced

  • A 125-finding audit across the four acquisition flows, each finding mapped to the work already underway versus the gaps nobody owned.
  • A RICE-prioritized roadmap of about 24 initiatives, sequenced by dependency: foundations first, then conversion, then channel bets.
  • A tracking standard with a controlled medium list, a bucket model, master value lists built from the real data, and the platform settings that were generating the mess.
  • A promise audit that put a name to the distrust showing up in reviews, and a positioning the lifecycle could be written against.
  • A developer-ready activation spec, scoped to first-day users, with acceptance criteria per item, in build within a day.
  • A brand-page spec with the server-rendering prerequisite at the top, plus the search and answer-engine layer under it.
  • An email lifecycle brief with data-readiness blockers flagged before design started.

Lessons learned

  1. In an ambiguous mandate, sequencing is the strategy. The instinct is to ship a visible tactic fast. The higher-leverage move is deciding the order, foundations before conversion before channel bets, so nothing you build ends up sitting on top of something broken.
  2. Measurement first, even though it is the least exciting slide. With most of acquisition invisible, every other win was unprovable. Fixing attribution was the precondition for the roadmap being real.
  3. Read the file before you believe it. An export of every value ever logged looks like a dataset and behaves like a catalog. Ranking that by row count would have sent the cleanup after values almost nobody actually arrives through.
  4. A taxonomy is only as good as the machine that writes it. Most of the tracking mess was auto-generated by the email and SMS tools. A standard that stops at a document gets overwritten by whatever the platform appends next Tuesday.
  5. Walk the product before you read the dashboard. The cold walk found things the numbers could not, because the data only answers instrumented questions. I spent that one-time asset in week one, on purpose.
  6. Distrust is usually a promise problem. The reviews complaining about the rewards were the predictable result of selling an insider relationship and delivering a discount flow. No amount of onboarding polish closes a gap like that; only changing what you promise or what you deliver does.
  7. Targeting is what makes a fix safe. Almost every hard call in the activation work fell out of one distinction, first-day user versus established user. Writing that definition down turned a risky cleanup into something one developer could ship in a week.
  8. The deliverable is not the point. I threw out a finished deck because it needed the reader to trust patterns they could not see, and rebuilt it as a spec for our own page. Research is worth keeping. The container it arrived in usually is not.

Posted

in

by

Tags: