The 90-Day Path — cortex.labs
cortex.labs

The free DIY guide · for ecommerce founders

5 Ways to Add 20% More Sales in 90 days to Your Ecom Store — Without Spending a Cent More on Ads

The exact 5-step system I run for clients, written out so you can do it yourself.

Built for ecommerce founders doing $250k–$2M who get traffic but want more of it to buy. No fluff. Steal all of it.

Here's the honest truth most agencies won't tell you: your store almost certainly doesn't have a traffic problem. It has a "we can't tell what's working" problem.

You're getting visitors. Some click your ads. A few add to cart. Most leave. And because the tracking is usually broken, you can't see where the money is leaking — so you do the only thing you've been told to do: spend more. More spend, more loss.

This guide fixes that. It's the same five steps I run for paying clients, written out so you can do it yourself. Follow it in order and you'll plug the leaks, lift conversion, and grow sales from the traffic you already have. Let's go.

01Decode

Find the one question that keeps your customer awake at night.

You can't sell to someone you don't understand. Before you touch your page or your ads, you need to know — in their words — what they're afraid of, what they want, and the single biggest question running through their head before they buy.

1 · Find what they're actually asking

Go to findquestions.com. It scans Reddit and hands you a long list of the real questions your customers are asking. One rule: be specific. "Tallow balm for eczema" beats "skincare." "Offset smoker for beginners" beats "BBQ."

  • Run it 3–4 times with different phrasings of what you sell. Each phrasing pulls different threads.
  • It only shows a few free and emails you the full list of ~40 — use an email you don't mind handing over.
  • It also gives you a list of subreddits to monitor. Write those down — that's your next step.

2 · Read the subreddits and steal their language

Open those subreddits and read. Don't skim — read the comments, the rants, the questions people ask at 1am. Copy the exact words and phrases they use into a spreadsheet. This is gold, because of a simple rule:

The rule that makes copy convert

"Enter the conversation already taking place in your customer's mind." When your page uses their words — not your clever marketing words — they think "it's like they're reading my mind," and they trust you. Skepticism drops. Sales go up.

3 · Go deeper with the 9 Dream Buyer questions

Now fill in this worksheet. Be specific and concrete — "hangs out in the Low & Slow BBQ Australia Facebook group" beats "likes BBQ."

1. Where do they hang out?The exact online and offline places — groups, forums, subreddits, events.
2. Where do they get their information?When they research, where do they go first — Google, YouTube, a blog, a person?
3. What are their biggest frustrations and challenges?The pain. What's not working for them right now? This drives the emotion in your copy.
4. What are their hopes, dreams and desires?The dream outcome. This is the "promised land" you paint on your page.
5. What are their biggest fears?What keeps them up at night? People move away from pain harder than toward gain.
6. How do they prefer to communicate?Email, text, DM, in person? Meet them where they already are.
7. What exact phrases and words do they use?Their vernacular, niche terms, the way they describe the problem. Copy it word for word.
8. What does a day in their life look like?Hour by hour. Tells you when and how to reach them.
9. What makes them happy?The small surprises and touches that turn a buyer into a raving fan.

4 · Boil it all down to ONE burning question

Now the most important move. Look across everything — the Reddit questions, the language, the 9 answers — and find the single question your customer keeps asking, over and over, that nobody has answered properly. The one they lie awake thinking about.

For a tallow skincare buyer it might be: "Why does every 'natural' moisturiser still make my sensitive skin worse?" For a BBQ buyer: "How do I stop wasting weekends on dry, ruined briskets?"

Your whole page, offer and ads will be built to answer this one question. If you only do one thing in this step, find this question.
02Answer

Build one simple page that answers it — and checks out in one place.

Most stores send people on a confusing journey across five pages before they can buy. Don't. Build one focused page that answers the burning question, shows your product as the fix, and lets them buy without leaving.

The page, top to bottom

  1. Headline that answers the burning question. Speak directly to the thing keeping them up at night. Use their words from Step 1.
  2. Agitate the problem. Show you understand why it's been so frustrating — the failed past attempts, the wasted money.
  3. Introduce your product as the solution. Here's the key move: don't list features. Translate each feature into how it solves their question. "3 ingredients" isn't a feature — it's "nothing in here to trigger your sensitive skin."
  4. Proof. Reviews, before/afters (frame as customer-shared experiences for compliance), real photos.
  5. The offer + a clear, single call to action.
★ Bonus

Sample headline formulas (steal these)

Stuck on your headline? These are four proven formulas — fill the brackets with your burning question and dream outcome.

1. X ways to achieve [desirable thing] without [undesirable thing]

e.g. "5 Ways to Calm Sensitive Skin Without 20-Ingredient Creams"

2. [Do difficult thing] in [time] — even if [shortcoming]

e.g. "Heal Dry, Reactive Skin in 14 Days — Even If Everything Else Has Failed"

3. Achieve [desirable thing] like [an expert] even without [something expected]

e.g. "Smoke Brisket Like a Pitmaster — Even Without an Expensive Setup"

4. How to eliminate [biggest problem] without [thing they hate] within [timeframe]

e.g. "How to End Eczema Flare-Ups Without Steroid Creams — in Under a Month"

One-page checkout: stop the page-jumping

Every extra page between "I want this" and "I've paid" loses buyers. Collapse the journey onto one page:

  • Sticky add-to-cart. A buy button that follows them as they scroll, so they can buy the moment they're convinced.
  • A slide-out cart drawer instead of a separate cart page — the cart opens over the page, they never leave.
  • Turn on one-page checkout. Most ecommerce platforms now offer this in their checkout settings — it puts contact, shipping and payment on a single screen instead of three.
Net effect: the path goes from page → cart page → checkout step 1 → step 2 → step 3 down to one page → drawer → one checkout screen. Fewer steps, fewer drop-offs, more sales from the same traffic.
★ Bonus

Sample code: a slide-out cart drawer

Want this slide-out cart drawer on your store? Use the code boxes below — or just hand them to your web developer for a quick turnaround. No need to wait weeks for them to build it from scratch; it's ready to drop in. It slides in from the right, shows a free-shipping progress bar, lists upsells, and closes on the X, the overlay, or the Escape key.

▸ Click to reveal the cart drawer code (HTML · CSS · JS)

1 · HTML — the trigger button, overlay & drawer

<!-- 1. Your "Add to cart" / CTA buttons. data-add = "Name|Price" -->
<button class="add-btn" data-add="Tallow Balm|39">Add to cart — $39</button>

<!-- 2. Drop this once, just before </body>: the overlay + the drawer -->
<div class="cart-overlay" id="cartOverlay"></div>
<aside class="cart-drawer" id="cartDrawer" aria-hidden="true">
  <div class="cart-head">
    <span>Your cart</span>
    <button id="cartClose" aria-label="Close">&times;</button>
  </div>

  <!-- free-shipping progress bar -->
  <div class="ship-bar"><div class="ship-fill" id="shipFill"></div></div>
  <p class="ship-msg" id="shipMsg">Add $100 for free shipping</p>

  <div class="cart-items" id="cartItems"></div>

  <!-- upsell row -->
  <div class="upsell">
    <p class="upsell-t">Add to your order</p>
    <button class="add-btn small" data-add="Lip Balm|12">+ Lip Balm $12</button>
    <button class="add-btn small" data-add="Soap Bar|10">+ Soap Bar $10</button>
  </div>

  <div class="cart-foot">
    <div class="subtotal"><span>Subtotal</span><span id="cartTotal">$0</span></div>
    <a href="/checkout" class="checkout-btn">Checkout &rarr;</a>
  </div>
</aside>

2 · CSS — the slide-in animation & styling

.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:.3s;z-index:998}
.cart-overlay.open{opacity:1;visibility:visible}
.cart-drawer{position:fixed;top:0;right:0;height:100%;width:420px;max-width:100%;background:#fff;
  transform:translateX(100%);transition:transform .3s ease;z-index:999;display:flex;flex-direction:column}
.cart-drawer.open{transform:translateX(0)}                /* this line does the slide-in */
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #eee;font-weight:700}
.cart-head button{border:0;background:none;font-size:1.6rem;cursor:pointer}
.ship-bar{height:6px;background:#eee;margin:16px 20px 6px;border-radius:3px;overflow:hidden}
.ship-fill{height:100%;width:0;background:#EBA63C;transition:width .3s}
.ship-msg{padding:0 20px;font-size:.85rem;color:#666}
.cart-items{flex:1;overflow-y:auto;padding:16px 20px}
.cart-line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f0f0}
.cart-line button{border:0;background:#f3f3f3;width:26px;height:26px;border-radius:6px;cursor:pointer}
.upsell{padding:16px 20px;border-top:1px solid #eee}
.upsell-t{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#888;margin-bottom:8px}
.cart-foot{padding:20px;border-top:1px solid #eee}
.subtotal{display:flex;justify-content:space-between;font-weight:700;margin-bottom:12px}
.checkout-btn{display:block;text-align:center;background:#01374F;color:#fff;padding:14px;border-radius:10px;text-decoration:none;font-weight:600}
.add-btn.small{background:#f3f3f3;border:0;padding:8px 12px;border-radius:8px;margin:4px 4px 0 0;cursor:pointer}

3 · JavaScript — open/close, add, remove, free-shipping bar

const FREE_SHIP = 100;          // free-shipping threshold
let cart = [];

const drawer  = document.getElementById('cartDrawer');
const overlay = document.getElementById('cartOverlay');

function openCart(){ drawer.classList.add('open'); overlay.classList.add('open'); }
function closeCart(){ drawer.classList.remove('open'); overlay.classList.remove('open'); }

// Any [data-add] button: add the item, re-draw, slide the drawer open
document.querySelectorAll('[data-add]').forEach(function(btn){
  btn.addEventListener('click', function(){
    const parts = btn.dataset.add.split('|');
    cart.push({ name: parts[0], price: Number(parts[1]) });
    render();
    openCart();
    // ON YOUR STORE, replace the line above with your platform's real cart API, e.g.:
    // fetch('/cart/add.js', {method:'POST', headers:{'Content-Type':'application/json'},
    //   body: JSON.stringify({ id: VARIANT_ID, quantity: 1 }) }).then(render);
  });
});

function render(){
  const box = document.getElementById('cartItems');
  box.innerHTML = cart.map(function(it, i){
    return '<div class="cart-line"><span>' + it.name + '</span>' +
           '<span>$' + it.price + ' <button onclick="removeItem(' + i + ')">&times;</button></span></div>';
  }).join('') || '<p style="color:#888">Your cart is empty.</p>';

  const total = cart.reduce(function(s, it){ return s + it.price; }, 0);
  document.getElementById('cartTotal').textContent = '$' + total;

  const pct = Math.min(100, (total / FREE_SHIP) * 100);
  document.getElementById('shipFill').style.width = pct + '%';
  document.getElementById('shipMsg').textContent =
    total >= FREE_SHIP ? 'You have unlocked free shipping!' : 'Add $' + (FREE_SHIP - total) + ' for free shipping';
}

function removeItem(i){ cart.splice(i, 1); render(); }

// Close on the X, on the dark overlay, and on the Escape key
document.getElementById('cartClose').addEventListener('click', closeCart);
overlay.addEventListener('click', closeCart);
document.addEventListener('keydown', function(e){ if(e.key === 'Escape') closeCart(); });
On your store platform: paste this into a custom HTML/code section of your theme, and swap the demo cart.push(...) line for your store's real add-to-cart API so it stays in sync with your live cart and checkout. Many modern ecommerce themes already include a cart drawer you can simply switch on in your theme's cart settings.
03Lift

Raise the value of every order — without one extra visitor.

The cheapest sale you'll ever make is to someone already buying. Three simple upsells lift your average order value, which means more revenue from the exact same traffic and ad spend.

  • Order bump. A small "add this too?" tick-box at checkout — a travel size, a refill, a complementary product.
  • Bundle / "build your set." Offer 2–3 products together at a gentle discount. Most people take the middle option.
  • One-click post-purchase upsell. Right after they pay, offer one more item they can add with a single tap — no re-entering card details.
Even a 15% lift in average order value drops almost straight to your bottom line, because you've already paid to acquire the customer.
04Amplify

Mine the Meta Ad Library — the biggest free goldmine in advertising.

You don't need to guess what ads will work. Your competitors have already spent millions finding out. The Meta Ad Library shows you every ad running on Facebook and Instagram, anywhere in the world, for free.

How to use it

  1. Go to the Meta Ad Library and search your competitors — and the best brands in your niche worldwide, not just Australia.
  2. Look for the ads that have been running the longest. This is the whole trick: brands kill ads that lose money fast. If an ad has been running for months, it's because it's making them money. Longest-running = proven winner.
  3. Find three winners — aim for a mix of video and image formats.

Then analyse and replicate (don't copy)

For each winner, break down why it works: What's the hook in the first 3 seconds? What problem does it lead with? What's the offer? Then rebuild that structure for your product, in your brand, answering your burning question. You're modelling what works — not stealing the ad.

A fast way to draft your version: feed the winning ad's transcript or copy into ChatGPT and ask it to rewrite the same structure for your product and your burning question. Then make it yours.
05Track & Run

Launch without setting fire to your budget.

This is where most founders lose money — they launch wrong, read the data wrong, and conclude "ads don't work." Here's how to do it properly.

⚠ Read this first — it'll save you hundreds If your conversion tracking isn't fully set up, do not run ads optimised for Purchase. Meta needs roughly 50 conversion events a week to learn. With zero purchase data, it has nothing to optimise toward and burns your budget. For your first 7 days, optimise for Add-to-Cart instead — it's a cheaper, more frequent event, so Meta learns fast. Once you've gathered data, switch the campaign to optimise for Purchase.

Your starter setup (if you've never run ads)

  • $20/day budget
  • One ad set
  • Three ad creatives inside it

This lets you test which message resonates without spreading yourself thin. And every creative should be built from this formula:

Concept = Angle + Persona + Format + Offer

Angle = the hook (e.g. "3 ingredients"). Persona = who it speaks to (e.g. "the eczema veteran"). Format = video or image. Offer = what they get. Change one element and you've got a new creative to test.

⚠ The most important rule — one concept per ad set Since Meta's "Andromeda" update, putting different concepts in the same ad set confuses the targeting — the system can't tell which audience each concept is for, and performance tanks. So: one concept = one ad set. Keep your three test creatives variations of the same concept. This step is crucial; get it wrong and nothing else works.

How to read your data (using real numbers)

Here's a real test we ran — three creatives, same concept, ~$20–25 each over a week. This is exactly what your dashboard will look like:

CreativeImpr.CTR (link)CPC (link)LP viewsAdds to cartCost / ATC
"Test" variant5135.07%$0.98917$1.49
"Variant" product6566.68%$0.5717
"Review" product36510.11%$0.49122$9.02

What this tells you:

  • The "review" creative has the best CTR (10.11%) and cheapest clicks — the social-proof angle is what grabs attention. That's your hook winner.
  • The "variant" creative drives the most landing-page views at the lowest cost — it's the most efficient at actually getting people onto the page.
  • Notice the "Test" creative shows 17 adds-to-cart but only 9 landing-page views — that's impossible, and it's the tell-tale sign of a tracking gap. Your numbers can't guide you if they're wrong. This is exactly why proper tracking is the foundation under everything.

The key metrics, in plain English

Impressions / Reach
Times shown / unique people who saw it. Impressions are always ≥ reach.
Frequency
Average times each person saw it. 1.2–1.4 is fresh; above ~3 means fatigue is setting in.
CPM
Cost per 1,000 impressions — how expensive it is to be seen by this audience.
CTR (link)
% who clicked through to your site. Over 2% is solid; these ads at 5–10% are excellent — strong creative.
CPC (link)
Cost per click to your site. Lower is better. Compare creatives against each other.
Landing page views
People who actually loaded your page. If this is far below link clicks, your page is slow or they bounce before it loads.
Adds to cart / Cost per ATC
Your first-week optimisation goal. The cheaper, the better the whole funnel is working.

What to do with it

  • Great CTR but poor adds-to-cart? The ad's fine — your page or offer is the problem. Go back to Step 2.
  • Poor CTR? The creative or angle is weak. Kill it and test a new angle.
  • Scale the concept that produces the cheapest add-to-cart — then, with data flowing, switch to optimising for Purchase and repeat the read.

Run, read, tweak, repeat — every two weeks. Compound those small wins across page, offer, upsells and ads, and a 20% sales lift in 90 days is very achievable.

Real example

Does this actually work?

We ran this exact path for The Tallow Tribe, an Adelaide skincare brand. Here's what 90 days looked like — on the same traffic and the same ad budget.

+34%
Store conversion rate — Step 2, a page that answered the one burning question
+18%
Average order value — Step 3, bundles & upsells
+29%
Total online revenue in 90 days — same ad spend

No extra traffic. No bigger budget. The lift came purely from plugging the leaks: a page built around their customers' real burning question, upsells that raised order value, and tracking that finally showed what was actually working.

Want us to find your leaks for you?

This is the exact path we run for clients — so you now know precisely what we'd do, step by step. Want us to find the 3 biggest leaks in your ecommerce store? Book a free 20-minute revenue audit. No mystery, no jargon — you can question us at every stage, and we'll back every call with your data.

Book a free 20-minute revenue audit →
Scroll to Top