Welcome, Read This First
Before any of the how-to stuff, I want to tell you what you've actually joined. Because it's not a normal job, and I don't want you treating it like one.
What we're building
We build and run online stores. One product, one brand, one store at a time, and we're genuinely great at it.
In India, selling higher-priced products on cash-on-delivery, we've hit a level most people can't touch.
The reason is simple. Our margins are so good we can outspend everyone on ads and still make money. So our products run for years while other people's die in weeks.
That's the machine. It works, and I've proven it.
Now here's the model, and it's not something I made up. Think about Walmart.
It became the biggest company in the world, and the way it did it was simple. One store, one manager. And that manager ran their store like they personally owned it, and got paid on how it performed.
No head office micromanaging every little thing. Just accountable people running their own patch, rewarded for it, multiplied hundreds of times over.
That's exactly what we're building, except for ecommerce. One store, one operator, run like it's yours.
And I want to be clear about the size of this, because I don't think small.
This isn't a side hustle that tops out at a few stores. The goal is a $100 million company. In plain numbers, that's 2.7 crore a day.
We get there the Walmart way. One store and one operator at a time. And you are one of the very first of those operators. Early.
That means you're not joining something finished. You're helping build the thing.
I won't pretend it'll be easy or that every day is exciting. Some of this work is repetitive. Some products we test will flop, and that's normal, that's what testing is for.
But if you're the kind of person who wants to build something big and grow with it, there aren't many better seats than this one right now.
How this actually works for you
You're going to run a store. Not assist on one. Run one.
I hand you a product, and you take it all the way: research, the sales page, the creatives, the store, the ads, the fulfillment.
You won't do all of that by hand. You'll direct Alexander (our AI system, you'll pick it up fast) and check its work. But the store is yours. The calls are yours. When it does well, that's you.
You're trusted with a lot here, more than most jobs give you this early.
The one hard line is money. You never spend real money on your own. Ad launches, budgets, purchases, those always come to me first.
That's not because I don't trust you. It's how we protect everyone while things are still being built out. You'll see this "money-gate" all through the training. Everything up to the spend, you own.
How we treat work, and how we reward it
I'll be straight with you about the deal, because I hate vague promises.
We reward the people who go hard. This isn't a place where everyone gets treated the same regardless of output.
The operators who run their stores well, who care, who push, get rewarded for it. And they get more. More responsibility, more stores, a real path up as we grow toward that 100-plus person company.
The people who coast get left behind. I'd rather tell you that upfront than pretend otherwise.
Your rewards are tied to how your store does. This is the Walmart part again, and it's the part I care about most.
You're not on a flat wage that ignores your results. You run your store, and the better it performs, the better you do. Your upside is tied directly to the thing you actually control.
That's how a Walmart manager thinks about their store, and it's how I want you thinking about yours. ✎ Note to selfdrop the exact incentive and comp numbers here once locked, so this isn't vague.
I notice the work. When you do something well, you'll hear it from me.
When you hit a milestone, we mark it. First store live, first winner, a store you scaled. Those are real moments and I treat them like it. Good work doesn't disappear into a void here.
What I expect from you
- Care about the numbers being right. Half of what we do is trusting the data. If you fudge a number or guess instead of checking, you break that. Always give me the real number, even when it's bad. Especially when it's bad.
- Follow the process, then earn the right to improve it. The training exists because this stuff works. Learn it properly first. Once you've earned it, your ideas on making it better are genuinely wanted.
- Move fast, don't be precious. We test, things fail, we move on. Don't get attached to a product or an idea. Get attached to results.
- Own your store. Nobody's going to chase you. The store is yours to run.
Your first milestone
Right now your job is simple. Get through this training properly. Don't rush it.
Every module builds on the last. By the end you'll be able to take a product I hand you and turn it into a live, running store on your own. That's a genuinely valuable skill, and most people never learn it.
When you finish the training and launch your first real store with me watching, that's your first real milestone. And we'll treat it like one.
Welcome in. Let's build something.
Start with the Module Index next, then work through the modules in order.
Operator Training, Master Module Index
This is the full training for running a store. Work through the modules in order. By the end you can take a product I hand you and run it as a live store, start to finish, by directing Alexander (the console) and checking its work, without needing me for anything except picking the product and approving spend.
If you haven't read 00-WELCOME yet, read that first. It's the why: what we're building, how you fit, and how we reward the work. Then come back here.
This index is the map. Each module is a standalone lesson: a written SOP you read, the exact prompts you paste into Alexander, checklists, and a screen-recorded walkthrough.
How this works (read this first)
You're the operator. Alexander is your builder. You don't write copy, design images, or code a page by hand. You direct Alexander through each step using the exact prompts in each module, then you check (QA) what it made against the standard in that module. You're the one running the launch and making the calls. Alexander is the team doing the hands-on work.
Two things you never do:
-
Pick the product. I do that and hand it to you. It's the one part I keep, because getting a feel for what'll sell took me years. And picking it doesn't mean it's a sure thing, we test demand first and some products flop. That's fine, that's what testing is for. You start at Module 01 with a product I've handed you to take through the process.
-
Spend real money. You never launch paid ads live, raise a budget, or buy anything yourself. When a step hits a money decision, Alexander stops and it comes to me to approve. That's the "money-gate," and it's absolute. More on it in each module.
One task = one thread in the console. When you start a build step, open one task in Alexander and keep that whole step in that one thread. When you move to a different step, start a new task. Don't mix two builds in one thread.
The 10 modules (in the order a store gets launched)
| # | Module | What you can do after it | Who executes |
|---|---|---|---|
| 01 | Product Handoff & Intake | Take a product I hand you and confirm you've got everything to start | You + me |
| 02 | Market & Avatar Research | Direct Alexander to build the desire-first avatar and root-cause research | You direct Alexander |
| 03 | Advertorial & Funnel Copy | Direct Alexander to write the full advertorial (and quiz) with the 7-stage engine | You direct Alexander |
| 04 | Creative & Images | Direct Alexander to spec and generate all the funnel images to standard | You direct → I generate* |
| 05 | Store & PDP Build | Set up the Shopify one-product store from scratch and build the PDP | You + Alexander |
| 06 | Ad Account Setup & Launch | Set up Business Manager, the pixel, and the first campaign (built paused) | You → I launch |
| 07 | Media Buying & Scaling | Run daily optimization and the kill/scale calls by the rules | You → I approve spend |
| 08 | Fulfillment, CS & COD Ops | Run COD confirmation, NDR follow-up, RTO reduction, returns | You + team |
| 09 | Maintenance | Keep a live store healthy: restock, creative refresh, monitoring | You |
* Image generation runs on my machine for now (the image key stays off the operator system), so in Module 04 you prepare the briefs and I run the generation, until the console's upgraded.
"Prepare" vs "execute"
Some steps Alexander does fully. Others it can only prepare (build everything, then hand to me to hit the button), because live deploys, ad launches and image generation stay behind the money-gate and the credential rules until the console is fully hardened. Every module says at the top which of its steps are prepare-only.
| Stage | Where it stands today |
|---|---|
| Research, copy | Execute, Alexander does it fully, you QA |
| Images | Prepare, you brief, I generate |
| Store/PDP build, deploy | Prepare, Alexander builds, I deploy |
| Ad launch, budget changes | Prepare, built paused, I launch |
| Fulfillment/CS | Execute, you + team run it |
Progress checklist
- □ Read 00-WELCOME
- □ Read this index end to end
- □ Module 01, Product Handoff & Intake
- □ Module 02, Market & Avatar Research
- □ Module 03, Advertorial & Funnel Copy
- □ Module 04, Creative & Images
- □ Module 05, Store & PDP Build
- □ Module 06, Ad Account Setup & Launch
- □ Module 07, Media Buying & Scaling
- □ Module 08, Fulfillment, CS & COD Ops
- □ Module 09, Maintenance
- □ Supervised live launch of a real product (the final test)
Build status: all 10 modules drafted, v1 (July 2026). Ready for review.
Module 01, Product Handoff & Intake
After this module you can take a product I hand you, make sure you actually have everything you need to start building, log it properly, and get going without a single missing piece.
Before we start
This is your first module, so let me set it up properly.
Intake sounds boring. It's a checklist. No copywriting, no ads, nothing flashy.
But I'm putting it first on purpose. The operators who take this step seriously are almost always the ones whose stores do well later.
The ones who rush it are the ones who come to me three weeks in, asking a question they should have nailed down on day one.
The whole job is built on being careful with details and honest about what you know. That habit starts here. So take it seriously even though it looks small.
Where this sits
This is the first thing that happens on a new store.
Before you get involved, I've picked the product. Picking products is the one part I keep for myself. It's taken me years to get a feel for what'll actually sell, and it's not something I'm handing over.
But me picking it doesn't make it a sure thing. We test demand first, and not every product makes it. Some flop and we drop them.
That's completely normal. It's the whole reason we test before going all in. I've got a very high hit rate, but that comes from testing properly, not from every product magically working.
So when I hand you a product, I'm not handing you a guaranteed win. I'm handing you something worth taking through the process to find out.
Your job starts right there. This module is that handoff. You're making sure that the moment I give you a product, you've got every detail you need, so nothing trips you up later.
What you need before you start
You need me to have handed you a product. That's the trigger.
Everything else here is about making sure "I handed you a product" actually means "you have everything about the product." A name on its own isn't enough to build anything real.
You don't need much open yet, just two things:
- Orbit is my internal system. It's where every store, every order, and every number across the whole business lives. It's how I see everything at a glance, and where you'll log and track your store.
- The console is the chat where you talk to Alexander to get work done. Alexander is our AI system that does the heavy building (research, copy, images, pages) while you direct it and check the work.
If you don't have logins for both yet, sorting that with me is step zero. You can't do the job without them, so come get access first.
Execute or prepare?
You do this whole module yourself, start to finish.
No money gets spent, nothing goes live. It's just you, a checklist, and logging one thing into Orbit.
The money-gate (I'll explain it fully in Module 06) doesn't touch this module at all, so don't worry about it here.
The step, start to finish
Step 1, Get the full brief from me
When I hand you a product, I should give you everything below.
Your job is to make sure I actually did. If I left something out, come back and ask me before you go any further.
Do not start guessing or filling in blanks yourself. A wrong guess at intake quietly breaks everything downstream, because the research, the copy, and the pricing all get built on these numbers.
Here's every item you need from me, what it means, and why it matters:
-
What the product is. The actual physical thing, in plain words. Like, "an EMS abs stimulator, a small device you stick on your stomach that pulses electricity to make the muscle contract." If you can't say it in one plain sentence, you don't have enough yet.
-
How it works, the mechanism. The simple reason it gets a result. For the abs stimulator, "it contracts the muscle thousands of times without you doing a single sit-up." This matters more than it looks, because the whole sales page later is built on the mechanism. If it's fuzzy in your head now, the advertorial will be fuzzy later.
-
Brand and domain. The store's brand name (say, "Kairova") and its web address (say, "kairova.in"). Sometimes the brand exists already, sometimes I'll say we need a fresh one. Note which, because a new brand means extra setup.
-
Selling price and target AOV. The price the customer pays including shipping (say, ₹2,550), and the AOV I'm aiming for. AOV means average order value, the average order total once bundles and upsells get added on top. This is the core of why we win: high AOV means fat margins, which means we outbid competitors on ads and last for years while they die. Respect this number.
-
COGS per unit. COGS means cost of goods sold, what one unit actually costs us to buy (say, ₹240). You need it so you know the product makes money at our price, and so Orbit's numbers come out right.
-
Supplier and stock. Who supplies it, how many units are in stock now, and the lead time, which is how many days a fresh order takes to arrive (say, "3,400 units, 40-day lead"). Don't skip this. Lead time decides how fast we can scale later.
-
Where it came from. Where I saw this working, usually a competitor's ad or advertorial that's clearly crushing it. If I send a link or screenshot, save it. You'll want it badly in Modules 02 and 03.
-
What to model it on. I'll usually point you at one of our existing funnels, or a competitor's style, to model the new one on. Note exactly which.
-
COD or prepaid. Whether this store runs mostly COD (cash on delivery) or has a prepaid push. Most of our cold traffic is COD, that's normal for India. Just note what I tell you.
🎥 Screen recordme doing a real handoff out loud, going through each of the nine items as I give them, so you hear what a complete, proper handoff sounds like.
Step 2, Fill the Intake Form
Take those nine items and write them into the Intake Form (it's in the Templates section at the bottom).
Copy the template into a fresh note for this product, and fill in every single field.
This isn't busywork. When it's just a conversation in your head, your brain skips over the gaps.
The moment you have to write a value into a field, you notice when you don't have it. Most of the time you'll only realise "wait, I never got the lead time" when you're staring at that empty line. The form is a gap-catcher.
Step 3, Close every gap before you move on
Look at your filled form. For anything still blank or unclear, message me with a short, specific question.
Not "can you send more info." Something sharp, like "what's the COGS and current stock on the abs stimulator?" Specific questions get fast answers.
Asking a sharp question is a sign of a good operator, not a dumb one. Never sit on a gap because you're worried about looking like you missed something.
Missing something and asking is fine. Missing something and pretending you didn't is what causes real damage.
Do not move to Step 4 until that form is completely filled. This is the most important habit in the module. Nearly every hour you lose later traces back to somebody skipping this.
Step 4, Log the product in Orbit
Now put the product into Orbit so the whole system knows it exists and has started.
- Open Orbit at https://shopify-dashboard-taupe.vercel.app and log in.
- In the left menu, click Products. That's the Product Tracker, the list of every product we're working on and what stage each is at.
- Click the button to add a new product, at the top of the list.
- Enter the product name and the brand.
- Set the stage to "Research Phase." Every new product starts there. The stages go Research Phase, then Testing Store Page Done, then Testing Ads, then either Winner or Flop/Dropped. A product can end up Flopped, and that's not your failure, that's the testing doing its job.
- Save, and check the product now shows in the list at Research Phase.
🎥 Screen recordthe full Orbit flow, logging in, clicking Products, adding one, setting it to Research Phase, saving, and it appearing in the list.
Done right, the product is now sitting in Orbit at Research Phase. That's your signal that intake is finished and the build has officially begun.
How to direct Alexander
This module is mostly you and a checklist, so Alexander has a small role.
But there's one genuinely useful thing it can do: catch holes in your intake before you commit. Open a new task in the console and paste this:
I'm doing intake for a new store product. Here is the brief I received:
<paste your filled Intake Form here>
Check it against what's needed to start a store build. Tell me: (1) any field
that's missing or too vague to build on, (2) any number that looks off or
inconsistent (e.g. a COGS that's too high vs the selling price), and (3) the
single most important thing to confirm with me before starting research. Do
not invent any values. If a value is missing, say it's missing.
Good output is a short, specific list of what's missing or shaky, plus one clear "confirm this first."
If Alexander starts making up product details to fill gaps, stop and ignore it. Its job here is to flag holes, never to fill them with guesses.
This is your first tiny taste of the real skill in this job: directing Alexander, then judging its output instead of blindly trusting it.
What you decide & QA
You own one call in this module: is this intake actually complete enough to build on?
- Pass: all nine items filled with real, specific values, you can explain the product and how it works out loud in plain English, and it's showing in Orbit at Research Phase.
- Fail: anything blank or vague ("some device," "cheap-ish COGS," "I think there's stock"). If it fails, you are not done, no matter how much you want to move on. Go back to me and close the gap.
The habit you're really building is refusing to move forward on incomplete information. That's worth more than any single fact on the form.
Money-gate points
None. Nothing here spends money or takes a live action.
The money-gate starts mattering in Module 06 (ad launch). I'm only naming it here so you know it exists and simply doesn't apply yet.
Common mistakes & fixes
- Starting research with a half-filled brief. The most common and most expensive. Fix: the Step 3 habit, form has to be 100% before Step 4.
- Mixing up selling price and AOV. Selling price is one unit. AOV is the average order total after bundles. Fix: write both, separately.
- Nodding along without understanding the mechanism. If you can't explain how the product works, you can't brief research or QA the copy. Fix: if it's fuzzy, ask me to explain it again.
- Not saving the winning ad I referenced. You'll want it in Modules 02 and 03. Fix: save it into the product's note the second I send it.
- Forgetting the lead time. Feels tiny now, decides everything about scaling later. Fix: it's a required field, never leave it blank.
Templates & checklists
The Intake Form (copy this, fill every field):
PRODUCT INTAKE, <product name>
Date received:
Handed off by: me
1. What it is:
2. How it works (one sentence):
3. Brand:
Domain:
New brand needed? (yes/no):
4. Selling price (incl. shipping): ₹
Target AOV: ₹
5. COGS per unit: ₹
6. Supplier:
Units in stock now:
Lead time (days):
7. Where it came from (link/screenshot saved?):
8. What to model it on:
9. Mostly COD? prepaid push?
INTAKE COMPLETE? (all fields filled): yes / no
Logged in Orbit at Research Phase?: yes / no
Worked example
Open funnels/products/README.md in the vault, that's the product knowledge base.
It has real, filled-out intakes for our live products: Kairova (FitPro EMS abs), Vyonik (ShapePro booty trainer), LUME (Dr. Melaxin under-eye), Glyka (GHK-Cu serum), Maverik (TrueTone).
Open the Kairova one and read it against the nine items above. You'll see the brand, avatar, price, and mechanism all captured cleanly.
That's exactly what a complete intake looks like once filled in. Study it so you know what "done right" feels like before you do your own.
You just finished Module 01
That's your first one done.
It looked small, but you just built the habit the whole job runs on: get the full picture, refuse to move on gaps, log it clean.
The operators who nail this are the ones I end up trusting with more, and more stores, faster.
Next up is Module 02, Market & Avatar Research, where it gets more interesting. You'll start directing Alexander to actually dig into who buys this and why. Take a breath, then go.
Module 02, Market & Avatar Research
After this module you can take the product I handed you and direct Alexander through the full research pass, the avatar, the root cause, the mechanism, the real customer language, the competitors, and come out the other side with one clear winning avatar and angle that the whole sales page gets built on.
Where this sits
Module 01 was intake. You got the product from me, filled the form, closed every gap, and logged it in Orbit at Research Phase. So right now Orbit knows the product exists and nothing else has happened yet.
This module is the foundation everything else stands on. What you produce here, the avatar, the root cause, the mechanism, the voice-of-customer, the competitor picture, is the raw material the copy is written from in Module 03.
Get this right and the advertorial almost writes itself later. Get it wrong, vague, or generic here, and every module after this is you building on sand. This is the most important research you will do on the whole store.
What you need before you start
You need three things in front of you before you touch Alexander.
- The filled Intake Form from Module 01. Every field, the product, the mechanism I gave you, the price, the audience, the winning ad I referenced. If any field is still blank, stop and go finish Module 01. You cannot research a product you can't describe.
- The winning ad or advertorial I pointed you at. The competitor thing that's clearly crushing it, the reason I picked this product. If I sent a link or screenshot, have it open. This is your single best clue about what's already working in the market.
- The console open. The console is the chat where you talk to Alexander, our AI system that does the heavy building while you direct it and check the work. If you don't have a login yet, that's step zero, come get access from me first.
You do not need Shopify, Meta, or any ad account open for this module. Nothing goes live here. This is pure research.
Execute or prepare?
You execute this whole module yourself, with Alexander doing the heavy lifting.
Here's the honest split. Alexander does the actual digging, it builds the avatar, researches the root cause, mines Reddit for real customer language, maps the competitors. That's the heavy work, and it does it fast.
Your job is to direct it and judge it. You feed it the right prompts in the right order, you read what comes back, and you decide whether it's specific and real or generic and lazy. Then you make the final call that matters most, picking the one avatar and angle we build on.
So you're not writing the research by hand. You're the operator running the machine and checking every part that comes off the line. The quality of what comes out depends entirely on you refusing to accept weak output.
No money gets spent in this module. The money-gate doesn't touch research at all.
The step, start to finish
The research runs in a set order, and the order matters. Each piece feeds the next. Don't jump ahead.
Here's the whole path before we go into each one:
- Build the desire-first avatar (the Core 5).
- Research the root cause of the problem.
- Research the solution mechanism.
- Mine the real voice of the customer (Reddit and reviews).
- Research the competitors.
- Pick ONE winning avatar and angle to build the copy on.
Do them in that order. I'll take you through each one, exactly what to tell Alexander, and exactly what a good result looks like.
Set up one place to keep all of this first. In the vault, the research for a product lives in its own folder under funnels/products/. Every document Alexander produces gets saved there so Module 03 can pull from it. Ask Alexander to save each piece as its own file as you go, so nothing gets lost in the chat.
🎥 Screen recordme opening funnels/products/, showing the folder for one real product like kairova, and the research files sitting inside it, so the operator sees where everything they're about to make will live.
Step 1, Build the desire-first avatar
The avatar is the single most important idea in this whole job, so slow down here.
An avatar is a group of people unified by things they have in common, built so that a total stranger reads our ad and thinks "that's exactly me." That flash of recognition is what earns trust, and trust is what makes the sale.
We build avatars a specific way, and it's not the way most people do it. Most people start with demographics, "women, 30 to 45, urban India." We do the opposite. We start with what they WANT and put demographics dead last. This is called the desire-first method, and it's the project standard for every avatar we ever build.
The method has five categories, and you use them in this exact order. I call them the Core 5:
- Desires. The "I want" and "I need" statements. You start here, always. Use specific surface desires, "I want a flat stomach for the first time in my life," not broad ones like "I want to be healthy." Never build one avatar on more than one desire.
- Experiences. What they've been through or are going through right now. Two kinds. Situational, like "has a desk job, sits all day." And product-based, like "tried crunches and an ab wheel, both got abandoned." Strip the emotion out here, just capture what actually happened.
- Emotions. How they feel about what's happening. Get past the surface feeling like "frustrated" to the real primary emotion underneath, usually fear, anger, sadness, or shame. Emotions bypass logic, so this is where the real leverage is.
- Behaviors and habits. What they actually do, over and over. "Sucks his stomach in when he walks past a mirror." These are tied to identity, so they hit hard. The more often they do it, the stronger it is.
- Demographics. The plain facts, gender, age, income, location. Last and least. Most of it is already implied by the four categories above. Only lead with a demographic if the product genuinely works better for that group.
That's the framework. Now here's how the avatars stack.
A Core Avatar is built on ONE category, ideally one desire. That's your foundation.
A Sub Avatar is that Core Avatar made more specific by layering the other categories on top, one desire, plus a shared experience, plus a shared emotion, plus a shared behavior. The more layers, the more specific, the more that one stranger feels like we're reading his mind. Don't layer so hard that almost nobody fits, but for a crowded market you have to go deep, because the shallow one-layer avatars are already saturated by everyone else.
We're a store doing well but still early, so the rule for us is simple. Pick ONE desire-based Core Avatar for this product, then build a few Sub Avatars around it. We go specific, not broad.
Full method is in the vault at funnels/references/evolve-avatar-method.md. Read it once before you run this step, it's short and it's the standard.
🎥 Screen recordme walking through the Core 5 on a real product out loud, starting from the desire and ending on demographics, so the operator hears why we build in that order and never lead with age and gender.
Step 2, Research the root cause
Once you know who the person is and what they want, you dig into WHY they have the problem in the first place.
The root cause is the real reason underneath the problem, the thing actually happening beneath the surface, not just the symptom they can see. For an EMS ab device, the symptom is "soft belly." The root cause is "the deep core muscle has gone neurologically quiet from years of sitting, so it stops holding the stomach in."
This matters for three reasons. It proves to the customer we understand the real issue, which builds trust. It explains why everything they've already tried failed, which is a relief to hear. And it points straight at a solution that targets the actual source. The whole sales page later leans on this.
Alexander does this research, backed by real science, then simplifies it into plain language. You'll direct it with the prompts in the "How to direct Alexander" section.
Save the finished root cause as its own document in the product folder. Module 03 needs it.
Step 3, Research the solution mechanism
The mechanism is the theory of how you actually fix the problem at the root, before you even mention the product.
Think of it as the big "aha." The root cause said "your deep core went silent." The mechanism says "so the fix is to switch that muscle back on with direct electrical stimulation, thousands of contractions it can't do on its own." That's the mechanism. The product comes later as the natural tool that delivers it.
The mechanism has to feel new but obvious the second you hear it. Something the customer hasn't been told before, that immediately makes sense. That's what makes them think "no one's ever explained it to me like this."
One hard rule. I gave you the real mechanism at intake, in the product brief. Alexander does NOT get to invent a new one. Its job is to research, explain, and sharpen the mechanism I already gave you, not make up a different story. If it drifts off and invents a fresh mechanism that isn't true to the product, that's a fail, pull it back.
Save the mechanism as its own document too.
Step 4, Mine the real voice of the customer
This is where the copy's raw gold comes from, so don't rush it.
Voice of customer, or VOC, means the exact words real people use when they talk about this problem, pulled from places they talk honestly. Reddit, reviews, forums, comments. Not how a marketer would phrase it. How a real frustrated person types it at 1am.
Why it's gold. The best copy isn't clever writing, it's their own words fed back to them. When the ad uses a phrase a customer would actually say, it lands as "that's exactly how I feel." You can't invent that. You have to go find it.
You'll run Alexander through two passes here. First a deep dive that pulls whole threads and quotes from the real communities. Then a raw extraction pass that mines those quotes and sorts them by category, day-to-day struggle, failed attempts, secret desire, and so on. Both prompts are in the next section, word for word.
The one rule that cannot break. Every quote has to be real. If Alexander makes up a quote that "sounds like" a customer, that's poison, it will make you build the whole page on a lie. Only real, sourced quotes count. You'll QA for exactly this.
Save the VOC document in the product folder. It's the file the copywriting leans on hardest.
Step 5, Research the competitors
Now you look at who else is selling to this person and what they're doing.
The point isn't to copy them. It's to find where they're strong so we match it, and where they're weak so we beat it. What angle are they running. How do they explain the root cause and the mechanism. What objections do they handle, and which ones do they leave wide open. That gap is often our way in.
Remember, I already pointed you at the winning ad or advertorial that made me pick this product. That's your starting competitor. Have Alexander break it down, then find the others in the space.
Save a short competitor document, who they are, their main angle, their strong points, their weak points.
Step 6, Pick ONE winning avatar and angle
This is the decision the whole module builds to, and it's yours to make.
By now you have a Core Avatar with a few Sub Avatars, and you understand the root cause, the mechanism, the real language, and the competition. Now you choose the ONE avatar and the ONE desire we build the sales page on.
You pick by two things, valence and intensity.
Valence is how emotionally charged the desire is, how much it makes them feel something. Intensity is how strong and how often that feeling hits. You want the desire that scores highest on both, the one that's the most raw and the most constant.
Why one and not all of them. We can't create desire out of nothing, we can only channel a desire that's already burning. The hotter the desire you aim at, the easier the copy writes itself and the harder it hits. Pick a lukewarm desire and every single line of copy is a fight uphill. Pick the burning one and it flows.
So don't hedge. Don't pick three and split the difference. Look at your avatars, find the desire with the highest valence and intensity, and commit to it. That becomes the spine of Module 03.
🎥 Screen recordme looking at a real research doc with several sub-avatars and talking through out loud why I'd pick one desire over the others, pointing at the valence and intensity, so the operator hears how the judgment call actually gets made.
How to direct Alexander
This is the heart of your job in this module. You paste these prompts into the console, in order, filling in the brackets with your product's details. These are the real, tested research prompts we use, don't rewrite them from scratch.
A note on the brackets. Everywhere you see something like [NICHE] or [AVATAR] or [INSERT PROBLEM HERE], you replace it with your product's real detail before you send. [NICHE] might become "men's fitness and body confidence." [AVATAR] might become "a 35-year-old desk-job man with a soft lower belly he's always hated." Never send a prompt with the brackets still in it.
Prompt A, Build the avatar with the Core 5
There isn't a rigid script for this one, because the avatar is built on the method, not a template. Open a new task in the console and paste this, filling in your product:
Act as a world-class direct response strategist for a $100M/year brand in
[NICHE]. Build me a customer avatar for this product: [one-sentence product
description] with this mechanism: [the mechanism from my intake brief].
Use the Evolve desire-first method. Build the avatar in the Core 5 categories
IN THIS ORDER: (1) Desires, the specific "I want / I need" statements, start
here and use surface-level specific desires not broad ones, (2) Experiences,
what they've been through, split into situational and product-based, emotion
stripped out, (3) Emotions, how they feel, and for every surface emotion dig
to the primary emotion underneath and the why, (4) Behaviors and habits, what
they repeatedly do, (5) Demographics, LAST and least.
Then give me ONE core avatar built on a single desire, plus 3 to 5 sub-avatars,
each one the core avatar narrowed by combining more of the Core 5 categories.
Do not combine more than one desire per avatar. Do not lead with demographics.
Ground everything in what a real person in this market actually wants and feels,
not generic assumptions.
Good output is an avatar that starts with a sharp, specific desire and reads like a real human, not a demographic sheet. If it opens with "Men aged 30 to 45 in urban India who want to be healthier," that's the old backwards way, reject it and tell it to lead with the specific desire.
Prompt B, Deep root cause research
Paste this to research the root cause. Fill in the niche, avatar, and the exact problem:
Hi, I want you to act as a world-class direct response copywriter for a
$100M/year brand in the [NICHE].
Your job is to research and explain the root cause of a specific problem
experienced by our ideal customer (the [AVATAR]). This is not surface-level, I
want you to uncover what's really happening underneath, based on credible
scientific and medical research.
Your task:
Deep Root Cause Research:
- Research the root cause of the following problem: "[INSERT PROBLEM HERE]"
- Find what is actually causing this issue.
- Ensure your explanation is backed by logical, factual, and research-based
information.
Then, to turn that research into something usable, follow up with the simplify pass:
Hi, I want you to act as a world-class direct response copywriter for a
$100M/year brand in the [NICHE].
You are provided with a document filled with research-based, science-backed
explanations of the root cause behind a specific problem experienced by our
ideal customer. Your job is to translate that complexity into clear, emotional,
easy-to-understand copy.
Phase 1, Deep Root Cause Understanding: read the research and find what is
actually causing this issue, backed by factual information.
Phase 2, Simplify and Visualize: summarize the root cause in plain English with
all key facts but no medical jargon. Re-explain it like you're talking to a 4th
grader. Add a clear real-life analogy or metaphor that connects the dots
visually and emotionally.
Phase 3, Copywriting Style: write an advertorial-ready section that goes
straight into the root cause, does NOT start with a story, uses short punchy
sentences, is easy to read, and includes a metaphor to make the cause visual.
Good output nails the real biological or logical cause AND gives you a clean analogy a normal person would instantly get. If it stays vague ("it's a mix of lifestyle factors") with no clear mechanism underneath, push it to go deeper and be specific.
Prompt C, Solution mechanism research
Paste this to develop the mechanism. Remember, it must stay true to the mechanism I gave you at intake:
Hi, I want you to act as a world-class product strategist for a $100M/year
brand in the [NICHE].
You are provided with a document explaining the root cause behind a specific
problem experienced by our ideal customer (the [AVATAR]).
Your task: develop the unique solution mechanism, a clear, logical theory of
action that explains how the problem can be fixed at the root level. This is
not about the product itself, your focus is the mechanism that makes real
transformation possible. It's the big "aha" that bridges the root cause and the
solution.
If the root cause has multiple factors, break them down and give a specific
approach for fixing each one. The mechanism should be unique, logical, directly
tied to the root cause, and feel new but immediately make sense.
Deliver: a clear explanation of the overall solution mechanism (no jargon,
clean, emotional, simple), and if there are multiple parts to the root cause,
how the mechanism solves each one.
Good output is a mechanism that matches the one I told you and feels obvious once explained. If Alexander invents a brand new mechanism that contradicts the product I handed you, that's a hard fail. Correct it and re-anchor it to the real mechanism from your intake brief.
Prompt D, Reddit avatar deep dive (voice of customer)
This is the deep dive that pulls real language. Fill in the niche, the avatar description, and a starting list of subreddits where your customer actually hangs out:
Hi, I want you to act as a top creative strategist for a $100M/year direct
response brand in the [NICHE]. Your mission is to conduct a deep dive on our
target customer (the [AVATAR]) to gain a real, emotional, and data-backed
understanding of our ideal audience. The goal is to uncover raw insights that
help us create killer ad angles and messaging that deeply resonates.
Here's how to approach it:
Go deep, no surface-level answers. Compile entire posts and Reddit threads that
reflect what real people are thinking, feeling, and experiencing in their own
words.
Use real customer language. Include exact quotes from Reddit users, especially
phrases that highlight their frustrations, fears, aspirations, and desires.
Analyze multiple perspectives. For every area, include varied opinions,
conversations, and commentary for a well-rounded view.
Prioritize patterns over outliers. Find the big, shared beliefs, struggles, and
desires that unite our audience, not isolated opinions.
Explore relevant subreddits and go beyond. Start with the list below, but
follow any related communities that fit our avatar's world.
Keep context intact. Don't just list quotes, structure findings like real
conversations with post titles and back-and-forth, each wrapped with a brief
insight that ties it back to the avatar's psychology.
Subreddits to start with: [insert relevant subreddits here]
Avatar: [insert avatar description here]
Prompt E, Raw insight extraction
After the deep dive, run this to sort the gold into categories you can actually use:
Hi, I want you to act as a world-class creative strategist for a $100M/year
direct response brand in the [NICHE].
Your mission is to mine the raw data (real reviews, comments, threads,
discussions from our avatar) for gold. Copy their raw language and categorize
each quote under relevant sections.
Structure each entry like this:
Category: Day-to-day struggle
Raw Quote: "I was crying after every hair wash."
Insight: Deep emotional distress during routine activities due to hair loss
Group insights under categories like day-to-day struggle, failed attempts,
identity loss, secret desires, fears, and objections.
Important: only use direct quotes from the data. Do not generate or infer any
quotes on your own. If you don't find a raw quote that fits a category, skip it
rather than making one up.
Good output is a document full of real, specific, human quotes sorted into buckets, each with a short insight. The line you're QAing hardest is "do not make up quotes." If anything reads too clean and marketer-perfect, it's probably invented, flag it.
Prompt F, Competitor research
There's no rigid script for competitors, so direct Alexander with this, and paste in the winning ad I gave you:
Act as a creative strategist for a $100M/year direct response brand in
[NICHE]. Here is a competitor advertorial or ad that's clearly working:
[paste the link or the copy I referenced at intake].
Break it down: (1) what avatar and desire are they targeting, (2) how do they
frame the root cause and the villain, (3) what mechanism do they sell, (4) what
objections do they handle, (5) what are their strongest points we should match,
and (6) where are they weak or leaving objections unanswered, the gaps we can
beat them on.
Then find 2 to 3 other competitors in this space and give me the same breakdown
in short. Focus on patterns across them, not one-offs.
Good output tells you clearly what the market is already doing and, more importantly, where the gap is. The weak-point column is the part you care about most, that's our opening.
Prompt G, Pick the winning avatar and angle
Once all the research is done, use Alexander to pressure-test your pick, but you make the final call:
Here is the full research for this product: the Core 5 avatars, the root cause,
the mechanism, the voice-of-customer quotes, and the competitor breakdown.
[paste or point to the documents]
For each avatar, rank its main desire by emotional valence (how charged it is)
and intensity (how strong and how often it hits). Tell me which single avatar
and which single desire scores highest on both, and give me the one angle you'd
build the whole sales page on. Justify it using the real quotes, not
assumptions. Pick ONE, do not hedge across several.
Good output points at one avatar, one desire, and one angle, backed by real quotes. If it tries to keep three options open, push it to commit. Then you sanity-check it against everything you've read and make the final decision yourself. This is your call, not Alexander's.
What you decide & QA
You own one big judgment in this module, and it's the whole point of your job here: is this research specific, real, and desire-first, and does it hand me one clear winning angle to write copy on?
Go through every piece Alexander produced and hold it to these tests.
- Desire-first, not demographics-first. Pass: the avatar opens with a specific "I want" desire and reads like a real person. Fail: it opens with age, gender, and income, or the desire is broad and generic like "wants to be healthy."
- Specific, not generic. Pass: you could point at any line and it clearly describes THIS customer for THIS product. Fail: you could paste it onto any product in the niche and it would still fit. Generic research is worthless research.
- Real, not invented. Pass: the VOC quotes read like actual messy human posts and could plausibly be real. Fail: the quotes are suspiciously clean, all sound the same, or feel written by a marketer. Made-up quotes are the single most dangerous failure here, because you'll build the whole page on them.
- Mechanism true to the product. Pass: the mechanism matches the one I gave you at intake. Fail: Alexander invented a new mechanism that isn't true to the product.
- One clear winner. Pass: you can say in one sentence which avatar, which desire, and which angle we're building on, and why it beat the others. Fail: you've got a pile of research and no clear decision.
If any of these fail, you are not done. Send it back to Alexander with a sharp correction, or re-run the prompt with better inputs. Never move to Module 03 on research that's vague, generic, or built on invented quotes. Everything downstream inherits its quality from this.
Asking Alexander to redo weak research is not a failure on your part, it's exactly the job. The operators I trust most are the ones who refuse to accept lazy output.
Money-gate points
None. This module spends nothing and takes no live action.
It's pure research, all of it inside the console and the vault. The money-gate, where real spend has to come to me first, starts mattering at ad launch in Module 06. I'm only naming it here so you know it still doesn't apply.
Common mistakes & fixes
- Leading with demographics. The most common one, because it's the habit everyone brings in from normal marketing. Fix: always start the avatar at Desires and force demographics to last. If Alexander leads with age and gender, reject and re-prompt.
- Accepting generic research. "Frustrated men who want to look better" describes half the planet and helps you write nothing. Fix: demand specificity, if a line could fit any product, it fails, send it back.
- Letting Alexander invent quotes. It will happily write a quote that "sounds real" if you don't watch for it. Fix: the raw extraction prompt says only real quotes, and you QA hard for anything too polished. When in doubt, ask Alexander to name the source.
- Letting the mechanism drift. Alexander sometimes gets creative and invents a slicker mechanism than the true one. Fix: re-anchor it to the mechanism I gave you at intake, every time.
- Skipping the VOC step because you're impatient. The voice-of-customer is where the copy's power comes from. Skip it and Module 03 is bland. Fix: never skip it, it's the highest-value document you'll make.
- Refusing to pick one avatar. Hedging across three avatars feels safe but produces mushy copy that hits nobody hard. Fix: commit to the single highest valence-and-intensity desire, that's the whole point of Step 6.
- Not saving the documents into the product folder. If it only lives in the chat, Module 03 can't find it. Fix: have Alexander save each piece as its own file in
funnels/products/<product>/as you go.
Templates & checklists
Research Pass Checklist (all must be yes before Module 03):
RESEARCH PASS, <product name>
Product folder created in funnels/products/: yes / no
1. Avatar (Core 5, desire-first) built and saved: yes / no
- One core avatar on a single desire: yes / no
- 3 to 5 sub-avatars, each layering more categories: yes / no
- Demographics last, not first: yes / no
2. Root cause researched, simplified, saved: yes / no
- Real cause identified, not vague: yes / no
- Clear analogy or metaphor included: yes / no
3. Solution mechanism researched and saved: yes / no
- Matches the mechanism from intake (not invented): yes / no
4. Voice of customer mined and saved: yes / no
- Deep dive done: yes / no
- Raw quotes extracted and categorized: yes / no
- All quotes real, none invented: yes / no
5. Competitor research done and saved: yes / no
- Their angle, strong points, weak points captured: yes / no
6. ONE winning avatar and angle picked: yes / no
- Chosen by highest valence + intensity: yes / no
- Can state it in one sentence: yes / no
RESEARCH COMPLETE (all yes)?: yes / no
The one-sentence winner statement (fill this in, it's what Module 03 starts from):
We are building this store for [avatar], who desperately wants [the single
highest valence + intensity desire], held back by [root cause], which we fix
with [mechanism]. Our angle beats [competitor] because [the gap they left open].
If you can't fill that sentence cleanly, your research isn't done yet.
Worked example
Open funnels/products/kairova-fitpro-research.md in the vault. That's a real, finished research pass for the Kairova FitPro EMS ab stimulator, and it's exactly the standard you're aiming at.
Read how it's built. It opens by stating the method, desire-first per Evolve, and it's honest that the data leads, not assumptions. It sets the market's awareness level and sophistication before anything else. Then it builds the master avatar in Core 5 order, Desires first, with the loudest real desire pulled straight from the data, followed by Experiences, Emotions, Behaviors.
Notice the quotes. They're real, messy, specific Reddit posts with the subreddit named next to them, "I would like to have abs just one time in my life," not clean invented lines. That's what real VOC looks like. That's the bar.
For a second example on a different product, open the Lume folder at funnels/products/lume-eyephalt/research/. Look at root-cause.md, avatar-research.md, and market-research.md sitting as separate files. That's how your research documents should be split and saved in the product folder.
Study both before you run your own pass, so you know what "done right" feels like in your hands before you have to produce it.
You just finished Module 02
That's the hardest thinking in the whole build, done.
You just directed Alexander through the full research pass and, more importantly, you judged it, you refused the generic, you killed the invented quotes, and you committed to one avatar and one burning desire instead of hedging. That single decision is what every line of copy will now stand on.
This is the module that separates operators who build stores that convert from ones who build pretty pages that flop. The research is the edge. You did it right.
Next up is Module 03, Advertorial & Funnel Copy, where all of this turns into the actual words on the sales page. You've got the avatar, the root cause, the mechanism, the real language, and the angle. Now we write. Take a breath, then go.
Module 03, Advertorial & Funnel Copy
After this module you can direct Alexander to write the full sales page for your product, the advertorial (and the quiz that sits after it), section by section, get every section approved by me in chat, and then have Alexander assemble the approved words into a finished page, ready for images in the next module.
Before we start
This is the module where the store gets its voice. Everything before this was setup and homework. This is where we actually write the thing that makes a stranger pull out their wallet.
I want to be honest with you up front. This is the hardest module, and it's the longest. Copy is the single biggest lever on whether a store wins or dies. A great product with weak copy loses. A good product with a knife-sharp sales page prints money.
So I'm not going to rush you through it. We're going to go slow, one piece at a time, and I'm going to be picky. When I redline your copy, that's not me being difficult, that's the standard. Weak copy is the most expensive mistake we make, so we kill it before it ever gets built into a page.
Here's the one habit that matters most in this whole module, so I'll say it now and I'll say it again later. We approve all the words first, in plain chat, before Alexander builds a single line of the actual page. Words are cheap to change. A built page is slow to change. So we get the words right while they're still just words.
Where this sits
In Module 02 you directed Alexander to do the research: who this product is for, the exact words they use, the real root cause of their problem, and why everything they've tried has failed. That research is now sitting in files. This module turns that research into the sales page.
What this module produces is two things. First, the advertorial, which is our main long-form sales page dressed up to read like a real article, not an ad. Second, the quiz, a short set of questions that sits between the advertorial and the checkout to push more people to prepay. Both come out of this module as approved copy, then as built HTML pages with the images still missing.
What happens next is Module 04, Creative & Images, where we fill in every picture the page needs. So your finish line here is a fully written, fully built page with image gaps in it, not a live page. Going live comes later, and I'm the one who does it.
What you need before you start
You cannot write good copy from a blank page. You write it from the research. So before you touch this module, you need all of Module 02's output in hand.
- The market research file (
research/market-research.md). This tells you the awareness level and sophistication stage, which I'll explain in the steps. In plain words, it tells you how much the buyer already knows and how sick they are of hearing the same claims. - The avatar research file (
research/avatar-research.md). This is the deep profile of who buys, plus the real quotes they use. Those quotes are gold. We write in their exact words, not ours. - The root cause file (
research/root-cause.md). This is the "new villain," the real hidden reason their problem exists, and the mechanism (the simple reason our product fixes it) that no competitor is naming. - The chosen avatar brief (
<avatar>-brief.md). This is the one avatar and the one desire we decided to build the whole page around, plus the locked angle and hook direction. - Your Intake Form from Module 01. Specifically the price, the target AOV, the mechanism, and the winning competitor page I told you to model on. If you don't have the winning page I referenced, come get it from me now. It's your single best reference for what already works in this market.
If any of those research files are missing or thin, stop. Go back and finish Module 02 first. Writing copy on top of weak research is like building on sand, it looks fine until it falls over.
Execute or prepare?
This module is split, so read this carefully because it decides where you stop and I take over.
The copy is execute. You and Alexander write the full advertorial and quiz, section by section. I approve the words in chat as we go. That's the whole job of this module and you drive it end to end.
The page build is also execute, but it's the last thing you do, and only after every word is approved. Alexander assembles the approved copy into the house HTML page. Still no live action, it's just a file.
Deploy is prepare only. You do not push the page live. When the copy is approved and the page is built with its image gaps, that's where you stop. The live pages sit on my systems, and I'm the one who puts them up. So think of your finish line as "approved copy, built page, image gaps marked, handed to me." Not "it's live."
No real money gets spent anywhere in this module. I'll cover that properly in the money-gate section, but relax, nothing here touches the ad budget.
The step, start to finish
The order here is not a suggestion. I've had operators try to shortcut it and it always costs more time than it saves. Follow it exactly.
The whole shape of it is: pick the format, load Alexander's head with the research and the craft, lock the headline, write the body one section at a time with me approving each one, write the quiz the same way, and only then build the page. Let's go through each.
Step 1, Decide the format, advertorial or PSL
Two page formats exist and you need to know which one you're building before you write a word.
An advertorial is a long article that reads like real editorial journalism. It has an "Advertorial" disclosure bar at the top, an author byline, a "5 min read" label, and the product doesn't even show up until about halfway down. It sells by telling a story and shifting what the reader believes. It's copy-heavy.
A PSL (that stands for Pre-Sell Landing page) uses the exact same persuasion underneath, the same villain, the same mechanism, the same proof, but laid out like a clean product landing page. The product shows in the hero at the top, there are lots of buy buttons, and it's built from visual blocks instead of long prose. It's image-heavy and faster to build.
My default is build a PSL first. PSLs are cheaper and faster to produce, they're easy to spin into multiple angle variants for testing, and right now they perform at least as well as advertorials. So unless I told you otherwise at handoff, lean PSL.
Build a full advertorial only when there's a specific reason it'll win, which is very cold, very unaware traffic that needs the long story to build belief before it'll buy. I'll usually tell you which one at intake, in the "what to model it on" field. If I didn't say, ask me. Don't guess.
Here's the key thing that makes this module simple. The thinking and the copy pieces are identical for both. The 7-stage engine you're about to learn is the brain of both formats. The only difference is the container you pour it into at the end. So we write the copy the same way regardless, and the format only changes Step 8, the build.
🎥 Screen recordme opening a real advertorial and a real PSL side by side on my screen, scrolling both, pointing out the disclosure bar and late product reveal on the advertorial versus the product-in-hero and repeated buy buttons on the PSL, so you can see the difference with your own eyes.
Step 2, Load Alexander with the research and the craft
Before Alexander writes anything, it needs two things in its head: the research (who we're selling to) and the craft references (how we write). If you skip this, Alexander writes generic copy from thin air, and generic copy gets rejected.
Open one new task in the console for the copy. Keep the whole copy job in this one thread. When you later move to building the page, that can be a fresh thread, but all the writing stays together here so Alexander keeps the full context.
In this first message, you hand Alexander the four research inputs and point it at the craft files. The exact prompt is in the "How to direct Alexander" section below (it's the first one, "Load the build"). You're basically saying: here's who we're selling to, here's the winning page to model on, and here are the frameworks I want you to actually read before writing.
The craft files you point it at are these, and it's worth you knowing what each one is:
funnels/references/zakaria-7stage.md, the 7-stage engine that structures the whole page.funnels/references/course/03-advertorial-mastery.md, the deep teaching on each of the 7 stages.funnels/references/course/05-elite-copywriting.md, the sentence-level craft (specificity, open loops, rhythm, sensory).funnels/references/prompts/05-copywriting-prompts.md, the exact craft prompts you'll paste.funnels/references/patterns.md, the bank of proven moves lifted from our winning pages.
The one rule I want burned in: Alexander must actually read those files before writing. Writing from memory produces smooth, generic, forgettable copy. I've rejected whole drafts for exactly this. So the load prompt tells it to read first, and your first QA is to check the copy actually smells like it used the research, not like it was written blind.
Step 3, Run the Buyer Psychology Analyzer
Before a single line of the page, we build what I call the psychological blueprint. This is one big prompt (it's Prompt 1 below, the "Buyer Psychology Analyzer") that makes Alexander analyze the buyer's emotions cold.
What it produces is a map: which emotion to lead with, whether the buyer is running away from pain or toward a desire, how urgent to make the copy, and which of their fears and doubts we have to dissolve to get the sale. Everything you write afterward gets checked against this blueprint.
You run it once. You paste in the avatar research and a two to three sentence description of the product. Alexander fills in the whole analysis. You save that output in the thread, because you'll refer back to it constantly.
Why this matters: it stops us guessing. Instead of "let's write something emotional," we get "lead with relief, this buyer is in acute pain, her top two doubts are skepticism then fear, and the word 'journey' will make her bounce." That's the difference between copy that guesses and copy that aims.
Step 4, Lock the headline and hook first, before any body copy
The headline is the most important line on the entire page. Five times as many people read the headline as read the body. If it doesn't stop them, nothing else you write matters.
Our headline format is specific and it's proven. It's authority-led, with a specific study or credential, an intriguing question, and a counterintuitive twist. The one I always show as the gold standard is this: "A behavioral scientist spent 10 years studying who a room notices first, and it isn't the best-looking man or the most confident one."
Look at why that works. "A behavioral scientist" is the authority. "Spent 10 years studying" is the specific credential that makes it feel like a real article, not an ad. "Who a room notices first" is the intriguing question. "And it isn't the best-looking man" is the counterintuitive twist that yanks you in. That's the shape.
So you direct Alexander to write not one headline but a batch, maybe ten to fifteen, all in that authority-plus-study-plus-twist shape, pulling the specific pain and the exact words from the avatar research. Then you and I pick. Do not settle for the first one. The good one usually shows up after the obvious ones are out of the way.
Two guardrails on the hook. First, the authority has to fit the scale of the promise. A hostage negotiator studying people who cut queues is a mismatch and reads fake. Match the expert to the outcome. Second, do not force every hook into one rigid template. Some land best as "spent X years studying Y, and it wasn't the obvious cause," others as "just explained why Z happens, and it isn't what you think." Give me variants and let my ear pick.
Present the headline options to me in chat and get one locked before you write anything else. The whole page hangs off the headline, so we nail it first.
Step 5, Write the 7 stages, one section at a time, approved as you go
Now the body. Our sales pages are built on a 7-stage engine. Each stage has one job and hands to the next. You direct Alexander to write them in order, and here is the rule that governs everything: you present ONE section at a time in chat, as plain text, and you wait for my approval before moving to the next.
Not the whole page at once. Not three sections at once. One. I read it, I approve it or I redline it, and only then do we move on. If I say "redo this," I mean redo the current section, not the whole page. This keeps iterations fast, because we're fixing text, not rebuilding a page.
Here are the seven stages and the one job of each, so you know what "done right" looks like for each one.
-
Headline. Already locked in Step 4. Hooks the exact avatar with a specific, curiosity-opening claim. Not a pitch.
-
Background Story. A relatable opening that mirrors the reader's real life, in second person ("you"). This is the emotional engine. It opens on a filmable scene (the bathroom mirror, the laptop camera on a video call), it surfaces the feelings they haven't said out loud, and it walks through everything they've already tried and failed. Its job is resonance, so the reader thinks "this is me."
-
Root Cause. Reframe the problem with a new villain the reader hasn't been numbed to. This is the highest-leverage move on the page. It takes the blame off the reader ("it was never your fault, it was this hidden thing") and points it at something external: a broken system, a bad piece of advice everyone believes, or a hidden mechanism. Then, right here, you future-pace the negative, what happens if they don't fix it, before you reveal the fix.
-
Unique Mechanism. A clean, simple mental model, usually a metaphor, for how our product fixes that root cause. Think "the road is broken so we rebuild the road," or "the signal was cut so we send it from outside." It has to click instantly, so a half-asleep person on their phone gets it. It answers the skeptic's "why hasn't anything worked before."
-
Product Build-Up. This builds trust and value before you reveal the product. It's the "I tried four things, each failed for a reason, so I found the checklist of what a real solution needs" move. It makes the product feel like it had to exist, like it took real effort and money to get right. This is the weakest stage on most pages, which means it's where the biggest gains hide, so make Alexander work here.
-
Product Reveal. Only now does the product appear, after the category is already sold. By this point the reader isn't deciding "do I want this," they're deciding "is this the one." So the reveal is a confirmation, not a pitch. It names the product, connects it straight back to the mechanism, and makes it feel inevitable.
-
Close. This turns belief into a purchase. It's a stack: raw testimonials, future-pacing the good outcome, justifying the price before you show it, a price-anchor cascade (clinic costs, competitor costs, then our small price), the offer with COD and a 30-day return, a "who this is not for" disqualifier, urgency that's real not fake, the CTA, and an FAQ that kills the last doubts.
As you write each stage, you layer in the sentence-level craft using the specific prompts below (open loops to keep them reading, bucket brigades to pull them forward, sensory language so they feel it, the disqualifier to build trust). I'll show you exactly which prompt does which in the next section.
And you thread the 13 knife-twist devices through the copy. These are the specific moves lifted from our winning pages, the ones that make copy cut instead of drift:
- Absolution reversal, "the problem was never you," which validates their shame and moves the blame off them.
- Named failure objects with abandonment timelines, "the eye cream sitting half-used in your drawer for eight months."
- Rhetorical amputation, a full sentence then a clipped verdict fragment, "Still there in every photo."
- "Why nothing worked" repeated as a closing beat.
- Interrogative pain headers, "Why You Still Look Tired After Eight Hours' Sleep."
- Concrete numeric contrast that shames the old effort, "100 crunches versus 20,000 contractions."
- Third-party discovery testimonials, someone else notices before she does (the husband, the colleague).
- "I did nothing else" proof stacking (same diet, skipped the gym, still worked).
- The converted-skeptic arc, "I ordered it planning to return it."
- Time-relocation reframe, "the ten minutes you already waste on concealer every morning."
- Tonal calibration, the same product written gentle for women, clinical for men.
- Structural consistency, one reusable section skeleton.
- Disarming honesty, a "what this won't do" section that buys credibility right before the CTA.
You don't cram all thirteen into every section. You reach into that bank when a section needs a sharper edge. Knowing they exist is half the job.
🎥 Screen recordme directing Alexander to write the Background Story section for a real product, then me redlining it live, calling out an AI tell, and asking for the fix, so you see the approve-or-redline loop happen once end to end.
Step 6, Write the quiz, the prepay booster
After the advertorial copy is fully approved, you write the quiz. The quiz is a short set of questions that sits between the advertorial and the checkout. Its only job is to make the buyer feel the product was matched to their exact situation, so prepaying feels like locking in something custom instead of a risky upfront payment.
This matters a lot in India, because everyone else offers cash on delivery (COD, where the customer pays the delivery person, not upfront). The quiz is how we get more people to prepay instead, and prepay orders never bounce back to us undelivered. Same product for everyone, the personalization is cosmetic. But it works because a person doesn't COD something an expert just told them was right for their body.
The quiz has three parts, and you write each the same careful way, section by section, approved in chat:
- 8 to 10 questions, in the order Desires, then Experiences, then Emotions, then Behaviors, with any demographic question last. The answer options use the buyer's exact words from the research. Every path leads to the same product. The questions make them re-feel the pain, admit how long they've suffered, list what they've tried and failed, and say how it makes them feel, all in their own words.
- A loading screen that runs a few seconds after the last question, showing steps like "Reading your responses," "Identifying your profile type," "Preparing your personalized results." This isn't decoration. The pause builds anticipation and makes the result feel computed, like a diagnosis, not a product listing.
- A results page built in seven sections: mirror their answers back to them, reveal their "type" (a named identity, cosmetic, everyone gets one), lay out their "protocol" (the same product framed as a step-by-step plan), prove why it matches them, add the lock-in and scarcity framing, justify prepay directly and honestly, and close with a transformation timeline that starts today, not on delivery. The buttons say "Lock In My Recommendation" or "Claim My Result," never "Buy Now."
You also change the advertorial's final CTA so it feeds the quiz instead of going straight to checkout. Instead of "Buy Now" it becomes something like "Take the 60-Second Assessment" or "Find Out Your Type," with a short bridge line in the close that plants the idea that the right approach depends on their specific type.
The full playbook is funnels/references/quiz-funnel-playbook.md. Point Alexander at it. The prompt for building the quiz is in the next section.
One reminder from a house rule of mine: never call the product a "protocol" in a way that hides what it is. The customer must always know they're buying, say, an eye cream, not signing up for some abstract multi-step system. Inside the quiz results the word "protocol" is fine as framing for the plan, but the CTA and the product name always make the actual product clear.
Step 7, Do the de-AI voice pass on everything
Before anything gets built, you run a cleanup pass over all the approved copy to strip out the tells that make writing sound like a machine wrote it. I care about this a lot, because "AI asf" copy is the single most common reason I reject drafts.
You direct Alexander to hunt and kill these specific tells (the prompt is below):
- Triplets and three-part parallel structure. "No routine, no bottles, no chemist." "The shadows, the puffiness, the hollows." Real speech doesn't march in threes. Break the pattern, collapse it to one or two flowing clauses.
- Clever button endings on every line. "That's the part that stings." "And you know it." Real people don't resolve every thought with a mic-drop. Cut most of them.
- Poetic flourishes. "The mirror adds years she hasn't lived." Too writerly. Cut it.
- Balanced antithesis. "Adds five years to you and none to her." Too composed to be real.
- Uniform testimonials. If every review is the same length with the same neat arc and a tidy ending, they read fake. Vary length wildly, let them ramble, let them hedge ("aren't fully gone but they're properly smaller"), let one open mid-thought, use plain regional register.
- Marketer words. "Structural breakdown" in a customer's mouth is wrong. Use the plain word they'd actually say.
The test for every line is simple: read it out loud. If it sounds like something a real person would say to a friend, keep it. If it sounds quotable, balanced, or clever, cut it. And check the camera test, could a camera actually film what you wrote? "The worn look fills back in" fails. "She stopped angling her face away from the group photo" passes.
Step 8, Build the page, all copy first then all HTML
This is the step where words become a page, and the order is locked. All copy first. Then all HTML. You do not let Alexander start building the page while copy is still being written and approved. Every section, advertorial and quiz, has to be signed off first.
Why so strict? Because editing text in chat is fast and editing a built page is slow. If we build as we go, every change means rebuilding, and we waste hours. So the rule is absolute: the page doesn't get built until the last word is approved.
Once everything's approved, you direct Alexander to assemble it into the house page (the prompt is below). The page has to obey our hard build rules:
- One single self-contained HTML file, with the styles inside it, and swappable image placeholders (marked like
[ IMAGE: description ]) everywhere a picture goes. Those placeholders are the gaps Module 04 fills. - Mobile-first. Most of our traffic is on a phone. Fluid text sizes, comfortable line spacing, a sticky buy button at the bottom on mobile, content column no wider than about 680px.
- No big text blocks. Paragraphs of three to four lines max. Short, punchy lines.
- A visual every 150 to 200 words, hard cap 250. Every stretch of copy gets a picture, a diagram, a comparison, or a review screenshot to break it up. When Alexander assembles, it marks an image placeholder at each of these beats.
- The house furniture: the "Advertorial" disclosure bar at top, a star rating line, an "As Seen In" logo row, the author byline with name and date and read-time, section headers, the product reveal around the halfway scroll, the price-anchor cascade before the price, and the FAQ near the CTA.
When it's built, you check the file yourself. The right result is a complete page, reads top to bottom, every approved section in the right place, image placeholders marked at every visual beat, and nothing live. Then you stop. Images are Module 04, and deploy is mine.
🎥 Screen recordme taking a folder of approved copy and directing Alexander to assemble the advertorial HTML, then scrolling the built file to show the disclosure bar, the byline, the section flow, and the image placeholders sitting where the pictures will go.
How to direct Alexander
This is the toolkit. These are the exact prompts you paste into the console, in roughly this order. Fill in the bracketed parts before you send. I've pulled the craft prompts word for word from our reference file so you're using the proven versions, not something improvised.
Prompt, Load the build
Send this first, in a fresh copy thread. It puts the research and the craft in Alexander's head before it writes.
We're writing the sales page copy for [PRODUCT NAME], an [one-line product description]. I'm the operator directing you. You write, I approve section by section in chat before anything gets built.
Before you write a single word, READ these files fully:
- research/market-research.md
- research/avatar-research.md
- research/root-cause.md
- [chosen avatar]-brief.md
- funnels/references/zakaria-7stage.md
- funnels/references/course/03-advertorial-mastery.md
- funnels/references/course/05-elite-copywriting.md
- funnels/references/patterns.md
- the winning competitor page I'm modelling on: [path or link]
Then confirm back to me, in 5 bullets: the chosen avatar, their awareness level, the market sophistication stage, the new villain / root cause, and the unique mechanism. Do NOT start writing copy yet. Wait for my go.
Good output is five tight bullets that clearly came from the files, not from thin air. If the bullets are vague or generic, the research didn't get read, so make it read again.
Prompt 1, Buyer Psychology Analyzer
Run this once to build the blueprint. Paste your avatar file where it says, and describe the product in the second slot.
You are an expert in buyer psychology and emotional persuasion. I need you to create a complete psychological profile for my copy based on my avatar data.
Here's everything I know about my target customer:
[PASTE YOUR AVATAR DEEP DIVE FILE HERE]
Here's my product:
[DESCRIBE YOUR PRODUCT IN 2-3 SENTENCES]
Now analyze their psychology across these 6 dimensions:
ANALYSIS 1: THE 6 CORE BUYING EMOTIONS
Rate each emotion (1-10) for how dominant it is for THIS avatar: RELIEF, NURTURANCE, BELONGING, IDENTITY, SECURITY, STATUS. For each: score, why this score, how to trigger it in copy, an example line. Then name the PRIMARY emotion to lead with, the SECONDARY to layer in, and the one to AVOID.
ANALYSIS 2: PAIN VS DESIRE. Score PAIN (running away) and DESIRE (running toward) out of 10. Name the dominant mode and the recommended approach (lead with pain then pivot, lead with desire, or pure pain).
ANALYSIS 3: BUYER VS USER. Is the buyer the same person as the user? If not, profile both and say how to write for both.
ANALYSIS 4: EMOTIONAL INTENSITY. Is this Acute, Chronic, or Aspirational? If Chronic, how do we re-activate urgency? Recommend the copy tone.
ANALYSIS 5: THE EMOTIONAL JOURNEY. Map the 5 stages: Interrupt, Engage, Agitate, Believe, Decide, with an example line for each.
ANALYSIS 6: PURCHASE HESITATION EMOTIONS. Rate FEAR, GUILT, SHAME, SKEPTICISM out of 10, with how to dissolve each. Name the top 2 to address and the one to ignore.
FINAL BLUEPRINT: a one-sentence psychology summary, then the copy formula (OPEN WITH / BUILD WITH / HANDLE / CLOSE WITH, each with why), plus tone, intensity (1-10), urgency, 10 words that resonate, and 5 words to avoid.
Save the output. You'll check every later section against it. The full version with worked examples is in funnels/references/prompts/05-copywriting-prompts.md if you want to see what a finished blueprint looks like.
Prompt 2, Voice Extraction
Run this so the copy sounds like it came from the buyer's mouth, not ours.
Analyze these raw quotes from my target customer and tell me:
1. VOCABULARY: What specific words and phrases do they use repeatedly? List 20-30 examples.
2. SENTENCE STRUCTURE: Do they use short punchy sentences or longer flowing ones? Give examples.
3. FORMALITY LEVEL: On a scale of 1-10 (1=very casual, 10=very formal), where do they fall? Why?
4. EMOTIONAL TONE: What's their dominant emotional state? (frustrated, hopeful, desperate, skeptical, etc.)
5. PHRASES TO USE: Based on this analysis, give me 10 phrases I should use in my copy that would sound natural to this audience.
6. PHRASES TO AVOID: Give me 10 phrases that would sound wrong or off-putting to this audience.
7. SAMPLE PARAGRAPH: Write a 5-sentence paragraph about their problem in THEIR voice.
Here's the raw data:
[PASTE YOUR AVATAR DEEP DIVE FILE HERE]
Good output gives you a vocabulary list you'll recognize straight from the research quotes. Keep it open while you write, and hold every line against it.
Prompt, Headline batch
There's no canned prompt for headlines, so here's the one to paste. It bakes in our proven shape.
Write me 15 headline options for the [PRODUCT] advertorial, for [avatar], who is at awareness level ☑.
Every headline must follow our proven shape: authority-led, with a SPECIFIC study or credential, an intriguing question, and a counterintuitive twist. The gold-standard example: "A behavioral scientist spent 10 years studying who a room notices first, and it isn't the best-looking man or the most confident one."
Rules:
- Pull the exact pain and exact words from the avatar research.
- The authority must fit the scale of the promise (no mismatched experts).
- Do NOT force all 15 into one template. Vary the shape: some "spent X years studying Y, and it wasn't Z", some "just explained why Y happens, and it isn't Z".
- Second person or reported-fact voice. Never a pitch. Never generic.
Give me all 15 as a plain list. I'll pick.
You then bring me the strongest three or four. We lock one together before any body copy.
Prompt, Write one stage
Use this to write each of the 7 stages, one at a time. Change the stage name each time.
Write ONLY the [STAGE NAME, e.g. Background Story] section now, nothing else.
Use the 7-stage engine (zakaria-7stage.md) and the advertorial-mastery teaching for this stage. Ground every line in the avatar research and the Voice Extraction list. Follow the psychological blueprint (lead emotion, intensity, words to use, words to avoid).
Hard rules:
- Second person ("you"). No fictional narrator character.
- Open on a filmable scene, do not restate the headline.
- Short paragraphs, 1-3 sentences. Small chunks.
- No em dashes, no en dashes. Commas only.
- No triplets, no clever mic-drop line endings, no poetic flourishes.
- Where it fits, use a knife-twist device from copywriting-build-inputs (absolution reversal, named failure object, third-party-notices testimonial, etc).
Give it to me as plain text in chat. I'll approve or redline before we do the next section.
Present it to me. I approve or I redline. "Redo this" means redo this section only.
Prompt 3, Open Loops
Layer this into the story and body sections to keep people reading.
I'm going to give you raw quotes and research about my target customer avatar. Based on this data, I need you to create powerful open loops for my copy.
First, identify their biggest FRUSTRATIONS, deepest FEARS, secret DESIRES, wrong BELIEFS, and ENEMIES (who/what they blame).
Then generate 10 open loops in each of these categories:
1. "WHAT THEY DON'T WANT YOU TO KNOW" LOOPS. Format: "[Authority/Industry] knows this but won't tell you..."
2. "STORY INTERRUPT" LOOPS. Start an emotional story from the avatar's perspective, cut it off at peak tension with "I'll tell you what happened in a minute, but first..."
3. "COUNTERINTUITIVE REVEAL" LOOPS. Format: "Everything you've been told about ☑ is wrong. Here's why..."
4. "NUMBERS THAT DON'T ADD UP" LOOPS. Present conflicting data that makes them ask "why?"
5. "BEFORE I TELL YOU" LOOPS. Format: "I'm going to tell you exactly [specific thing]. But first you need to understand..."
For each loop: use their EXACT language, trigger a specific emotion, make it impossible to ignore, and have a payoff you can actually deliver.
Here's my avatar data:
[PASTE YOUR AVATAR DEEP DIVE FILE HERE]
Prompt 4, Bucket Brigades
These are the short bridge phrases that pull the reader from one line to the next.
I need bucket brigades (short transitional phrases that keep readers moving forward) for my copy. These need to match my target avatar's voice and emotional state.
First, here's my avatar data:
[PASTE YOUR AVATAR DEEP DIVE FILE HERE]
Based on their voice, age, emotional state, and how they talk, generate bucket brigades in these categories, 10 each:
1. CONTINUATION BRIDGES ("But here's the thing...")
2. CONTRADICTION BRIDGES ("Here's the catch...")
3. REVELATION BRIDGES ("Here's the truth...")
4. EMPATHY BRIDGES ("Sound familiar?")
5. QUESTION BRIDGES ("So what does this mean for you?")
6. URGENCY BRIDGES ("Here's what you need to decide...")
7. STORY BRIDGES ("Picture this...")
Match their vocabulary and tone (casual vs formal, young vs mature). Keep them SHORT, 2-6 words max.
Prompt 5, Sensory Language
Use this so the reader feels the before and after, instead of just reading about it.
I need sensory language for my copy, vivid descriptions that make readers FEEL the experience, not just understand it. Based on my target avatar's real life.
Here's my avatar data:
[PASTE YOUR AVATAR DEEP DIVE FILE HERE]
PART 1: THE PAIN (Before State). For each moment write 2-3 sentences of pure sensory description, no selling: THE MORNING MOMENT, THE MIRROR MOMENT, THE PUBLIC MOMENT, THE BREAKING POINT MOMENT, THE ALONE MOMENT. Use at least 3 senses, their exact language, make it visceral.
PART 2: THE TRANSFORMATION (After State). Mirror the same moments after the problem is solved. Make the contrast stark, keep it believable.
PART 3: 20 sensory phrases I can drop into the copy. Short, punchy, vivid. Format like "That sharp stab when you first stand up" or "the cold bathroom floor under your feet at 3am".
The camera test governs the output: if a camera couldn't film it, it isn't sensory enough yet.
Prompt 6, Takeaway & Disqualification
This is the "who this is not for" section that buys trust right before the price. It's a knife-twist device on its own.
I need to write "takeaway" and "disqualification" copy that pushes away bad-fit customers while pulling in ideal ones. This builds trust and filters for people who will actually succeed with my product.
Here's my avatar data:
[PASTE YOUR AVATAR DEEP DIVE FILE HERE]
Here's what my product ACTUALLY delivers:
[DESCRIBE YOUR PRODUCT'S REAL RESULTS, TIMELINE, AND REQUIREMENTS]
PART 1: WHO THIS IS NOT FOR (5-7 honest disqualifiers). Cover: people who won't follow through, people expecting the wrong (too-fast) timeline, people with the wrong problem type, price-only shoppers, the too-skeptical, and anyone who needs a professional instead. Make each feel genuine, not reverse psychology.
PART 2: WHO THIS IS FOR (5-7 qualifiers). Requalify the ideal customer so they feel "that's ME."
PART 3: 10 short takeaway hook lines ("This isn't for everyone.", "Don't buy this if...").
PART 4: a full "Who This Is NOT For / Who This IS For" section I can drop straight into the page, with a transition line that invites qualified people to keep reading. Tone: honest, confident, slightly challenging.
Prompt, Build the quiz
Run this only after all the advertorial copy is approved.
Now build the quiz that sits between the approved advertorial and checkout. READ funnels/references/quiz-funnel-playbook.md first.
Write it in three parts, and give me each part as plain text for approval before moving on:
1. QUESTIONS: 8-10 questions in Evolve order (Desires, Experiences, Emotions, Behaviors, demographics last). Answer options in the avatar's exact words from the research. Every path leads to the same product. Include an optional readiness-gate question at the end.
2. LOADING SCREEN: 4 short progress steps that use diagnostic language and prime the results vocabulary.
3. RESULTS PAGE: the 7 sections, Mirror (their answers back), Type Reveal (a named type), Protocol (same product framed as a plan), Why This Matches You (specificity from their answers), Scarcity / Lock-In, Prepay Justification (honest), Transformation Timeline that starts today. CTA uses reservation language ("Lock In My Recommendation"), never "Buy Now".
Then give me the one-line change to the advertorial's final CTA so it feeds the quiz, plus the bridge line to add in the close.
Rules throughout: no em dashes, no AI tells, second person, small chunks, use the actual product name (no vague "protocol" that hides what it is).
Prompt, De-AI voice audit
Run this over the full approved copy as the last thing before building.
Audit this copy line by line and strip every AI tell. Find and fix:
- Triplets / three-part parallel structure. Collapse to one or two flowing clauses.
- Clever mic-drop line endings. Cut most of them.
- Poetic flourishes and balanced antithesis. Cut them.
- Uniform testimonials. Make them uneven: vary length wildly, let them ramble and hedge, open one mid-thought, use plain register, no neat closer.
- Marketer words. Replace with the plain word the avatar would actually say.
Test every line two ways: read it aloud (if it sounds quotable or composed, cut it), and the camera test (if a camera couldn't film it, make it concrete). No em dashes anywhere.
Here's the copy:
[PASTE THE APPROVED COPY]
Prompt, Assemble the page
The last prompt. Run it only when every word is approved.
All copy is approved. Assemble it into the finished page now. Obey funnels/build-rules.md exactly.
- One single self-contained HTML file, styles inline.
- Mobile-first: viewport meta, fluid type with clamp(), ~16-20px side padding, line-height ~1.85, max content width ~680px, sticky CTA on mobile.
- Paragraphs 3-4 lines max.
- A swappable image placeholder ([ IMAGE: description ]) at every visual beat, one every 150-200 words, hard cap 250.
- House furniture: "Advertorial" disclosure bar (sticky) at top, star rating line, "As Seen In" logo row, author byline with name/date/read-time, section headers, product reveal around 50% scroll, price-anchor cascade before the price, FAQ near the CTA.
- Do NOT generate or fetch any images. Placeholders only. Do NOT deploy.
Give me the file path when done.
What you decide & QA
You own the quality bar on this page. Alexander writes, but you're the editor, and nothing moves forward until it passes your read. Here are the exact pass and fail tests. If any one fails, it's a fail, send it back.
- Human voice, no AI tells. Pass: reads like a real person talking to a friend, uneven, plain, specific. Fail: any triplet, any clever mic-drop ending, any poetic flourish, any set of identical-sounding testimonials. If you spot even one triplet, it fails.
- Second person, no narrator. Pass: it speaks to "you" throughout, authority comes from the headline and the research. Fail: a made-up narrator character with a backstory, or a first-person "I" telling a plotted story.
- The hook is authority-led with a specific study and a twist. Pass: a named authority, a concrete credential ("spent 10 years studying"), an intriguing question, and a counterintuitive turn. Fail: generic, vague, first-person, or a pitch. Also fail if the authority doesn't fit the scale of the claim.
- Price is justified before it's revealed. Pass: by the time the number appears, the reader has seen the value stacked and the price-anchor cascade (clinic, competitor, then us), so the number feels small. Fail: the price shows up cold, before any justification.
- No em dashes or en dashes anywhere. Pass: commas, periods, or parentheses only. Fail: a single stray dash. Search the whole thing for it.
- Small chunks, visual every 150 to 200 words. Pass: no wall of text, an image placeholder at every beat. Fail: any paragraph running long, or a stretch of copy with no visual break.
- Every claim is specific. Pass: real numbers, timeframes, named people in testimonials. Fail: "many customers," "works fast," "amazing results."
- The quiz result feels custom and prepay is justified honestly. Pass: mirrors their answers, gives a type, frames a plan, and explains prepay without hiding it. Fail: generic result, or "Buy Now" buttons instead of reservation language.
The judgment you're really building here is an ear for fake. After a few pages you'll feel the AI tell before you can even name it. That instinct is the most valuable thing you take out of this module.
Money-gate points
None in this module spends money, but two lines matter.
Deploy is the gate here, and it's mine. Alexander builds the page, you QA it, and then it stops. You do not push the page live. Live pages sit on my systems and I deploy them, the same way ad spend is mine. So even though nothing here costs money, the "go live" action is not yours to take. Your finish line is an approved, built page with image gaps, handed to me.
Image generation is also not yours, and it's Module 04. Do not let Alexander generate a single image in this module, even the obvious ones. The page ships from here with placeholders only. The image key lives on my machine, so I run generation. If Alexander offers to "just make the hero image," tell it no and leave the placeholder.
The real ad-budget money-gate shows up in Module 06, when we launch. It doesn't apply here. I'm only naming it so you know the shape: anything that spends or goes public comes to me first, always.
Common mistakes & fixes
- Building the page before the copy is approved. The most expensive mistake in this whole module. You end up rebuilding the page every time I change a line. Fix: all copy approved in plain chat first, then one build. No exceptions.
- Dumping the whole page at once for approval. I can't give useful feedback on a wall of ten sections, and you waste a full rewrite when I redline the top. Fix: one section at a time, wait for approval, then the next.
- Alexander writing from memory instead of the files. Produces smooth, generic copy that I reject. Fix: the "Load the build" prompt makes it read first, and you check the copy actually uses the research quotes.
- AI tells slipping through copy you already approved. Triplets and clever endings hide even in "good" drafts. Fix: run the de-AI audit prompt over everything as a separate final pass, and read it aloud yourself.
- A hook that's clever but not specific. A vague or first-person headline kills the page. Fix: force the authority-plus-specific-study-plus-twist shape, and reject anything that reads like an ad.
- Revealing the price before justifying it. The number lands cold and feels expensive. Fix: value stack and price-anchor cascade come first, always, then the number.
- Letting Alexander generate images to "save a step." That's Module 04 and it's on my machine. Fix: placeholders only, hands off images here.
- Calling the product a "protocol" in the CTA. Confuses the buyer about what they're actually getting. Fix: use the real product name in every CTA, so they always know it's an eye cream, a device, whatever it is.
- Forgetting to point the advertorial CTA at the quiz. You build a great quiz that nobody reaches. Fix: change the advertorial's final CTA to feed the quiz, and add the type-bridge line in the close.
Templates & checklists
The copy build checklist (work top to bottom, don't skip):
COPY BUILD, <product name>
Format decided (PSL default / advertorial): ____
Research files read by Alexander (confirmed in 5 bullets): yes / no
Buyer Psychology blueprint run & saved: yes / no
Voice Extraction run & kept open: yes / no
Headline locked with Sovansh: yes / no
7 stages, each approved in chat (one at a time):
□ 1. Headline
□ 2. Background Story
□ 3. Root Cause (new villain + negative future-pace)
□ 4. Unique Mechanism
□ 5. Product Build-Up
□ 6. Product Reveal
□ 7. Close (testimonials, future-pace, price justify, anchor cascade, offer, disqualifier, FAQ, CTA)
Quiz, each part approved in chat:
□ Questions (8-10, Evolve order, avatar's words, all paths = same product)
□ Loading screen (diagnostic steps)
□ Results page (7 sections, reservation-language CTA)
□ Advertorial CTA changed to feed the quiz + bridge line added
De-AI voice audit run over everything: yes / no
Page assembled (all copy first, then HTML): yes / no
Build rules met (single file, mobile-first, image placeholders every 150-200 words, house furniture): yes / no
Images: placeholders only, none generated: yes / no
Handed to Sovansh for deploy (NOT live): yes / no
The QA pass/fail card (run it before you hand anything to me):
□ Human voice, zero AI tells (no triplets, no mic-drop endings, no flourishes, uneven testimonials)
□ Second person throughout, no fictional narrator
□ Hook: authority + specific study/credential + question + counterintuitive twist, authority fits the scale
□ Price justified before revealed (value stack + anchor cascade first)
□ Zero em dashes / en dashes (searched the whole file)
□ Small chunks, visual every 150-200 words
□ Every claim specific (real numbers, timeframes, named testimonials)
□ Quiz result feels custom, prepay justified honestly, reservation-language CTA
Worked example
Open the real thing. It's our Glyka under-eye product, in funnels/products/drmelaxin-calcium/.
Read chosen-avatar-brief.md first. You'll see the avatar is "Meera," a 30 to 40 year old Indian woman stuck in the concealer routine, and the locked angle is a belief shift: she thinks it's dark circles, but the real cause is her under-eye structure collapsing. Notice how the brief already carries her exact words ("no matter how much I sleep, I look tired," "the camera on video calls is my enemy"). That's the voice you write in.
Then open advertorial.html and read it top to bottom against the 7 stages. The title itself is the model of our craft: "Your Concealer Covers the Colour. But It Can't Fill What's Collapsing Underneath." See how it opens on the mirror scene (Background Story), reframes dark circles as a structural collapse Korean dermatologists identified (Root Cause, new villain), explains the calcium-bonding fix as a simple mechanism, builds up before revealing the product past the halfway mark, and closes with the price-anchor cascade against real competitors. That's the whole engine in one page.
Then open quiz.html and see how it feeds off the advertorial: the questions, the type reveal, the results page framed as a personalized plan, the reservation-language buttons. Look at the research/ folder too (market, avatar, root-cause), so you see the raw material every line was built from.
Study this one before you build your own. When your page reads like this one, in your product's voice, you've hit the bar.
You just finished Module 03
That's the big one done. If you got a clean, human, section-by-section approved page out of this, you've learned the hardest skill in the whole job. Most people never learn to write copy that actually sells, and you just directed a full sales page and a quiz to my standard.
Take the win. This is the module I care about most, and it's the one where I'll trust you more the more you nail it. Copy that cuts is the reason our stores run for years while other people's die in weeks. You just built the thing that does that.
Next up is Module 04, Creative & Images, where we fill every one of those image placeholders you left in the page. You brief the shots to standard, and I run the generation. Grab a break, then go.
Module 04, Creative & Images
After this module you can direct Alexander to inventory what images we already have, write a complete, spec-perfect brief for every image the funnel needs, hand that brief to me to generate, QA what comes back, and prepare UGC ad scripts, all to the standard our winning funnels are built on.
Read this first, the one big thing about this module
This module is different from the ones before it, so I want to be blunt about it right at the top.
You do not generate any images yourself. Not one.
Image generation runs on my machine only. The tool we use costs real money per image, and the key that unlocks it stays off the operator system on purpose. So you never have it, and you never will while things are being built out.
What you do own is everything up to the generate button. You direct Alexander to work out which images we can reuse, write the exact brief for every image we still need, and QA the brief so it's perfect. Then you hand that brief to me, I generate, and I send the results back for you to check.
So think of this module as "prepare the images," not "make the images." You are the one who decides what every image must show and then judges whether what came back is good enough. I'm just the pair of hands that presses generate. Keep that split in your head the whole way through, because it changes how every step below works.
The ad scripts (the UGC videos) are different. Those are just writing, so you prepare those fully, start to finish. I'll be clear each time which is which.
Where this sits
Before this, in Modules 02 and 03, you built the avatar research and wrote the full advertorial and quiz copy. So by now you know exactly who the customer is, what the product does, and what the page says.
This module turns that copy into pictures. Every section of the advertorial, the quiz, and the store page needs images, and this is where you spec them all and get them made.
What comes next, in Module 05, is building the actual store and product page. That build needs these images ready to drop in, so this module has to be finished and QA'd before you start Module 05.
What you need before you start
You need all of this in hand before you open a task. If any of it is missing, go get it first, don't start half-ready.
- The finished advertorial and quiz copy from Module 03. The images are built to match the copy, so the copy has to be locked first. If a headline says "she's your age but looks ten years older," you need a picture that shows exactly that. No copy, no brief.
- The avatar research from Module 02. You need to know the customer's age, gender, class, and setting, because every person in every image has to look like the actual buyer. Get this wrong and every image is wrong.
- The product intake from Module 01. Specifically the real product, because any image with the product in it has to use a real photo of our actual product, never an invented one.
- The reference specs, open in a tab. Two files live in my memory and they are the law for this whole module. One is the image spec (what each type of image must look like), the other is the process (how we make and check them). Alexander can read both. You don't need to memorize them, you need to make Alexander follow them and then check that it did.
- Access to the console (the chat where you direct Alexander) and to the vault (where our older funnels and their existing images live, so we can reuse).
If you're missing the locked copy or the avatar, stop. Those two are non-negotiable inputs. Everything here is built on them.
Execute or prepare?
Here's the split for this module, plainly.
The image briefs: you prepare, I generate. You direct Alexander to inventory, spec, and write the full brief, and you QA it. Then it comes to me. I run the generation on my machine, because the image tool burns real money per image and its key stays off your system. I send the results back, you QA those too. You never press generate.
The UGC ad scripts: you prepare fully. Writing a script and a creator brief is just text, no money, nothing goes live, so you take those all the way yourself. Paying an actual creator to film is real money and comes to me later, but the writing is all yours.
So this module is mostly a preparing module. You're getting everything ready and perfect so that when it reaches me, all I have to do is press a button and hand it back.
The step, start to finish
There are two separate tracks in this module. First the images (Steps 1 to 7). Then the UGC ad scripts (Steps 8 to 10). Do the images first, because the store build in Module 05 needs them.
Open one task in the console for the image brief work, and keep the whole image job in that one thread. When you get to the UGC scripts, start a fresh task.
Step 1, Inventory what we can reuse before speccing anything new
This is the first thing you do, and skipping it costs me real money, so take it seriously.
Not every image has to be brand new. We've built funnels before, and a lot of their images work fine on a new one. Mechanism diagrams, anatomy cross-sections, science infographics, before/after transformations, author photos, product science shots, all of these often carry straight over. The only images that truly must be new are the specific scenes that carry this product's angle (a particular situation, a particular room, a particular moment from the copy).
So before you spec a single new image, you have Alexander go through every older funnel in the vault and list what already exists that we could reuse. Every image we reuse is one I don't have to pay to generate.
On a real build this saves a lot. On one of our funnels, of 42 image slots, about 32 were reused and only 10 were genuinely new. One version needed zero new images. That's the mindset: reuse first, generate only what genuinely doesn't exist yet.
🎥 Screen recordme opening two of our older funnel folders in the vault, showing the existing image files, and pointing out which kinds carry over to a new product and which are too angle-specific to reuse.
What "done right" looks like: Alexander gives you a list of existing images with their file locations, tagged as reusable or not, and a shorter list of the slots that genuinely need something new. That shorter list is what actually costs money, so it should be as short as honestly possible.
Step 2, List every image slot the funnel needs
Now list every place an image goes, across all three surfaces: the advertorial, the quiz, and the store page.
You don't guess this from memory. Alexander reads the finished copy and pulls out every slot, because every image is tied to a specific spot in the copy. The spec file has a per-surface map of what each page needs, and Alexander follows it.
Roughly, here's what each surface needs, so you know what "complete" looks like:
- The advertorial needs the most: a peer-comparison hero, mechanism and anatomy diagrams (a different one per slot, never the same one twice on a page), a timeline shown as a real person changing over time, ingredient visuals, product shots, a how-to shot, at least one before/after result, and an author headshot.
- The quiz needs an image for each answer option that uses pictures, plus before/after review cards, plus a results before/after.
- The store page needs a gallery of about 7 to 8 images, a before-after section, why-different science cards, an image for every ingredient, how-to steps, and a reviews wall of around 12 before/afters.
What "done right" looks like: a numbered list of every slot, which surface it's on, which copy section it sits next to, and (from Step 1) whether it's a reuse or a new generate.
Step 3, Assign the image type to every slot
Every slot is one of a fixed set of types, and each type has its own strict spec. This is where you get precise, because the type decides the rules.
The types are:
- UGC before/after (one person). The trust workhorse. Same person, left tired, right improved. This is the raw, real, phone-camera look, not glossy studio stock. This is what builds trust, so we use real before/afters for it, nothing fancier.
- Peer-comparison (two different people, same age). The "she's your age but looks older" shot. Two clearly different people, same age bracket, one with the visible problem and one without. This is the single most-rejected type, so it gets extra care in Step 4.
- Product shot. Always uses a real photo of our actual product as the reference. Hero, applicator macro, texture, lifestyle, flat-lay.
- Ingredient visual. A clean, bright macro of each ingredient. One image per ingredient, never a text list.
- Science / mechanism / anatomy. Detailed, medically accurate cross-sections. The picture does the work, only small labels inside.
- How-to / application. A real person using the real product.
- Quiz option images. One real human image per answer option.
- Editorial / story and author. The narrative shots and the author headshot.
What "done right" looks like: every slot from Step 2 now has a type stamped on it. Alexander does this against the spec, and you check that the type actually fits the copy (a "results" slot should be a real human before/after, never a percentage number on a card).
Step 4, Write the brief for every new slot, to the spec
Now the real work. For every slot marked "new generate," Alexander writes a full brief. A brief is the complete instruction I'll hand to the image tool, plus the checks I'll judge it against.
Each slot's brief has four parts:
- The exact generation prompt. The words the image tool reads. Alexander writes this to the spec for that image's type.
- Must-show. The things the image absolutely has to contain to be usable.
- Must-NOT. The things that instantly fail it. This list matters as much as the prompt, because the tool loves to add junk we don't want.
- Reuse or new, and which canonical person (see Step 5).
There's a universal quality bar that applies to every single image, and Alexander must bake it into every brief:
- The person is the real buyer, right age and class. For a premium product bought online, that means a well-groomed urban person in the right age bracket, in a relatable nice setting. Never someone too old, never a rural or worn look, never a gritty street. Ask yourself, "does this look like the person who actually pays for this online?"
- Correct ethnicity. We sell in India, so the people are Indian and South Asian, never western faces.
- UGC raw, real, believable. Natural phone-camera light, not plastic AI-CGI, not glossy studio stock.
- No text baked into the image. No captions, no numbers, no ingredient lists, no section titles, and never the words "before" or "after" burned in. All text comes from the page or gets stamped on later in code. The tool loves to bake in its own "BEFORE" and "AFTER" captions, and they then clash with our clean labels and look broken. So the brief must ban those words and describe it as "a two-panel split of the same person, left tired, right improved," without ever saying before or after.
- No phone frames, no timestamps, no app screens, no mirror, no letterbox bars, nobody holding a sign.
- Real product reference for anything showing the product. Never let the tool invent packaging.
- Unique per page. Never the same image file in two slots on one page.
Two types need special warnings, and Alexander must build these into the brief:
- Peer-comparison (type 2). Two clearly distinct people (different faces, hair, and different outfits), the same age, both facing camera, framed close enough that you can see both faces clearly. One has natural visible under-eye bags and dark circles (tired, older-looking), the other is smooth and rested. It must not look like twins, sisters, or one person, and the problem must not look like a bruise or a black eye. This one gets rejected constantly, so the brief has to nail "two different peers, same age" exactly.
- Before/after (type 1). Frame it as two panels of the same person, believable natural tiredness on the left, realistic improvement on the right. Not a flawless CGI face, not an extreme or bruised look. These come out square, and the label pill gets stamped near the bottom later, so the brief notes that the final wiring container must be square or the label gets cut off.
🎥 Screen recordme reading through one finished brief out loud, a peer-comparison one, showing the prompt, the must-show list, and the must-NOT list, and explaining why each must-NOT is there.
What "done right" looks like: every new slot has a complete four-part brief, and you can read any one of them and picture exactly what image should come out.
Step 5, Lock the canonical people so before/afters stay consistent
This step is easy to overlook and it wrecks the funnel if you skip it, so here it is on its own.
The same real people appear across the whole funnel, in the reviews, the before/afters, the checkout collage. If a face shows up under two different names, or a "customer" looks like a different person on two pages, the whole thing reads as fake and trust dies.
So before Alexander writes the before/after and review briefs, you have it define a fixed set of canonical people, about 7 of them, matching the number in the checkout collage. Each canonical person is a locked identity:
- Name
- Age
- The concern they had
- Their result
- Their written review (a genuine, specific, human review, not a generic AI blurb, and no city)
Once locked, each canonical person is one consistent human shown everywhere with that same identity. The same face never appears under two different names. When the same person shows up on another page, it's the same name and the same look.
What "done right" looks like: a table of about 7 canonical people with all five fields filled, and every before/after and review brief points to one of them by name.
Step 6, QA the brief pack before it comes to me
Before you hand anything to me, you QA the whole brief pack yourself. This is a real judgment step, not a rubber stamp, because once it reaches me I'm spending money generating it.
Check the brief pack against the spec:
- Is every slot from Step 2 accounted for, tagged reuse or new?
- Does every new brief have all four parts (prompt, must-show, must-NOT, person)?
- Does every brief carry the universal quality bar (right buyer, right ethnicity, UGC raw, no baked text, no UI, real product ref, unique per page)?
- Are the peer-comparison and before/after briefs written with their special warnings?
- Are the canonical people locked, and does every before/after point to one by name?
- Is the reuse list as long as it honestly can be, so I'm generating as few new images as possible?
You can also have Alexander run a self-check pass on its own brief pack (there's a prompt for it below). But the final read is yours.
What "done right" looks like: a brief pack you'd stake your name on, that I could generate from without a single question back to you.
Step 7, Hand it to me, then QA what comes back
Now it comes to me. You send me the approved brief pack. I generate everything on my machine, and I do not touch the creative decisions, I just build what your brief says.
When the batch is done, I don't send you images one by one. I build a contact sheet, which is one single image that shows the whole batch as a labelled grid, and I send you that. You review the entire batch in one look.
You QA the contact sheet against the must-show and must-NOT for each slot. For anything that fails, you mark it and tell me exactly what's wrong, and I re-generate only the failures. Then I send an updated contact sheet, and you check again. We loop until it passes.
Common failures you're looking for on the contact sheet:
- A baked-in "BEFORE" or "AFTER" caption, or any text the tool added itself.
- A peer-comparison that came out as twins, or one person, or a bruise-looking eye.
- The wrong buyer (too old, wrong class, wrong setting).
- A phone frame, timestamp, mirror, or letterbox bar that snuck in.
- An invented product instead of our real one.
- The same image sitting in two slots on one page.
- A "results" or "stats" slot that came back as a text card or percentage circles instead of a real human result.
🎥 Screen recordme showing a real contact sheet on screen, walking through it slot by slot, catching two or three failures live, and writing the re-roll note I'd want back from an operator.
What "done right" looks like: a final contact sheet where every slot passes its must-show and has none of its must-NOT, and you've signed off on it. Those images are now ready for the Module 05 build.
Step 8, Prepare the UGC ad scripts (this one you do fully)
Now the second track. UGC means user-generated content, which for us means video ads that look like a real person talking to their phone, not a polished brand ad. These are what we run on Meta to get cold strangers to stop scrolling.
You prepare these fully, because it's all writing. Nothing here spends money or goes live.
A UGC script is a story, not a product pitch. It follows a narrative arc, and Alexander writes it to that arc using the avatar research from Module 02:
Hook (the first few seconds that stop the scroll), then Pain (the problem they live with), then Confusion (why hasn't anything worked), then Root Cause (the real reason, which takes the blame off them), then Why Nothing Worked (everything they tried only fixed part of it), then Discovery (they found the product, still a bit skeptical), then Product (it addresses the whole thing), then Transformation (the emotional payoff), then a soft CTA with a risk reversal like cash on delivery or a guarantee.
Have Alexander write the script to that arc, grounded in the real avatar language from Module 02.
What "done right" looks like: a script that reads like a real person's story, hits every beat of that arc, and uses the customer's actual words, not marketing speak.
Step 9, Make the script sound like a real human, and score it
A written script reads like writing, not like someone talking. So you run it through two tools, both of which are prompts you paste into Alexander.
First, the Natural Speech Converter. It rewrites the script into how someone actually talks: contractions, fragments, little pauses, natural emphasis. The test it uses is "would your friend believe this is you talking?" The prompts are in Step "How to direct Alexander" below.
Second, the Script Analysis System. It scores the script brutally against the avatar research before we waste any money filming it. It rates the hook, the story logic, the transitions, the believability, and predicts whether it's ready to test or needs work. If it comes back "needs work" or "start over," you fix it before moving on. Don't film a script that failed its own scorecard.
What "done right" looks like: a natural-sounding script that the Script Analysis System rates as ready to test.
Step 10, Turn the script into a creator brief
The last step for the ad track. Once the script is natural and scored ready, you turn it into a creator brief, which is the document you'd hand an actual video creator so they can film it well even though they've never used the product.
You use the Creator Brief Generator prompt (below). It produces a ready-to-send brief with the story beats, the emotional moments, a shot list, and the do's and don'ts, all built so the creator tells the story in their own words instead of reading it stiffly.
Actually hiring and paying a creator is real money, so that part comes to me later. For now you prepare the brief and it's ready to go.
What "done right" looks like: a clean, roughly two-page creator brief you could send to a creator as-is.
How to direct Alexander
Here are the exact prompts. Open a task, paste the one you need, fill in the bracketed parts, and check the output against the standard.
Prompt A, inventory reusable images (Step 1)
We're building the images for a new funnel: <product name / brand>.
Before we spec anything new, inventory what we can reuse.
Go through every existing funnel in the vault (funnels/ and any product
folders) and list every image asset that already exists. For each, give me:
the file path, what it shows, and its type (before/after, peer-comparison,
product, ingredient, science/anatomy, how-to, quiz option, editorial, author).
Then tag each as REUSABLE for this new product or NOT (too angle-specific).
Science, anatomy, mechanism, ingredient and author images usually reuse;
situation/scene images usually don't. Reuse aggressively, generating costs
real money. Finish with a short list of the slots that genuinely need a NEW
image. Do not generate anything, we only generate on my machine.
Good output: a full list of existing images with paths and reuse tags, and a short "new needed" list. If it wants to generate, stop it, that never happens here.
Prompt B, list every slot and assign types (Steps 2 and 3)
Here is the finished advertorial, quiz, and store copy for <product>:
<paste the locked copy, or point to the files>
Read every surface and list EVERY image slot the funnel needs, following the
per-surface map in the funnel image specs (reference-funnel-image-specs in
memory). For each slot give me: a number, which surface (advertorial / quiz /
store), which copy section it sits next to, the image TYPE, and whether it's
a REUSE (from the inventory) or a NEW generate. Follow the spec exactly. Do
not merge two slots or skip any.
Good output: a numbered slot list, every slot typed and tagged reuse or new.
Prompt C, write the briefs (Step 4)
Write the full generation brief for every NEW slot in the list above.
Follow BOTH reference files in memory exactly: reference-funnel-image-specs
(what each type must show and must NOT) and reference-image-gen-sop (the
process). For EACH new slot give me four parts:
1. The exact generation prompt (written to that type's spec).
2. Must-show (what it has to contain to be usable).
3. Must-NOT (what instantly fails it).
4. Reuse or new, and which canonical person it uses (if a before/after or review).
Bake the universal quality bar into every brief: real target buyer (right age,
right class, relatable premium setting), Indian/South-Asian faces, UGC raw not
glossy stock, NO text baked in the image, never the words "before"/"after",
no phone frame/timestamp/app UI/mirror/letterbox/sign, real product reference
for any product shot, unique per page.
For peer-comparison slots: two DIFFERENT people, SAME age, one with visible
natural under-eye bags, one rested, framed tight, never twins/one-person/bruise.
For before/after slots: frame as "two panels of the SAME person, left tired,
right improved", never say before/after, note the final container must be square.
Do not generate anything.
Good output: a complete four-part brief per new slot. Read a few and picture the image, if you can't, send it back.
Prompt D, lock the canonical people (Step 5)
Define the canonical people for this funnel's before/afters and reviews.
Create ~7 (matching the checkout collage count). Each is a LOCKED identity:
name, age, concern they had, result, and a genuine specific human review
(no city, not a generic AI blurb, varied and real).
Each canonical person is ONE consistent human shown everywhere with that
identity. The same face never appears under two names. Every before/after and
review brief must point to one of these people by name. Give me the table.
Good output: a 7-row table with all five fields, referenced by name in the briefs.
Prompt E, self-check the brief pack (Step 6)
Before this goes to Sovansh to generate, audit your own brief pack against
reference-funnel-image-specs and reference-image-gen-sop. Tell me:
(1) any slot missing or missing one of the four brief parts,
(2) any brief that breaks the universal quality bar (baked text, wrong buyer,
UI/mirror, invented product, same image twice on a page),
(3) any peer-comparison or before/after brief missing its special warning,
(4) any before/after or review not tied to a locked canonical person.
List problems only, don't rewrite yet. Then I'll tell you what to fix.
Good output: a short problem list you can act on. Then you make the final call yourself.
The three UGC script prompts (Steps 9 and 10)
These three are proven prompts we keep verbatim in the vault at funnels/references/prompts/04-creative-prompts.md. Have Alexander load that file and run the one you need. Here's what each is and how it opens, so you know you've got the right one.
The Natural Speech Converter (Step 9). It opens: "You are converting a script into GENUINE human speech, the way someone would actually tell this story to their best friend over coffee. Not performed. Not rehearsed. REAL." Paste this to run it:
Load the Natural Speech Converter prompt verbatim from
funnels/references/prompts/04-creative-prompts.md (section 1) and run it on
this script:
<paste the script>
Give me the fully natural version plus the delivery notes and flow markers.
The Script Analysis System (Step 9). It opens: "You are a direct response copywriter who has written scripts that generated $100M profitably. You'll analyze scripts with brutal honesty based on data, not opinion." It needs five inputs: the avatar research, the problem root cause, the solution mechanism, the product details, and the script. Paste this:
Load the Script Analysis System V4.0 prompt verbatim from
funnels/references/prompts/04-creative-prompts.md (section 2) and run it.
Inputs:
- Avatar research: <paste or point to the Module 02 research>
- Root cause / unique mechanism: <paste>
- Solution mechanism: <paste>
- Product details: <paste>
- Script: <paste the natural-speech version>
Give me the full scored analysis and the testing-readiness verdict.
If the verdict is "needs work," "major revision," or "start over," fix it before you build the creator brief.
The Creator Brief Generator (Step 10). It opens: "You are a UGC (User-Generated Content) brief creator for direct response advertising." Paste this:
Load the Creator Brief Generator prompt verbatim from
funnels/references/prompts/04-creative-prompts.md (section 3) and run it.
Inputs:
- Product information (name, one-sentence description, mechanism, offer): <paste>
- Avatar (who they are, what they've tried, what they feel, what they need to
believe): <paste from Module 02>
- The finalized script: <paste>
- Notes & restrictions (must-say phrases, words to avoid, compliance, brand,
filming notes): <paste or "None">
Give me the clean, ready-to-send creator brief, max two pages.
There's a fourth prompt in that same file, the AI Winning Ad Deconstruction (it opens: "You are an elite performance marketer who has scaled multiple DTC brands from zero to $100M+"). You don't run it every build, but it's the tool for taking a competitor's winning video apart into its 14-part workbook so you can model it. Reach for it when I point you at a competitor ad to learn from.
What you decide & QA
You own two calls in this module.
Call one: is the image brief pack good enough to generate? This is the one that spends my money, so it's the bigger call.
- Pass: every slot listed and tagged, every new slot has all four brief parts, every brief carries the universal quality bar, peer-comparison and before/after briefs have their special warnings, canonical people are locked and referenced by name, and the reuse list is as long as it honestly can be.
- Fail: any slot missing, any vague prompt, any brief that would let the tool bake in text or the wrong buyer, or canonical people not locked. If it fails, fix it before it comes to me. A weak brief just means I burn money generating something you'll reject.
Call two: does the generated batch pass? You judge the contact sheet.
- Pass: every slot meets its must-show and has none of its must-NOT. No baked text, no twins, no wrong buyer, no invented product, no repeated image on a page, real human results not text cards.
- Fail: anything off. Mark it, send me the exact re-roll note, and check the next contact sheet. We loop until it's clean.
For the UGC scripts, the QA is simpler: the script sounds like a real person talking, and the Script Analysis System rates it ready to test. If it didn't pass its own scorecard, it's not ready.
The real skill you're building here is a good eye. You're learning to look at an image and know instantly whether it looks like our actual customer and whether it'll build trust or read as fake. That eye is worth more than any single rule on this page.
Money-gate points
Two real money points in this module, and both stop with me.
- Image generation. The image tool costs real money per image and its key stays on my machine. So generation never happens on your side. You prepare the brief, it comes to me, I generate. This is why Step 1 (reuse first) matters so much: every image you can reuse is money we don't spend. And the reason I send back a contact sheet instead of generating endlessly is the same, we generate carefully once, check, and re-roll only the failures.
- Paying a UGC creator. Writing the script and the creator brief is free and yours. Actually hiring and paying a creator to film is real money and comes to me. You get everything ready to the point of "just needs a creator," and stop there.
Nothing else in this module spends money. The briefs, the scripts, the QA, all of that is yours to run freely.
Common mistakes & fixes
- Speccing new images before inventorying reuse. The most expensive mistake, because it makes me generate images we already had. Fix: Step 1 always comes first, and the reuse list has to be honestly long before any new brief gets written.
- Weak must-NOT lists. People write a good prompt and a thin must-NOT, and the tool bakes in captions, phone frames, and timestamps. Fix: the must-NOT is as important as the prompt. Ban the words "before" and "after," ban UI, ban text, every time.
- Peer-comparison coming out as twins or a black eye. The classic. Too matchy and they look like sisters, pushed too hard and the tired eye looks like a bruise. Fix: two clearly different people, different outfits, same age, natural under-eye bags, framed tight, and QA that specific shot hard.
- Not locking canonical people. Faces drift across pages, or one face shows up under two names, and the funnel reads fake. Fix: lock the 7 people in Step 5 before any before/after brief, and reference them by name.
- Letting the tool invent the product. A product shot with made-up packaging is unusable. Fix: every product brief says to use the real product reference, and you check that on the contact sheet.
- Text-card "results." A slot that should show a real human result comes back as a percentage circle or a text card, which sells nothing. Fix: results and stats slots are always real human before/afters or bright anatomy, never text in a canvas.
- The same image twice on one page. Reuse across different pages is fine for consistency, but never the same file twice on one page. Fix: unique per page, generate a distinct image for each duplicated slot.
- Filming a script that failed its scorecard. Fix: if the Script Analysis System says "needs work" or worse, you fix it before the creator brief, never after.
Templates & checklists
The image slot brief (Alexander fills one of these per new slot):
SLOT #:
Surface (advertorial / quiz / store):
Copy section it sits next to:
Type (before-after / peer-comparison / product / ingredient / science /
how-to / quiz-option / editorial / author):
Reuse or new:
Canonical person (if before/after or review):
Generation prompt:
Must-show:
Must-NOT:
The canonical people table (about 7 rows, locked before before/after briefs):
# | Name | Age | Concern | Result | Review (human, specific, no city)
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Brief-pack QA checklist (pass all before it comes to me):
□ Reuse inventory done first, reuse list as long as honestly possible
□ Every slot listed, typed, and tagged reuse or new
□ Every new slot has all four brief parts
□ Universal quality bar in every brief (real buyer, Indian faces, UGC raw,
no baked text, no UI/mirror, real product ref, unique per page)
□ Peer-comparison briefs: two different people, same age, tight framing
□ Before/after briefs: same person two panels, never "before/after" text,
square container noted
□ Canonical people locked and referenced by name
Contact-sheet QA checklist (per slot, after I send it back):
□ Meets its must-show
□ None of its must-NOT
□ No baked-in text or "BEFORE/AFTER" caption
□ Right buyer (age, class, setting), Indian face
□ Real product, not invented
□ Not a duplicate of another slot on the same page
□ Results/stats slots are real humans, not text cards
UGC script checklist:
□ Written to the full narrative arc (hook -> pain -> confusion -> root cause
-> why nothing worked -> discovery -> product -> transformation -> soft CTA)
□ Run through the Natural Speech Converter (sounds like real talking)
□ Scored by the Script Analysis System, verdict = ready to test
□ Creator brief generated, clean and about two pages
Worked example
Open the Glyka funnel in the vault. Glyka is our under-eye serum brand, and it's the funnel where this whole image process got worked out end to end.
Look at how its before/afters are built: real, raw, phone-camera people, the same canonical women appearing consistently across the reviews and the checkout collage, with the "BEFORE" and "AFTER" pills stamped on cleanly in code rather than baked in by the tool. Look at the peer-comparison shots, two different women of the same age, one with tired under-eyes and one rested, the exact shot that carries the "she's your age" angle.
Then look at the science and anatomy images: bright, labelled, medically accurate cross-sections where the picture does the work and the text only labels. And notice which images got reused from earlier work versus which were generated fresh for Glyka's specific angle.
Study it against the checklists above. That's what a finished, QA'd image set looks like once it's been through this whole module. Get that picture in your head before you brief your own, so you know what "done right" feels like.
You just finished Module 04
That's the creative done.
You just learned the most expensive part of the whole build to get wrong, and how we control it: reuse first, brief to an exact spec, lock the people so nothing looks fake, and QA hard before and after generation. You also learned to prepare ad scripts that sound like real people and pass their own scorecard. That eye for what looks real and what looks fake is a skill that keeps paying off on every store you run.
Next up is Module 05, Store & PDP Build, where you take these images and the copy and stand up the actual Shopify store and product page. This is where the funnel becomes a real thing a customer can land on and buy from. You've got the copy and the images ready, so go build the place they live.
Module 05, Store & PDP Build
After this module you can take an empty Shopify account and turn it into a finished one-product store, with the product loaded, COD and Indian payments set up, shipping and domain ready, the Meta pixel wired in, and a premium sales page (the PDP) built and QA'd, all sitting ready for me to publish live.
Where this sits
By now you've done the thinking work. Module 02 gave you the avatar and the research. Module 03 gave you the advertorial and the PDP copy. Module 04 gave you every image, generated and approved.
This module is where all of that stops being words and pictures and becomes an actual store a customer can buy from. You assemble the copy from Module 03 and the images from Module 04 into a real Shopify store and a real product page.
After this, in Module 06, we point ads at it. So this is the last thing that has to be right before we spend a rupee. If the store is broken here, every ad dollar in Module 06 leaks straight out the bottom. That's why we build it carefully and QA it hard.
What you need before you start
Before you touch Shopify, you need all of this in hand. If any of it is missing, stop and go get it, don't build on a gap.
- The filled Intake Form from Module 01. Product name, brand, domain, selling price, compare-at price, COGS, weight, COD or prepaid. You'll type these exact numbers in.
- The PDP copy from Module 03. Every section's headline and body text, approved. This module doesn't write copy, it places copy. If the copy isn't approved yet, finish Module 03 first.
- The image set from Module 04. All product images, before-and-after pairs, comparison graphics, and any section art, final and approved. You'll upload these.
- Store access from me. I set up the raw Shopify store and the paid plan, and I give you a staff login to build inside it. You never create the account or pick the plan yourself, that's a money and billing step I keep. More on this in the money-gate section.
✎ Note to selfconfirm the exact way you want operators given store access, staff account on your store vs a store you spin up and hand over. Lock this so the module can name the exact flow. - The console. That's the chat where you direct Alexander to build the PDP section code. Same console you've used since Module 01.
Two terms before we go, because they come up constantly:
- Shopify admin is the back office of the store. It's the control panel where you add products, change settings, and edit the theme. You get to it at a web address that ends in
.myshopify.com/admin. I'll give you that exact address for your store. - The PDP stands for product detail page. It's the single page a customer lands on that shows the product, the proof, the price, and the buy button. For a one-product store, the PDP basically is the store. It's the most important page we build.
Execute or prepare?
This module is split, so read this carefully.
The store setup (Part A) you execute yourself. All the clicking inside Shopify admin, adding the product, setting up payments and shipping, that's you, hands on the keyboard. I've already handed you the store, so you're just configuring it.
The PDP build (Part B) you prepare, and I deploy. Alexander builds the actual page code (the custom sections), you QA it, and then I'm the one who uploads it to the live theme and publishes the store. You get it to "ready and checked," I hit the final button.
Why the split? Because publishing the store live, connecting the real payment gateway with my merchant keys, and buying the domain all either spend money or use my private credentials. Those stay with me. Everything up to that line is yours to own.
So your finish line for this module is: a fully built store sitting on an unpublished theme, password-protected, with a PDP that passes every QA check, ready for me to flip live in Module 06.
PART A, Set up the one-product store
Step 1, Get into the store and find your way around
- Open the admin address I gave you (it looks like
yourstore.myshopify.com/admin) and log in with the staff account I set up for you. - You'll land on the Home screen. Down the left side is the main menu: Home, Orders, Products, Customers, Marketing, Discounts, Content, Analytics, and at the bottom, Settings. That left menu is how you get everywhere. Get familiar with it.
- At the very bottom left is Settings, the gear-style link. Almost everything in Part A except the product and the theme lives inside Settings. Remember where it is.
Done right: you're logged in, you can see the left menu, and you can open and close Settings.
🎥 Screen recordlogging into a fresh store admin, then a slow tour of the left menu, pointing at Products, Content, Analytics, and Settings, so the operator knows where each thing lives before we touch anything.
One rule for all of Part A: the store stays password-protected the whole time. A brand new Shopify store is locked behind a password page by default, so no random visitor can see it while you build. We keep it that way. It only comes off when I take the store live in Module 06. If you ever see the storefront without a password prompt, tell me, because that means it went public early.
Step 2, Set the theme
The theme is the design skin of the store, the fonts, colours, layout, and the building blocks (called sections) that make up each page. We don't design a new theme per store. We reuse the same proven house theme every time so every store looks premium and consistent.
Our house theme is the Lumin-based one (in some stores it shows as "Smile"). It's the one our live stores like Glyka run on. I'll either have it already installed on your store, or I'll give you a copy to load.
- In the left menu, click Content, then click Themes. (In some Shopify versions Themes sits under Online Store instead. If you don't see Content > Themes, look for Online Store > Themes.)
✎ Note to selfconfirm which menu path your Shopify plan shows for Themes, Content vs Online Store, so we name one. - You'll see a Current theme at the top (that's the live one) and a Theme library below it (saved but not live themes).
- Find the house theme in the library. Do not edit the live/current theme directly. Instead, click the three-dots button on the house theme and choose Duplicate. This makes a safe working copy so you can build without touching anything customers might see.
- Rename the copy so it's obvious. Click the three dots on the duplicate, choose Rename, and name it something like
BUILD - <brand> - <today's date>. Clear names save you from editing the wrong theme later. - This renamed duplicate is now your working theme for the whole module. Every change you make happens here, on the unpublished copy. I publish it live at the end.
Done right: you have a clearly named, unpublished duplicate theme in the library, and you have not touched the current live theme.
🎥 Screen recordopening Themes, duplicating the house theme, renaming the copy, and pointing out the difference between the live "Current theme" and the unpublished working copy.
Step 3, Add the product
Now load the actual product. There is exactly one. One product per store, always. Never add a second product to the store, it splits focus and breaks the whole model.
- In the left menu, click Products, then click the Add product button (top right).
- Title: type the full product name from your Intake Form. This is the customer-facing name, so use the real name we sell under, not a code name.
- Description: leave a short placeholder for now, like "Description built in PDP." The selling copy doesn't go in this box, it goes into the PDP sections in Part B. This box is just Shopify's default product text and mostly won't show once the custom PDP is on.
- Scroll to Media. Click Add and upload the product images from Module 04, in the order you want them to appear in the gallery. The first image you upload becomes the main image, so upload your strongest hero shot first. Upload all of them.
- Scroll to Pricing.
- Price: the selling price from your Intake Form (for example2550). This is what the customer pays.
- Compare-at price: the higher "was" price we cross out to anchor the deal (for example4999). This is the price-anchor number, it must be higher than the price. If we're not showing a crossed-out price, leave this blank, but we almost always show one.
- Cost per item: your COGS from the Intake Form (for example240). This is private, customers never see it. It just lets Shopify and Orbit calculate margin correctly. - Scroll to Inventory.
- Tick Track quantity so Shopify counts stock.
- Enter the units in stock from your Intake Form.
- SKU: a short code for the product (for exampleKAIROVA-FITPRO-01). SKU means stock keeping unit, it's just the internal label for this exact item. Shiprocket and Orbit use it to match orders to the product.
- Leave Continue selling when out of stock unticked, unless I tell you otherwise. We don't want to sell what we can't ship. - Scroll to Shipping.
- Tick This is a physical product.
- Enter the weight of one packed unit (for example0.4 kg). This feeds shipping rates and the Shiprocket label, so use the real packed weight, not a guess. - On the right side, find Status and set it to Active. Active just means the product exists and can be shown, it does not make the store public (the password page still protects everything).
- Click Save (top right).
Done right: the product shows in your Products list, with all images loaded in the right order, the price and compare-at price set, cost and weight filled, stock tracked, and status Active.
🎥 Screen recordthe full add-product flow, typing the title, uploading the image set in gallery order, filling price / compare-at / cost, inventory and SKU, weight, setting Active, and saving, then showing it appear in the Products list.
Step 4, Set up payments (COD plus PayU, never Stripe)
This is the most important settings step, so slow down here. We're in India, selling mostly on COD, which stands for cash on delivery, the customer pays the delivery person in cash when the parcel arrives. Most of our cold traffic pays this way, it's normal here and we lean into it.
We also offer online prepaid payment through PayU, an Indian payment gateway. A gateway is the service that processes card, UPI, and wallet payments. PayU is our primary. Cashfree or Razorpay are our backups. We never use Stripe. Stripe is a US and Europe gateway, it's the wrong fit for India, and I don't want it mentioned or wired in. If you ever see a Stripe option, leave it off.
- In the left menu, click Settings, then Payments.
- Turn on Cash on Delivery. Find the section for manual or additional payment methods (it's usually labelled Manual payment methods or Additional payment methods). Click Add manual payment method, and choose Cash on Delivery (COD) from the list. Save it. This is what lets a customer place an order without paying online.
- Set up PayU as the online gateway. PayU connects through a Shopify app or a third-party provider setup, using my PayU merchant account keys. You do not enter those keys. Those are my private credentials, so connecting the live PayU gateway is a step that comes to me. What you do is get everything else ready so all I have to do is drop the keys in.
✎ Note to selfconfirm the exact PayU-on-Shopify connection method you use, the PayU app vs a third-party gateway provider, so the module can give the precise click path. - Do not enable Stripe or Shopify Payments. If Shopify prompts you to "Complete account setup" with Shopify Payments, ignore it. We use PayU, not Shopify Payments.
- Backups (Cashfree, Razorpay) are only wired in if PayU has an issue. Don't set those up now unless I tell you to.
Done right: COD shows as an active manual payment method, PayU is staged and ready for me to connect with the merchant keys, and Stripe and Shopify Payments are off.
🎥 Screen recordopening Settings > Payments, adding Cash on Delivery as a manual method, showing where PayU connects, and pointing out that Stripe / Shopify Payments stay off.
Step 5, Clean up the checkout for impulse buyers
Our buyers buy on impulse. Any moment of friction, any extra field, any "wait, what's this," and they drop off. So we strip the checkout down to only what's needed to place the order.
- In Settings, click Checkout.
- Customer contact: set it so a phone number is captured. For COD in India, phone is how the courier and our team confirm and deliver the order, so phone is required, not email. Set the contact method to phone (or phone and email if the option is combined).
✎ Note to selfconfirm your exact checkout contact preference, phone-only vs phone+email, for COD confirmation. - Form fields: keep only the essentials, full name, phone, and full shipping address. Turn off or set to "not required" anything optional like company name or a second address line if the setting allows it.
- Turn off order notes / special instructions if there's a toggle for it. It's a distraction and we don't need it.
- Turn off the "tip" option if your theme or checkout shows one. We don't take tips.
- Leave the discount code field as Shopify sets it unless I say otherwise. On our simplest funnels we sometimes hide it, but that's a case-by-case call I make.
- Save.
Done right: the checkout asks for name, phone, and address, and not much else. It should feel like two thumb-taps to finish.
🎥 Screen recordSettings > Checkout, setting phone as the contact, trimming the form fields, turning off notes and tips, and saving.
Step 6, Set up shipping
We ship across India with Shiprocket, which is a shipping platform that hands our parcels to couriers like Delhivery and books the pickups. Shopify needs a shipping zone so it knows where we deliver and what to charge.
- In Settings, click Shipping and delivery.
- Under Shipping, find the shipping profile (there's usually a General shipping rates profile). Click to manage it.
- Make sure there's a zone for India. If there isn't one, click Create shipping zone, name it
India, and add India as the country. - Add a rate for that zone. For most of our stores shipping is baked into the price, so we show Free shipping to the customer (rate of
0), or a small flat rate if I tell you to. Set it the way I specified in the intake. Free shipping usually converts better and we've priced it in. - Save.
- Shiprocket connection: Shiprocket links to the store to pull orders and push tracking. This connection uses my Shiprocket account, so I handle the actual connect step. You just make sure the India zone and rate exist so orders can be placed.
✎ Note to selfconfirm whether operators connect Shiprocket themselves via the Shiprocket app, or you do it with your account. Lock which.
Done right: there's an India shipping zone with the correct rate (usually free), and orders can be placed to any Indian address without a shipping error.
🎥 Screen recordSettings > Shipping and delivery, opening the profile, confirming or creating the India zone, setting the rate to free, and saving.
Step 7, Point the domain at the store
The domain is the store's web address, the brand name people see (for example kairova.in), instead of the long .myshopify.com one. It's on your Intake Form.
Here's the honest split: buying a domain costs money, and connecting one often uses my registrar account, so the actual purchase and the DNS connection come to me. What you do is get the store's side ready and tell me the exact domain to connect.
- In Settings, click Domains.
- This screen shows the current domains. A fresh store only has the
.myshopify.comone. - If I've already bought and added the brand domain, confirm it shows here and is set as the primary domain (the one customers see). If it's there but not primary, you can set it primary. If it's not there at all, that's my step, message me the exact domain from the intake so I can buy and connect it.
- Don't stress about the DNS technical bits, that's my side. Your job is just to confirm the right domain is the one attached, or flag that it's missing.
Done right: either the correct brand domain is showing and set as primary, or you've flagged to me the exact domain that still needs buying and connecting.
🎥 Screen recordSettings > Domains, showing the myshopify address, and where a real brand domain appears once connected and set as primary.
Step 8, Wire in the Meta pixel
The Meta pixel is a small piece of tracking code from Facebook (Meta) that sits on the store and reports back what shoppers do, page views, add-to-carts, and purchases. Without it, our ads in Module 06 are running blind, so it has to be on.
Important line: the ad account and Business Manager setup happens in Module 06. What you do here is get the store ready to receive the pixel, so that when I create the pixel in Module 06, it drops straight in. The cleanest way on Shopify is the official Facebook & Instagram sales channel app, which connects the pixel and the events for you.
- In the left menu, look under Sales channels (or click the + next to Sales channels to add one) and add the Facebook & Instagram channel if it isn't there.
- That channel is what links the store to our Meta business assets and installs the pixel. The actual linking uses my Meta Business account, so the connect-and-authorise step comes to me, together with Module 06.
✎ Note to selfconfirm whether you want the Facebook & Instagram channel installed and pre-connected in Module 05, or fully handled in Module 06. This decides how much of the pixel lives in this module. - Don't paste any raw pixel code by hand. We connect it through the official channel so the standard events (ViewContent, AddToCart, InitiateCheckout, Purchase) fire correctly. Hand-pasted code usually misses those events.
Done right: the Facebook & Instagram sales channel is installed on the store and ready for me to connect our pixel to in Module 06.
🎥 Screen recordadding the Facebook & Instagram sales channel from the Sales channels menu, and showing where the pixel gets connected.
That's the store shell done. Now the page itself.
PART B, Build the PDP
Step 9, Understand what a good PDP is before you build one
Before you direct Alexander, you need to know what "good" looks like, or you can't QA it.
Our PDPs follow a proven conversion structure, the same shape our best pages use. It's a specific order of sections that walks a hot buyer from "interesting" to "buying" without a gap. Here's the full 16-section structure, top to bottom:
- Quiz-personalized hero. Opens by reflecting the buyer's own answers back ("Based on your answers..."), a now-vs-goal comparison, a recommendation, and a first buy button.
- Trust ticker. A thin scrolling strip of badges: guarantee, customer count, free shipping, tested.
- Product card with price anchor. The image gallery plus the crossed-out compare-at price next to the real price, star rating, a few bullet features, and the main Add to Cart.
- As featured in. A row of logos or credibility markers.
- Benefits section. Emotional headline plus a few outcome-focused benefit blocks.
- Video testimonials. Real customer videos, each with a specific headline hook.
- Reviews (tabbed or carousel). Real-feeling written reviews with dates.
- How it works / technology. The mechanism, explained simply.
- How to use. A few plain steps.
- Comparison table. Our product vs the alternatives, winning on every row.
- Science / proof. The strongest hard evidence, stats, or certification.
- Guarantee. The money-back promise, spelled out.
- "So you can..." future pacing. The life the buyer gets after it works.
- Full FAQ. The last objections, answered.
- Bottom review wall. A big grid of proof at the end.
- Sticky bottom bar. The product, price, and Add to Cart that stays stuck on screen the whole scroll.
Not every product needs all 16 in full. Some sections flex based on what proof we actually have (a product with no press mentions skips "As featured in"). I'll tell you which to include for your product. But the order and the logic stay the same.
Three house rules that are non-negotiable on every PDP:
- White background, always. Our stores are clean and premium, think Aesop or Glossier. Coloured section backgrounds look cheap and we don't use them. White throughout.
- The gallery is a horizontal carousel with a thumbnail strip, never a tall vertical stack of images. Big main image, small thumbnails to click through. Vertical stacking shoves the price and buy button way down the page and kills conversions.
- Truly responsive. The page has to look right on any phone, not just one screen size. That means fluid sizing (units like
clamp()andvwthat scale with the screen), not fixed pixel widths that break on a different phone.
Step 10, Assemble your inputs
The PDP is an assembly job. You're placing approved copy and approved images into the structure above. So first, lay your materials out:
- Open the PDP copy from Module 03. Match each block of copy to the section it belongs in from the 16-section list.
- Open the image set from Module 04. Match each image to its section, hero to the gallery, before-and-afters to the proof and testimonial areas, the comparison graphic to the comparison table, and so on.
- Note anything missing. If a section in the structure has no copy or no image, that's a gap, close it before building (go back to Module 03 or 04). Don't let Alexander invent copy or images to fill a hole.
Done right: every one of your included sections has its approved copy and its approved image ready to hand to Alexander.
Step 11, Direct Alexander to build the PDP sections
Now the build. On Shopify, each section of the page is a custom section file (a small code file written in Shopify's templating language, Liquid), plus one product template that lists which sections show and in what order. Alexander writes these files. You direct and QA. I deploy them to the theme.
Open one task in the console for this build (one task, one thread, don't mix it with other work). Paste this, filling in the bracketed parts:
Build the Shopify PDP sections for our one-product store.
PRODUCT: <product name, brand>
SELLING PRICE: ₹<price> COMPARE-AT: ₹<compare-at>
THEME: our Lumin/Smile-based house theme (custom Liquid sections + a
product.<suffix> template JSON that orders them).
Build these sections, in this exact order, as separate Liquid section files
plus one product template JSON that renders them top to bottom:
<paste the list of sections you're including, from the 16-section structure>
For each section I'm giving you the approved copy and the approved image
filenames. Use ONLY what I provide. Do not invent copy, claims, reviews,
stats, or image names. If something is missing, list it as a gap and stop.
COPY (per section):
<paste the Module 03 copy, labelled by section>
IMAGES (per section):
<paste the Module 04 image filenames, labelled by section>
HARD REQUIREMENTS:
- White background on every section. No coloured section backgrounds.
- Product gallery = horizontal carousel with a thumbnail strip below the
main image. In the product template JSON set the main-product section to:
gallery_layout: thumbnail_slider, media_size: large, media_fit: contain,
mobile_thumbnails: show, thumbnail_size: 80, thumbnail_radius: 8,
image_zoom: lightbox. Never a vertical stacked gallery.
- A sticky bottom bar (product image + name + price + Add to Cart) that
stays fixed on screen through the whole scroll, on mobile and desktop.
- Add to Cart must go straight to checkout (add exactly 1, no cart page
in between), zero-friction, big tappable buttons.
- Fully responsive: use fluid units (clamp(), vw, %), not fixed pixel
widths. Must hold up on any phone size, not one breakpoint.
- Premium, clean look (Aesop / Glossier level), generous consistent spacing.
Output the section files and the product template JSON as separate,
clearly named files I can hand off to deploy. Do not deploy anything.
What to fill in: the product and price line, the exact section list I told you to include, and the Module 03 copy and Module 04 image names, each labelled by which section they go in.
Good output from Alexander: a set of clearly named Liquid section files plus one product template JSON, using only the copy and images you gave it, with white backgrounds, the thumbnail_slider gallery settings, and a sticky bar, and nothing invented. If it flags a gap instead of guessing, that's good, that means it's honest, go close the gap.
If Alexander starts writing its own headlines, made-up reviews, fake stats, or invents image names, stop it. Copy and proof come from Modules 03 and 04, never from Alexander's imagination.
Step 12, Hand off for deploy, then QA the live build
You built it, but you don't publish it, I do. Here's the handoff and then your QA.
- Hand the section files and template to me to deploy. I upload them onto your working theme (the unpublished duplicate from Step 2) and assign the product to the PDP template. The store stays password-protected, so this is a safe, private build, not a public launch.
- Once I've deployed to the working theme, I'll give you the preview link (a private URL that shows the unpublished theme). Now you QA.
QA the cheap, reliable way, with curl and the page markup, not by eyeballing viewports. Trying to fake mobile and desktop screen sizes in a browser is flaky and wastes hours, so we don't. You confirm the build is correct in the markup, and I do the final visual eyeball pass on a real phone.
Run these checks on the preview URL:
- Page loads:
curl -s -o /dev/null -w "%{http_code}" "<preview URL>"should return200. Anything else means it's not serving, tell me. - Sections present and in order:
curl -s "<preview URL>"and grep for each section's headline text. Every included section should be there, and the old placeholder text should be gone. - White background: grep the markup and confirm no section is set to a dark or coloured colour scheme. Remember the global sections too, the footer and header groups (
footer-group.json,header-group.json) render on every page, so a stray coloured background often hides there, not in the PDP sections. Check those. - Gallery is a carousel: confirm the main-product settings show
gallery_layoutset tothumbnail_slider, notstackedor a vertical layout. - Sticky CTA present: confirm the sticky bottom bar markup is in the page.
- Responsive units: confirm the CSS uses fluid units (
clamp(,vw,%) and not a wall of fixedpxwidths. - Images load:
curl -sIa few of the image URLs and confirm each returns200with a real content-length (not0).
Then test the actual buy flow on the preview, because a page that looks perfect but can't take an order is worthless:
- Click Add to Cart. It should add exactly one unit and take you straight to checkout, no cart page, no error.
- On checkout, confirm Cash on Delivery is offered as a payment option and you can place a test COD order to an Indian address without an error.
Done right: the page returns 200, every section is present on a white background, the gallery is a thumbnail_slider carousel, the sticky CTA is there, the CSS is fluid, images load, and a COD order can be placed end to end.
🎥 Screen recordrunning the curl status check, grepping the served HTML for the section headlines and the gallery_layout value, curling an image URL for a 200, then doing a live add-to-cart-to-checkout and placing a test COD order on the preview link.
Step 13, Hand to me for the final visual pass
Once your curl and DOM checks pass and the COD flow works, send me the preview link with a short note of what you checked. I do the visual review on a real phone and desktop, the polish and spacing eyeball, and flag anything off. You fix whatever I flag (back to Alexander for code changes), re-run the same curl and DOM checks, and hand back.
When I'm happy, I publish the theme and, in Module 06, take the store live. Your job here is done at "checked, working, and handed over."
What you decide & QA
You own two judgment calls in this module.
Call one: is the store shell correctly set up?
- Pass: one product loaded with real price, compare-at, cost and weight; COD live as a payment method; PayU staged for me; Stripe and Shopify Payments off; an India shipping zone with the right rate; the correct domain attached or flagged; the Facebook & Instagram channel installed; and the store still password-protected.
- Fail: any of a second product added, Stripe left on, no COD, no India shipping zone, or the store showing publicly without a password. If any of these are true, it's not done, fix it before Part B.
Call two: is the PDP premium and correct?
- Pass: loads at 200, every included section present and in order, white background throughout (including the global footer and header groups), gallery is a thumbnail_slider carousel, sticky CTA present, fluid responsive units, images load, and a COD order can be placed add-to-cart straight through to checkout.
- Fail: any coloured section background, a vertical stacked gallery, no sticky CTA, fixed pixel layout, a broken image, invented copy or reviews Alexander made up, or a checkout that errors or forces a cart page. Any one of these fails the page. Send it back.
The habit here is the same one from Module 01: don't call it done because you want it done. A store that "looks basically fine" but errors on COD checkout will burn real ad money in Module 06. Prove it works, don't assume it.
Money-gate points
This module has more money and credential lines than the earlier ones, because a store touches billing, domains, and payment keys. Every one of these stops with me. Alexander and you prepare up to the line, I cross it.
- The Shopify plan and billing. Creating the store and paying for the plan is mine. You're handed an already-paid store, you never enter card details or pick a paid plan.
- Buying the domain. Purchasing the brand domain costs money and uses my registrar, so I buy and connect it. You confirm the right one is attached or flag the exact one to buy.
- Connecting the live PayU gateway. This uses my PayU merchant keys (private credentials). You stage everything; I enter the keys and switch it live.
- Connecting Shiprocket and the Meta pixel. Both use my accounts. You get the store ready; I connect them.
- Publishing the theme and taking the store public. Removing the password page and making the store live is the launch itself. That's mine, and it happens in Module 06, not here.
If you ever feel like you "just need to" enter a card, a merchant key, or flip the store public to finish, stop. That's the exact line that stays with me. Prepare it and hand it over.
Common mistakes & fixes
- Editing the live theme instead of a duplicate. You change something and it shows to the world. Fix: always duplicate the house theme first (Step 2) and only ever work on the named unpublished copy.
- Adding a second product. Breaks the one-product model and splits the buyer's focus. Fix: one product per store, no exceptions. If you think you need two, ask me first, the answer is almost always no.
- Leaving Stripe or Shopify Payments on. Wrong for India and it annoys me. Fix: COD plus staged PayU only, Stripe and Shopify Payments off (Step 4).
- A vertical stacked gallery. Pushes the buy button way down and tanks conversions. Fix: the gallery must be
thumbnail_slider, a horizontal carousel with thumbnails, confirmed in the markup. - Coloured section backgrounds. Looks cheap. Fix: white everywhere, and remember to check the global footer and header groups, not just the PDP sections, because that's where a stray colour usually hides.
- Add to Cart landing on a cart page. Every extra click loses impulse buyers. Fix: add exactly one unit and go straight to checkout, no cart page in between.
- QA'ing by faking mobile in a browser. Flaky and slow, and it's not your job. Fix: confirm the build with curl and grep on the markup, and hand the visual phone pass to me.
- Letting Alexander invent copy or reviews. Fake proof is a legal and trust problem, and it's off-brand. Fix: only the approved Module 03 copy and Module 04 images go on the page, if there's a gap, close it upstream.
- The store going public early. No password page means strangers (and competitors) can see an unfinished store. Fix: keep it password-protected the whole build, and tell me immediately if it's ever open.
Templates & checklists
Part A, store shell checklist (every line must be yes):
STORE SETUP, <brand>
□ Logged in, working theme = named unpublished duplicate of house theme
□ Store still password-protected
□ Exactly ONE product added, status Active
□ Price, compare-at, cost, weight all filled from Intake Form
□ All Module 04 images uploaded in gallery order
□ Inventory tracked, SKU set
□ COD live as a manual payment method
□ PayU staged (keys are Sovansh's step), Stripe OFF, Shopify Payments OFF
□ Checkout trimmed (phone contact, minimal fields, no notes/tips)
□ India shipping zone with correct rate (usually free)
□ Correct domain attached OR exact domain flagged to Sovansh
□ Facebook & Instagram sales channel installed (pixel connects in Mod 06)
Part B, PDP QA checklist (run on the preview URL):
PDP QA, <brand>
□ curl status = 200
□ Every included section present and in correct order (grep headlines)
□ White background throughout (incl. footer-group + header-group)
□ Gallery = thumbnail_slider carousel (not stacked/vertical)
□ Sticky bottom CTA present in markup
□ Fluid responsive units (clamp/vw/%), not fixed px layout
□ Sample image URLs return 200 with real content-length
□ Add to Cart = adds 1, straight to checkout, no cart page, no error
□ COD offered at checkout, test COD order places successfully
□ Nothing invented (copy/reviews/stats all from Modules 03 and 04)
Handoff-to-deploy message (send me when Part B is built):
PDP built for <brand>, ready to deploy to the working theme.
Sections included: <list>
Section files + product template attached/in <location>.
All copy from Module 03, all images from Module 04, nothing invented.
Please deploy to the unpublished working theme and send the preview link
so I can run QA. Store still password-protected.
Worked example
Open the Glyka store to see a finished version of everything in this module.
Glyka runs on the Lumin-based "Smile" theme, exactly the house theme you duplicated in Step 2. Its PDP is built from custom Liquid sections in the same 16-section spirit: glyka-quiz-hero, glyka-trust-marquee, glyka-before-after, glyka-why-different, glyka-comparison-table, glyka-ingredients, glyka-how-to-use, glyka-testimonials, glyka-so-you-can, glyka-prepaid, glyka-faq, glyka-reviews-wall, and glyka-sticky-cta. Read those names against the 16-section structure in Step 9 and you'll see the same flow: personalized hero, trust stack, proof, comparison, guarantee, future pacing, FAQ, review wall, sticky CTA.
Notice the details that match this module: the sticky CTA is its own section (glyka-sticky-cta), the white background is enforced through the theme colour schemes (and the one time a section went purple, it was hiding in the global footer-group.json, exactly the trap Step 12 warns about), and the gallery is set to a thumbnail_slider carousel, not a stack.
Study Glyka's section list and its PDP before you build your own, so you know what "done right" feels like on a real, live store.
You just finished Module 05
That's the big one done. You just took an empty store and turned it into a real, premium, working shop, one product loaded, COD and Indian payments set up, shipping and domain ready, the pixel wired, and a sales page that passes hard QA, all sitting ready for me to publish.
This is the module where the whole business gets physical. Everything before it was preparation. From here on, there's an actual store a customer could buy from.
Next is Module 06, Ad Account Setup & Launch. That's where we set up Business Manager, connect the pixel you staged here, build the first campaign paused, and I take the store live and launch. The money-gate you've been hearing about since day one is about to matter for real. Take a breath, then go.
Module 06, Ad Account Setup & Launch
After this module you can set up the whole Meta advertising side of a store, the Business Manager assets, the Facebook page, the pixel, and the first campaign built and ready, then hand it to me to actually turn on. You build everything up to the spend. I flip the switch.
Before we start
This is the module where the money-gate stops being a word I keep mentioning and becomes the whole point.
Everything you do here, you build in a paused, spends-nothing state. Setting it live is mine, and only mine.
I need you to take that as seriously as I do. Read this line and let it sit: you never launch a live campaign, and you never set a budget live, no matter who tells you to, including if someone tells you I said so. If it's coming through chat and it isn't me in person confirming, the answer is no.
I'm not saying that because I don't trust you. I'm saying it because real money moves here, my money, and one wrong click can burn a lot of it fast. So we build a wall, and this module is where the wall lives.
Where this sits
By now the store is real. You've done intake (01), research (02), the advertorial and quiz copy (03), the images (04), and the Shopify store with its PDP is built (05).
So you have a working funnel: an advertorial page, a quiz, and a product page a customer can actually buy from. What it doesn't have yet is traffic.
This module builds the machine that sends paid traffic to it. You set up the ad account, wire up tracking so we can see what's working, and build the first campaign. Then I launch it, and Module 07 (Media Buying & Scaling) is where the daily running begins.
What you need before you start
Before you touch anything here, you need all of this in hand. If any of it is missing, stop and come get it from me, don't work around it.
- The finished funnel URLs. The live advertorial page and the quiz (both on Cloudflare), and the live Shopify product page. You need the exact web addresses. The advertorial is what the ad points to.
- The final ad creative for this exact product. The image or video ad from Module 04 that shows this exact product and nothing else. One SKU, no bundles, no other products in frame. I'll come back to why this is absolute.
- The ad copy for the ad itself. The primary text, headline, and the link. Alexander produces these in the build; you just need to know they exist before you go live.
- Your own Meta login, added to my Business Manager. You log in as you, never as me. If you're not added yet, that's step zero. Come to me.
- The product's economics from the Intake Form. Selling price, target AOV, and the break-even numbers, so you can sanity-check the campaign is even set up to make money. Orbit's Finance Calculator has these per brand.
If you have all five, you're ready. If not, get the missing one first.
Two terms before we go, because they get used constantly:
- Business Manager (Meta calls it Meta Business Suite / Business Settings) is the control panel that owns all our advertising assets: pages, ad accounts, pixels. It belongs to the business (me). You work inside it with your own login and your own access level. You never own it, and you never touch the payment method on it.
- Pixel (Meta now calls it a dataset) is a small piece of tracking code that sits on our pages. It tells Meta what visitors do (viewed the page, added to cart, bought), so Meta can optimize the ads toward people who buy. No pixel, no optimization, we'd be flying blind.
Execute or prepare?
You prepare. You do not execute the launch.
Here's the clean split. You execute the setup: the page, the ad account assignment, the pixel install, verifying the pixel fires, and building the campaign in a paused state. All of that is yours, do it fully.
You prepare the launch: the campaign gets built with every toggle OFF, spending zero, and then it comes to me to turn on. Going live is not yours. Raising a budget is not yours. Ever.
There's also a piece that's purely mine and never yours: funding the ad account. Our ad spend is paid for through a USDT route (a crypto-funded USD ad account via an agency), and that funding, the money side, is my job. You never load funds, never enter a card, never touch the balance. If a campaign can't spend because it's unfunded, that's a me problem, you flag it and I handle it.
The step, start to finish
Work through these in order. Screen-record markers show where I'll film the exact clicks so you can follow along on video.
Step 1, Confirm your access before you build anything
Open Business Settings at https://business.facebook.com/settings and log in with your own Meta account.
You should land inside my business, not a prompt to create a new one. If Meta asks you to "Create a business," stop. That means you haven't been added yet. Come to me, I'll add you, don't create a separate business.
In the left menu, check three things exist and you can see them:
- Click Accounts, then Pages. You should see our brand pages here (or be about to create this store's page in Step 2).
- Click Accounts, then Ad accounts. You should see at least one ad account you have access to.
- Click Data sources, then Datasets (older wording: Pixels). This is where tracking lives.
If you can see those three sections, your access is good. If any of them says you have no access or shows nothing and you know assets exist, that's an access gap, tell me the exact one and I'll fix it. Don't try to grant yourself access, you can't, and you shouldn't.
🎥 Screen recordlogging into business.facebook.com/settings with an operator account, showing Pages, Ad accounts, and Datasets in the left menu, and what "you're inside the business, not creating a new one" looks like.
Step 2, Create the Facebook page for the brand
Every ad runs from a Facebook page. It's the identity the ad shows up under. So the store's brand needs a page.
First, check it doesn't already exist. In Business Settings, Accounts then Pages. If the brand's page (say "Kairova") is already there, skip to Step 3, don't make a duplicate.
If it's not there, create it:
- In Accounts then Pages, click the blue Add button, then Create a new Page.
- Page name: the brand name exactly as it is everywhere else (the same spelling as the domain and the store). If the store is Kairova, the page is Kairova. No taglines, no "official," just the brand.
- Category: pick the closest fit for the product. For a beauty or personal-care product, "Beauty, cosmetic & personal care" or "Health/beauty." For a fitness device, "Product/service." If you're unsure, "Product/service" is a safe default.
✎ Note to selfconfirm the standard category we use per product type, if we have a fixed one. - Click Create.
- It'll ask you to assign people. Confirm you (the operator) have access, and leave the ownership as the business.
Done right, the new page shows up in the Pages list under the business, with the brand name spelled exactly right.
Now give it a face. A page with no profile picture looks fake and hurts trust and delivery. Add:
- Profile picture: the brand logo (from the store assets).
- Cover / basic info: keep it clean and on-brand. It doesn't need to be elaborate, but it can't be empty.
🎥 Screen recordcreating a brand page in Business Settings, naming it, picking category, adding the logo as profile picture, and it appearing in the Pages list.
Step 3, Confirm the ad account (do not create or fund one)
The ad account is the account the campaigns live in and spend from. This is the funded, money-touching asset, so handle it carefully.
Do not create a new ad account and do not add any payment method. Our spend runs through a specific funded account that I set up on the funding side. Creating a random new INR account or dropping a card in would put spend on the wrong rails.
What you do here is confirm the right account exists and is assigned to you:
- In Business Settings, Accounts then Ad accounts.
- Find the ad account for this store (I'll tell you which one, or it'll be named for the brand).
✎ Note to selfconfirm how we name/assign the ad account per new store, and whether a fresh store reuses an existing funded account or needs a new funded one from the agency. - Click it, and under People or Assigned partners, confirm you have access to it (you should be able to manage campaigns).
- Note the ad account ID (a number like
act_1234567890). You'll need it when building.
If the store needs a brand-new funded ad account, that's my job to provision through the agency, because it's tied to the USDT funding. You flag it, I set it up, then I hand you the account to build in.
Done right: you can open Ads Manager for this account, and it shows the store's ad account, ready to build in but with nothing running yet.
Step 4, Set up and install the pixel (dataset), then prove it fires
This is the most important technical step in the module. If the pixel is wrong, every number we make decisions on later is wrong. So we set it up carefully and then we prove it works, we don't assume.
Quick picture of our funnel so the tracking makes sense. A customer clicks the ad, lands on the advertorial (Cloudflare), goes through the quiz (Cloudflare), then hits the product page and checkout (Shopify). We want the pixel firing across all of those with the same dataset ID, so Meta sees the whole journey and can attribute a purchase back to the ad.
4a. Create or find the dataset.
- Go to Events Manager at https://business.facebook.com/events_manager2.
- If a dataset for this store already exists, use it, don't make a second one. One dataset per store.
- If not, click Connect data sources then Web, click Connect, name it after the brand, and create it.
- Copy the dataset ID (a long number). This one ID goes on every page of the funnel.
4b. Install the pixel on the Shopify store (where the purchase happens).
The Purchase, the actual sale, fires on Shopify's checkout, so Shopify tracking is the piece that matters most. Shopify has a built-in way to connect Meta, so we use that rather than pasting code.
- In Shopify admin, install/open the Facebook & Instagram sales channel app (or Settings then Customer events).
✎ Note to selfconfirm which method we standardize on: the Facebook & Instagram app, or a Customer events pixel, for our stores. - Connect it to our Business Manager and select this store's dataset.
- Turn on the standard events, we specifically need ViewContent, AddToCart, InitiateCheckout, and Purchase.
- Make sure Conversions API is on if it's offered (this is server-side tracking that catches events the browser pixel misses, and it matters a lot for COD accuracy).
4c. Install the pixel on the Cloudflare pages (advertorial + quiz).
These are static HTML pages, so the base pixel code goes in the page's <head>. Alexander handles the actual code (see the How to direct Alexander section), you make sure it ends up on both the advertorial and the quiz, using the same dataset ID.
4d. Verify it fires. This is non-negotiable, don't skip it.
Two ways, do both:
- Meta Pixel Helper. Install the "Meta Pixel Helper" Chrome extension. Open the live advertorial URL. Click the extension. It should show the dataset ID and a PageView event. Then click through the quiz and to the product page, watching the events appear. On the PDP you should see ViewContent. Add to cart, you should see AddToCart.
- Events Manager, Test Events. In Events Manager, open the dataset, click Test events, paste the advertorial URL, and walk the funnel yourself. Watch the events land in real time: PageView on the advertorial, ViewContent on the PDP, AddToCart, InitiateCheckout. Do a full test order if we have a test mode, so you can confirm Purchase fires.
✎ Note to selfconfirm how we place a safe test purchase (test-mode order or a real COD order we then cancel) to verify the Purchase event without messing up real numbers.
Done right: you've seen, with your own eyes, PageView, ViewContent, AddToCart, and Purchase all firing under one dataset ID across the funnel. If Purchase doesn't fire, the campaign cannot optimize for sales, so this has to be green before you move on.
🎥 Screen recordthe full pixel verification: Pixel Helper on the live advertorial showing the dataset ID and PageView, then Test Events in Events Manager catching ViewContent on the PDP, AddToCart, and a test Purchase.
Step 5, Build the first campaign, PAUSED
Now the campaign itself. Read this whole step before you click anything, because the order matters and the paused state is the whole game.
The rule that governs everything: you are building this with every toggle OFF. It will exist, fully built, spending zero, waiting for me. You never flip it on.
Open Ads Manager at https://business.facebook.com/adsmanager, and make sure the top-left account selector shows this store's ad account (from Step 3). Building in the wrong account is a classic mistake.
5a. Create the campaign.
- Click the green + Create.
- Objective: choose Sales (older wording: Conversions). We are selling a product, we want purchases, so it's always Sales. Not Traffic, not Engagement, not Awareness. Sales.
- Click Continue.
- Campaign name: name it clearly so anyone can read it at a glance. Use the pattern
[Brand] | [Product] | TOF | [Avatar] | [Date]. Example:Kairova | FitPro EMS | TOF | Avatar1 | 16Jul. "TOF" means top of funnel, cold strangers, which is what a launch always is. - Advantage campaign budget (CBO): turn this ON. CBO means the budget sits at the campaign level and Meta spreads it across the ad sets automatically. We run CBO, always, it keeps things simple and lets Meta optimize.
- Campaign budget: this is a spend field. Leave it at the value I give you and do not raise it. Setting or changing this number live is a money-gate action, it's mine.
✎ Note to selfconfirm the standard starting daily budget per launch, so the operator enters the agreed number and nothing else.
5b. Set up the ad set (the audience layer).
- Ad set name: name it for the angle it's testing, for example
Broad | 18-45 | India. - Conversion location: Website.
- Performance goal: Maximize number of conversions.
- Conversion event: Purchase. This tells Meta to find buyers, not clickers. Make sure the dataset shown is this store's dataset from Step 4.
- Budget: with CBO on, budget is at the campaign level, so there's nothing to set here. Good.
- Audience: keep it broad. This is important and it's counterintuitive. Do not add interest targeting. Set the location to India, age roughly 18 to 45 (or the product's range if I told you a specific one), and gender per the product (a women's product targets women, a men's product targets men, otherwise all). No detailed interests. We let the creative and the pixel find the buyer, not hand-picked interests.
- One avatar and one location per campaign. Don't stuff multiple audiences into one campaign, they'll compete and muddy the data.
- Placements: Advantage+ placements (automatic). Let Meta place the ad everywhere and sort out where it works.
- Attribution setting: click into it and set 7-day click. Not 1-day click, not 1-day view. 7-day click is the standard we judge everything on. This one setting quietly decides how we read performance, so get it right.
5c. Build the ad (the creative layer).
- Ad name: name it for the creative, for example
Static | ExactSKU | Hook-A. - Facebook Page: select the brand page from Step 2. Instagram account: the brand's, or use the Facebook page if there isn't one.
- Ad setup: Manual upload (we're using our own creative, not a catalog).
- Media: upload the exact-SKU creative from Module 04. This is a hard line: the ad must show this exact product and nothing else. No bundles, no other SKUs, no look-alike variant, no "family" shot. We model our creative off the exact product's own winning ads for a reason, and an off-target creative wastes spend and pollutes the test. One product, in frame, that's it.
- Primary text, headline, description: paste the ad copy Alexander wrote.
- Website URL: the advertorial URL (the Cloudflare page), not the raw product page. The ad sends cold traffic to the advertorial, which does the selling and then links through to the PDP. Double-check this URL is the advertorial and that it loads.
- Call to action button: "Learn More" or "Shop Now" per the funnel.
✎ Note to selfconfirm our default CTA button for advertorial-led ads. - Check the ad preview on the right renders correctly: right image, right copy, working link.
5d. Set everything to OFF and save it paused.
This is the step that keeps you on the right side of the wall.
- At the ad level, find the On/Off toggle and set it to Off.
- Go up to the ad set level, set its toggle to Off.
- Go up to the campaign level, set its toggle to Off.
- All three levels must read Off / Paused before you save. Check all three, twice.
- Now click Publish. Because every toggle is Off, publishing saves the campaign in a Paused state. It exists, it's complete, and it is spending nothing.
Publishing here does not mean launching. With the toggles off, Publish is just "save." The campaign will sit in Ads Manager greyed out with an "Off" status. That's exactly what we want.
Done right: the campaign shows in Ads Manager with the status Off, correctly structured, correct dataset, exact-SKU ad pointing at the advertorial, 7-day click attribution, and it has not spent a single rupee.
🎥 Screen recordbuilding the full campaign in Ads Manager (Sales objective, CBO, broad India audience, Purchase event, 7-day click, exact-SKU ad to the advertorial URL), then setting all three toggles to Off and Publishing so it saves as Paused with zero spend.
Step 6, Log it and hand it to me to launch
You've built it. You do not launch it. This is the handoff.
- In Orbit, open the product and move its stage to Testing Ads (the stage after Testing Store Page Done). This tells the whole system the store is built and waiting on launch.
- Also add the campaign to Orbit's OPS Ads and, if there's a matching advertorial, the LPs tracker, so this campaign and landing page are tracked from day one.
✎ Note to selfconfirm exactly what the operator logs into OPS Ads vs LPs at build time vs after launch. - Send me the launch-ready summary (template's in the checklist section) via ntfy, so I get pinged. It tells me the campaign is built, paused, QA'd, and ready.
Then you stop. I review it, I fund and launch it. When I flip the toggles on, spend starts, and that's the moment your Module 07 job (running it) begins.
🎥 Screen recordmoving the product to Testing Ads in Orbit and sending the launch-ready ntfy summary to me.
How to direct Alexander
Alexander does the fiddly building and the checking so you can focus on getting it right. Three jobs here.
Job 1, generate the pixel code for the Cloudflare pages. Open a task in the console and paste:
I need the Meta base pixel code to install on our advertorial and quiz pages
(static HTML on Cloudflare). Dataset ID: <paste the dataset ID from Events
Manager>. Give me the exact <script> block to place in the <head> of both pages,
firing a standard PageView. Then tell me, page by page, exactly where in the
HTML it goes. Do NOT invent a dataset ID. Use the one I gave you.
Good output is a clean code block using the real dataset ID you gave it, plus clear placement instructions. If it makes up a dataset ID or uses a placeholder, stop and give it the real one.
Job 2, QA the pixel setup. After you think tracking is installed, have Alexander pressure-test it:
Here's our funnel: ad -> advertorial (Cloudflare) -> quiz (Cloudflare) -> PDP +
checkout (Shopify). Dataset ID <paste>. I want to confirm tracking is correct.
List every standard event that should fire and on which page (PageView,
ViewContent, AddToCart, InitiateCheckout, Purchase), and give me a step-by-step
I can run in Events Manager Test Events to prove each one fires. Flag anything
about COD checkouts that could make Purchase events unreliable.
Good output is a page-by-page event map and a test script you can actually follow. It should call out that COD purchases sometimes need the Conversions API to track reliably.
Job 3, draft and sanity-check the campaign structure. Before you build in Ads Manager:
Build me the launch campaign spec for a new store, following our blueprint:
Sales objective, CBO on, one avatar + one location, broad (no interest
targeting), optimize for Purchase, 7-day click attribution, one ad using the
EXACT-SKU creative pointing to the advertorial URL. Product: <name>. Brand:
<brand>. Selling price <price>, target AOV <aov>. Give me: exact campaign name,
ad set name, ad name, the audience settings, and the ad copy (primary text,
headline). Confirm this is built PAUSED and that launching it is Sovansh's call,
not yours.
Good output gives you clean names, the audience spec, and ad copy, and it explicitly says it's paused and that launch is mine. If Alexander ever offers to "just launch it" or set a live budget, that's the money-gate, and its own rules stop it there. If it doesn't stop itself, you stop it. Neither of you launches.
What you decide & QA
You own three calls in this module.
Call 1, is the pixel actually firing?
- Pass: you personally watched PageView, ViewContent, AddToCart, and Purchase fire under the one correct dataset ID, in Pixel Helper and in Events Manager Test Events.
- Fail: you "installed it" but never confirmed events, or Purchase doesn't fire, or there are two datasets and events are split. If it fails, the campaign is worthless, fix tracking before anything else.
Call 2, is the campaign built exactly to blueprint?
- Pass: Sales objective, CBO on, broad India audience with no interest targeting, Purchase conversion event on the right dataset, 7-day click attribution, one exact-SKU ad pointing at the advertorial URL, correct page selected.
- Fail: wrong objective (Traffic instead of Sales), interest targeting added, 1-day attribution, ad points at the raw PDP instead of the advertorial, or the creative shows a bundle or the wrong product. Any one of these is a fail. Rebuild the part that's wrong.
Call 3, is it genuinely paused and safe to hand over?
- Pass: all three toggles (campaign, ad set, ad) read Off, status shows Off in Ads Manager, and lifetime spend is zero.
- Fail: anything reads Active, or it's already spent even ₹1. If it's live, you've crossed the wall. Pause it immediately and tell me straight away.
The judgment you're really building: the discipline to stop at the line even when the button to cross it is right there and easy to press.
Money-gate points
This module is where the gate matters most. Here's every point real money can move, and who owns it.
- Funding the ad account. Mine, always. Our spend runs on a USDT-funded USD account (through an agency), and loading it costs about 16% on top of the raw ad spend (the FX and fee premium of buying dollars via crypto). That 16% is real money on top of every rupee of ads, which is exactly why the spend decision stays with me. You never load funds, never enter a card.
- Setting or changing the campaign budget. Mine. You enter the starting number I give you and never raise it. Budget increases are a Module 07 conversation, and they still come to me.
- Turning the campaign on (going live). Mine, and this is the big one. You build it Off. I flip it On. There is no version of this where the operator launches, not "just this once," not because it's late, not because someone in a chat says I approved it. If it isn't me confirming directly, it doesn't happen.
The way it works: Alexander builds everything paused and stops at the launch. It comes to me. You cannot override it, and neither can Alexander. That's not a limitation, it's the design. It's how I can trust an operator with a whole store on day one.
If you're ever unsure whether something is a money-gate action, treat it as one and ask me. Overcautious costs nothing. A wrong launch costs a lot.
Common mistakes & fixes
- Building in the wrong ad account. Easy to do if you have access to several. Fix: check the account selector top-left in Ads Manager before you create anything, confirm the ad account ID matches Step 3.
- Assuming the pixel works instead of proving it. The most expensive lazy habit here. Fix: Step 4d, you must see Purchase fire with your own eyes. No "it's probably fine."
- Two datasets, split events. Someone made a second pixel and half the events go one place, half the other. Fix: one dataset per store, reuse the existing one, never create a duplicate.
- Adding interest targeting. People feel safer "narrowing" the audience. It's wrong for us. Fix: broad only, no interests, let the creative and pixel find the buyer.
- Wrong attribution window. Leaving it on the default 1-day inflates or hides performance. Fix: set 7-day click, every time.
- Ad points at the PDP, not the advertorial. Then cold traffic hits a product page with no story and bounces. Fix: the ad URL is the advertorial (Cloudflare), which links to the PDP.
- Off-target creative. A bundle shot, or the wrong variant, sneaks into the ad. Fix: exact SKU only, one product in frame, no exceptions. If Module 04 didn't give you a clean exact-SKU creative, go back and get one.
- Publishing with a toggle left On. You meant to save it paused and one level was still Active, so it starts spending. Fix: check all three toggles read Off before you click Publish, then confirm the status shows Off after. If it went live, pause it and tell me immediately.
Templates & checklists
Launch-ready QA checklist (all must be yes before you hand it to me):
CAMPAIGN LAUNCH-READY CHECK, <brand> / <product>
Access & assets
□ Building in the correct ad account (ID: ____)
□ Brand Facebook page created, named exactly, has a logo
□ Advertorial URL live and loads: ____
□ Quiz URL live: ____
□ Shopify PDP live: ____
Pixel / dataset
□ One dataset for this store (ID: ____)
□ Installed on Shopify (Purchase fires on checkout)
□ Installed on advertorial + quiz (same dataset ID)
□ Verified in Pixel Helper: PageView, ViewContent, AddToCart seen
□ Verified in Test Events: Purchase fires
Campaign (built PAUSED)
□ Objective: Sales
□ CBO on, budget = the number Sovansh gave, not raised
□ Audience: broad, India, correct age/gender, NO interest targeting
□ Conversion event: Purchase, on the correct dataset
□ Attribution: 7-day click
□ Ad: exact SKU only, correct copy, points to the ADVERTORIAL url
□ Correct brand page selected
□ Ad preview renders correctly
Paused & safe
□ Campaign toggle: OFF
□ Ad set toggle: OFF
□ Ad toggle: OFF
□ Status in Ads Manager reads OFF, lifetime spend = 0
Handoff
□ Product moved to "Testing Ads" in Orbit
□ Sent launch-ready summary to Sovansh (ntfy)
Launch-ready summary to send me (fill and ntfy):
LAUNCH-READY: <brand> / <product>
Campaign built and PAUSED, QA passed. Ready for you to launch.
Ad account: ____
Campaign name: ____
Daily budget as set: ____
Audience: broad, India, <age/gender>
Objective: Sales / Purchase, 7-day click, CBO on
Ad: exact-SKU creative -> advertorial (<url>)
Pixel: verified, Purchase fires
Not launched. All toggles off, zero spend. Your call to go live.
Worked example
Open the media buyer kit in the vault at funnels/sites/alexander-docs/media-buyer-kit/index.html and read the "Access & safety" and "Scorecard" sections.
It's written for hiring a media buyer, but it spells out the exact guardrails you just built around: Business Manager access only (never ownership, never my login), an account-level spend cap so a mistake can't drain the card, and every number reported into Orbit. That's the same wall this module puts you behind.
Also open Orbit's OPS Ads and LPs trackers (in the dashboard) and look at a live product like LUME. You'll see a real campaign and its advertorial tracked with ROAS against break-even, live/paused/killed status. That's where the campaign you just built shows up once it's running, and it's what Module 07 is all about.
Study both so you can picture the finished, running version of what you just prepared.
You just finished Module 06
That's the hardest wall in the whole training, and you just learned to stand behind it.
You can now set up the entire Meta side of a store, the page, the account, the pixel, and a correctly built first campaign, and you know cold where your job stops and mine begins. Building up to the spend is a real skill. Stopping cleanly at the spend is the thing I trust most.
Next up is Module 07, Media Buying & Scaling, where the campaign is live and you run it: reading the data, killing losers, and scaling winners by the rules, with every budget move still coming to me. Take a breath, then go.
Module 07, Media Buying & Scaling
After this module you can run your store's ads every day, read the numbers correctly against breakeven net of RTO, kill what's losing money on your own, and hand me clean scale proposals when something is genuinely winning.
Where this sits
In Module 06 you set up the ad account, the pixel, and the first campaign, and I launched it. So right now your store is live and spending real money on Meta.
This module is everything that happens after that launch: the daily grind of reading the account, cutting the losers, and growing the winners. This is the module where a good operator's store stops being "just launched" and starts actually printing.
Next is Module 08, where you handle the fulfillment side, the COD confirmations and the RTO that decide whether the sales you're buying here actually turn into money.
What you need before you start
You need four things in place before you touch the account:
- A live campaign, launched by me in Module 06. If nothing is live yet, you're not on this module yet, go finish 06.
- Meta Ads Manager access to your store's ad account. Ads Manager is Meta's control panel where you see spend, sales, and ROAS and make changes. If you can't log in, that's step zero, come get access from me.
- Orbit access. Orbit is my internal system where every store, order, and number lives. You'll read your store's live delivery and RTO rate here, and log your daily numbers here.
- Your store's number card. These are the exact kill and scale lines for your specific store. I give them to you, and they're different for every store. I've put the two live ones (Kairova and Kyvant) in the Templates section at the bottom. If your store isn't there, ask me for its card before you make a single call.
Execute or prepare?
This one is split, and the split is the whole point of the module.
Kills and pauses you execute yourself. Cutting a losing ad set, pausing a dead ad, dropping a budget, these all make the store spend less. Spending less is protective, so you don't need me. You do it the moment the rule says to.
Scales you prepare and hand to me. Raising a budget, removing a spend cap, launching a new campaign, anything that makes the store spend more, is behind the money-gate. You build the proposal with the numbers, you send it to me, I approve it, then it goes live. You never raise spend or launch on your own.
The simple test: if your action makes the store spend more per day, it's a proposal to me. If it keeps spend flat or lower, you own it.
The step, start to finish
Step 1, The daily routine
You check the account once a day, at the same time every day. Pick a time (say 11am) and hold it. Checking at random times means you're comparing days that aren't finished, and you'll make bad calls on half-baked data.
Do the full loop every day, even on good days. The days you skip because "it looked fine yesterday" are the days a loser quietly burns your budget.
Here is the loop, and the rest of this module is each piece of it in detail:
- Open Ads Manager and set it up right (attribution and dates).
- Read every ad set against your store's kill and scale lines.
- Kill anything below breakeven (you do this yourself).
- Flag anything above target as a scale proposal (you send this to me).
- Check the live delivery and RTO rate in Orbit.
- Log your numbers into Orbit.
🎥 Screen recordme doing one full daily loop end to end on a real account, so you see the rhythm before you break it into pieces.
Step 2, Set up Ads Manager so the numbers are honest
Before you read anything, you have to make Ads Manager show you the truth. Two settings decide this, and if either is wrong, every call you make after is wrong.
First, the attribution window. Attribution is how Meta decides which sales to credit to your ads. We always use 7-day click, which means "count a sale only if the person clicked the ad and bought within 7 days."
- Open Ads Manager at business.facebook.com/adsmanager and pick your store's ad account from the account dropdown at the top left.
- Above the table of campaigns, find the Columns button and click the small dropdown arrow next to it, then click Customize columns.
- In the window that opens, look at the top right for the Attribution setting (sometimes shown as "Comparing windows"). Click it.
- Set it to 7-day click only. Turn off 1-day view and 1-day click if they're ticked. Click Apply.
We never use 1-day view. It counts people who just saw the ad and later bought, which massively inflates your ROAS and tricks you into scaling junk. 7-day click is the honest number.
Second, the date range. You always read the last 3 days, not yesterday alone. One day is noise, three days is a signal.
- Top right of the table, click the date selector (it usually shows "Today" or a date range).
- Choose Last 3 days. Make sure it does not include today, because today is unfinished. If "Last 3 days" includes today on your setup, pick the custom range of the 3 full days before today instead.
🎥 Screen recordthe exact clicks to set 7-day click attribution and the last-3-days range, and what the columns look like when it's right.
The columns you actually read. With attribution and dates set, make sure these columns are visible in the table (they're in the same Customize columns window): Amount spent, Purchases, Cost per purchase, and Purchase ROAS.
Here's what each one means, so nothing is a mystery:
- Amount spent is what you paid Meta in that window.
- Purchases is the number of orders placed (people who checked out).
- Cost per purchase is CPA, cost per acquisition, which is spend divided by purchases. It's what one order cost you to buy.
- Purchase ROAS is return on ad spend, the rupee value of orders placed divided by ad spend. A ROAS of 3.0 means every ₹1 of ad spend produced ₹3 of orders placed.
Step 3, Read the numbers against breakeven net of RTO
This is the most important idea in the whole module, so read it slowly.
The ROAS Meta shows you is on orders placed, not orders paid. In COD (cash on delivery, where the customer pays the courier at the door, which is how most of our cold traffic buys in India), a chunk of those placed orders never get paid. The customer isn't home, refuses the parcel, or changes their mind, and it comes back to us. That's RTO, return to origin.
So a "3.5 ROAS" on Meta is not 3.5 of real money. If 20% of orders RTO, only 80% actually get delivered and paid. Your real, collected ROAS is lower than the screen says.
This is why every store has a BEROAS, a breakeven ROAS. BEROAS is the Meta-reported ROAS at which the store makes exactly zero profit, after the RTO losses and after the 16% overhead we pay to fund ads (buying dollars through USDT to pay Meta costs us about 16% over the raw ad spend). It's already got the RTO and the fee baked in. That's what "net of RTO" means: the line is drawn where it needs to be so that clearing it means real profit, not screen profit.
So the rule is simple. Compare your ad set's reported 7-day-click ROAS to your store's BEROAS.
- Above BEROAS, the store makes money on that ad set.
- Below BEROAS, it loses money on every order, no matter how good the screen "feels."
For the two live stores, the lines are:
- Kairova (FitPro EMS abs stimulator), order value about ₹2,550: BEROAS is 1.38. Target ROAS is 3.5. Assumed delivery rate 80% (so 20% RTO).
- Kyvant (LUME under-eye), order value about ₹1,499: BEROAS is 1.43. Target ROAS is 2.6. Assumed delivery rate 85% (so 15% RTO).
Notice the two stores have completely different target ROAS numbers (3.5 vs 2.6), and both are healthy. That's the lesson: never carry a ROAS number from one store to another. A 2.6 is a loser on Kairova and a strong winner on Kyvant. You read against your store's own lines, nothing else.
One more piece, and it's the COD trap. The BEROAS I gave you assumes a delivery rate (80% for Kairova, 85% for Kyvant). If the real delivery rate drops, more orders RTO, and your BEROAS silently climbs. An ad set that was safely above breakeven can fall below it without its ROAS moving at all, purely because delivery got worse.
That's why Step 5 exists. You never read Meta's ROAS in isolation. You always check the live delivery rate in Orbit alongside it.
Step 4, The kill rules (you do these yourself)
You look at each ad set's 3-day, 7-day-click ROAS and sort it into one of three bands.
Band 1, Kill. The ad set is below BEROAS for 3 straight days. It's losing money on every order. Cut it. You don't need me, because you're spending less.
- Kairova: below 1.38. Kyvant: below 1.43.
- How to cut: in Ads Manager, find the ad set row, and click the on/off toggle on the left of that row to turn it off. Confirm it now shows "Off."
🎥 Screen recordtoggling a losing ad set off, and confirming it reads Off.
Band 2, Hold. The ad set is above BEROAS but below target. It's making some money but not enough to scale. Leave it running, don't touch the budget, and note it for a creative refresh (Step 6). If it sits in the bottom half of this band for a full week with no climb, it's barely worth the cash it ties up and the RTO risk it carries, so trim it back toward minimum spend or cut it.
- Kairova: between 1.38 and 3.5. Kyvant: between 1.43 and 2.6.
Band 3, Scale-eligible. The ad set is at or above target for 3 straight days, with clean attribution. This is a winner, and it goes to Step 5 as a proposal to me. You do not raise its budget yourself.
- Kairova: 3.5 or above. Kyvant: 2.6 or above.
One guardrail on the read: only trust an ad set that has enough sales behind the number. An ad set with 2 purchases showing a 6.0 ROAS is noise, not a winner. Wait until it has at least 10 to 15 purchases in the window before you act on its ROAS in either direction. Below that, the number will swing wildly day to day.
Two things you never do, straight from the campaign rules:
- Never turn off the main campaign. Turning off individual losing ad sets is fine. Turning off the whole main campaign wipes the optimization history Meta has learned, and you can't get it back. In a bad stretch you drop the main campaign to minimum spend, you never kill it.
- Never make a call on less than 24 to 48 hours of data. A fresh ad set is still in the learning phase (the period where Meta is figuring out who to show it to and the numbers are unstable). Give it its 3-day read before you judge it.
Step 5, The scale rules (you propose, I approve)
When an ad set clears the scale-eligible line, you don't touch it. You build a proposal and send it to me. Scaling means spending more, and spending more is always my call.
Before you even propose, the winner has to pass three checks:
- 3 straight days at or above target ROAS (Kairova 3.5+, Kyvant 2.6+).
- At least 10 to 15 purchases in the window, so the number is real.
- 70% or more of its sales are click-based (not view-based). You check this by comparing the 7-day-click ROAS to the "all" attribution ROAS. If most of the credit is coming from clicks, it's a genuine winner. If most is coming from views, the demand is soft and it'll collapse when you scale it, so don't propose it.
If it passes all three, here's the raise you propose, based on how strong it is:
- Strong winner (all 3 days clearly above target, 70%+ click): propose +50% to +100% on the budget.
- Solid performer (2 to 3 days above target, 70%+ click): propose +20% to +50%.
You raise budgets gently, by percentages, not by doubling to the moon in one jump. A hard yank resets the ad set back into the learning phase and can tank a winner. After any raise I approve, you leave it 48 to 72 hours to settle before proposing the next one.
There's also a quieter way to grow that doesn't spend more, and this part you can do yourself: winner stacking. When an ad has proven itself, you duplicate it into the campaign's "Winners" ad set so the winning creative gets more of the budget the campaign already has. Because the total campaign budget doesn't change, no new spend, so it's yours to do.
- How to duplicate: click the winning ad's row, click Duplicate in the toolbar above the table, and in the destination pick the existing Winners ad set. Keep the same settings. This keeps the ad's existing engagement (likes and comments), which duplicating preserves and rebuilding from scratch loses.
🎥 Screen recordduplicating a proven ad into the Winners ad set at the same campaign budget.
Here is exactly what a scale proposal to me looks like, so I can say yes in ten seconds:
SCALE PROPOSAL, <store> <date>
Ad set: <name>
Last 3 days: ROAS <x.xx> / <x.xx> / <x.xx> (7-day click)
Purchases (3d): <n>
CPA: ₹<n> (target ₹<n>)
Click attribution: <n>% (need 70%+)
Current budget: ₹<n>/day
Proposing: +<n>% → ₹<n>/day
Store delivery rate right now (Orbit): <n>%
Why: <one line, e.g. Respect angle, third day above target, RTO holding>
Step 6, Testing new creatives and angles
Winners fatigue. An ad that crushed for two weeks will slowly die as the same people see it too many times, and the whole account sags. So you're always feeding fresh creative in behind the winners. This is the part that keeps a store alive for years instead of weeks.
The rules for testing:
- Test one thing at a time. A test ad set tries one new angle, or one new format, not a mix. If you change five things and it wins, you've learned nothing about why.
- Never mix videos and images in the same ad set. They optimize differently. Keep video ad sets and image ad sets separate.
- Test into your store's proven lanes first. Every store has angles I already know convert. New creative should mostly push harder on those, plus a few genuine new swings.
- Kairova's proven lanes: Respect (the volume king), Flat stomach and Skinny-fat (the most efficient), Desk worker (solid). The higher-AOV emotional angles, Be wanted and Looking older, are under-scaled and worth pushing with fresh creative, because they buy a higher-value customer.
- Kyvant's proven veins: Marriage and Male-face are the only two really proven, and the real threat there is creative fatigue on those winners, so fresh angles feeding the same male core is exactly the job.
- New angle, existing look: it goes in as a new ad set inside the current campaign at minimum spend, so it doesn't add net new budget. Minimum spend per ad set is roughly 3× your target CPA (Kairova about ₹730 × 3 = ~₹2,200/day, Kyvant about ₹576 × 3 = ~₹1,730/day), which is enough sales for Meta to judge it.
- New landing page or a whole new format: that's a bigger swing and gets its own separate test campaign. A new campaign is new spend, so that one is a proposal to me, not a solo move.
You direct Alexander to actually build the test creatives and angles (that's Modules 03 and 04 work). Your job here is to decide what to test next based on what the account is telling you, and to launch the tests that don't add spend.
Step 7, Check delivery and RTO in Orbit
Before you log your day, open Orbit and confirm the ground under your ROAS numbers hasn't moved.
- Open Orbit at https://shopify-dashboard-taupe.vercel.app and log in.
- In the left menu click Logistics. This shows delivery rate, RTO rate, and COD delivery percentage per store, day by day.
- Find your store and read its current delivery rate.
- Compare it to your store's assumed rate (Kairova 80%, Kyvant 85%).
If the live delivery rate is at or above the assumed rate, your BEROAS lines are valid, carry on. If it's dropped below the assumed rate, stop and message me, because your kill and scale lines are no longer right. When delivery drops, BEROAS rises, and an ad set you thought was safe might actually be underwater. I'll re-issue the lines.
🎥 Screen recordopening Orbit Logistics, reading the store's live delivery rate, and comparing it to the assumed rate.
Step 8, Log the day into Orbit
Last thing, every day. You log the numbers so I can see the store at a glance and so we have a history.
- In Orbit's left menu, go to OPS Ads (creative batch performance per product) and LPs (the per-landing-page ROAS vs BEROAS tracker). Update your store's rows with today's spend, purchases, CPA, and ROAS.
- Then go to Logs in the left menu and write your one daily line: what you killed, what you're proposing to scale, what you're testing, and the store's delivery rate today.
Done right, anyone (me included) can open Orbit and know exactly where your store stands without asking you a single question. That's the standard.
How to direct Alexander
Alexander does the number-crunching and the pattern-spotting so you make the call with a clear head. You give it the raw pull from Ads Manager, it hands you the read. It never touches the account and it never changes spend. It proposes, you decide, I approve any raise.
Daily read and kill/scale sort. Paste your last-3-days pull and this:
You are my media buying analyst. Here is my <store> account pull, last 3 days,
7-day click attribution:
<paste each ad set: name, amount spent, purchases, CPA, ROAS for each of the 3 days>
My store lines: BEROAS <n>, target ROAS <n>, target CPA ₹<n>, assumed delivery
rate <n>%. Live delivery rate in Orbit right now is <n>%.
Sort every ad set into KILL (below BEROAS 3 days), HOLD (above BEROAS below
target), or SCALE-ELIGIBLE (at/above target 3 days, 10+ purchases). For anything
scale-eligible, draft the scale proposal in my template. Do not recommend any
budget raise as final, only draft the proposal for me to send to Sovansh. Flag
any ad set with fewer than 10 purchases as "too little data, hold." If the live
delivery rate is below my assumed rate, say so first and tell me my lines may be
stale.
Good output is a clean three-bucket sort with the reasons, plus drafted proposals for the winners, and a clear flag if the data is too thin or delivery has slipped.
What to test next. When you're deciding the next batch, paste your recent winners and losers and this:
Here's my <store> ad-set performance for the last 2 weeks:
<paste angle names with their ROAS, purchases, and spend>
My proven lanes for this store are: <list them>. Tell me: (1) which winning angles
are showing fatigue (rising CPA or falling ROAS over the two weeks), (2) which
proven lanes are under-scaled and worth fresh creative, and (3) three specific new
angle ideas that sit next to the proven lanes, not random swings. Do not propose
anything that needs new spend without labelling it as a proposal for Sovansh.
Good output points at real fatigue in the data, names the under-worked lanes, and gives you three testable angles you can brief into Modules 03 and 04.
If Alexander ever tells you to raise a budget as a done decision, or acts like it can change the account, stop. Its job is to read and propose. The spend call is mine.
What you decide & QA
You own three judgment calls in this module, and each has a hard pass/fail.
Call 1, is this ad set a kill, a hold, or a scale?
- Pass: every ad set sorted against your store's actual BEROAS and target, on 3-day 7-day-click data, with at least 10 to 15 purchases behind any call you acted on.
- Fail: judging on yesterday alone, on 1-day-view ROAS, on a handful of purchases, or against a ROAS number borrowed from a different store.
Call 2, is this winner really ready to propose scaling?
- Pass: 3 straight days at or above target, 10+ purchases, 70%+ click attribution, and delivery rate holding. Proposal sent to me, budget untouched until I approve.
- Fail: you raised a budget yourself, or you proposed a scale on soft (view-based) demand, or on 24 hours of data.
Call 3, is the store still above breakeven net of RTO?
- Pass: you checked the live delivery rate in Orbit today, it's at or above the assumed rate, and no ad set is running below BEROAS unaddressed.
- Fail: you read Meta's ROAS without checking Orbit, so you never noticed delivery slipping and the store quietly went underwater.
The habit underneath all three: you never trust the screen on its own. You read it against the breakeven, against real data volume, and against what's actually getting delivered.
Money-gate points
- Raising any budget. Alexander stops, you build the proposal, it comes to me, I approve, then it goes live. You cannot raise spend on your own.
- Removing or raising a spend cap (Max Spend Protection, the per-ad-set limit that stops Meta dumping the whole budget into one ad). Taking a cap off lets spend rise, so that's mine to approve.
- Launching a new campaign (a new landing-page test, a new format test with its own budget). New campaign means new spend, so it's a proposal, not a solo move.
Everything protective is yours and needs no approval: killing a losing ad set, pausing a dead ad, dropping a budget, tightening a spend cap, winner-stacking at the same campaign budget. The rule never changes: spend goes up, it comes to me. Spend stays flat or drops, you own it.
Common mistakes & fixes
- Reading 1-day-view ROAS and thinking you're winning. The most common way operators fool themselves. Fix: set 7-day click once, every day, before you read anything.
- Judging on yesterday alone. One day is noise and it'll have you killing winners and scaling losers. Fix: always the last 3 full days.
- Acting on an ad set with 3 purchases. The ROAS on tiny numbers is random. Fix: wait for 10 to 15 purchases before you trust the number either way.
- Carrying a ROAS target between stores. A 2.6 is a loser on Kairova and a winner on Kyvant. Fix: always read against your store's own BEROAS and target.
- Watching Meta and ignoring Orbit. Delivery slips, RTO climbs, and the store goes underwater while the screen still looks fine. Fix: check the live delivery rate in Orbit every single day.
- Yanking a budget up too hard. Doubling a winner overnight resets its learning and can kill it. Fix: propose gentle percentage raises, then wait 48 to 72 hours.
- Turning off the main campaign in a bad patch. It wipes the optimization history for good. Fix: in a bad stretch you drop to minimum spend, you never kill the main campaign.
- Letting winners run untouched until they die. No fresh creative behind them means the whole account sags when they fatigue. Fix: always be testing new angles into your proven lanes.
Templates & checklists
Store number cards (the lines you read against, ask me for yours if it's not here):
KAIROVA (FitPro EMS abs stimulator)
Order value: ~₹2,550
BEROAS (kill line): 1.38 ← below this = losing money = cut it
Target (scale line):3.5 ← at/above this for 3 days = propose a scale
Target CPA: ~₹730 Breakeven CPA: ~₹1,850
Assumed delivery: 80% (20% RTO)
Min spend/ad set: ~₹2,200/day (≈ 3× target CPA)
Proven lanes: Respect (volume), Flat stomach + Skinny-fat (efficient),
Desk worker; push Be-wanted + Looking-older (higher AOV)
KYVANT (LUME under-eye)
Order value: ~₹1,499
BEROAS (kill line): 1.43
Target (scale line):2.6
Target CPA: ~₹576 Breakeven CPA: ~₹1,048
Assumed delivery: 85% (15% RTO)
Min spend/ad set: ~₹1,730/day (≈ 3× target CPA)
Proven veins: Marriage + Male-face (guard against fatigue with fresh angles)
Daily-check checklist (run every item, same time daily):
DAILY MEDIA CHECK, <store> <date>
□ Ads Manager set to 7-day click attribution
□ Date range = last 3 FULL days (not today)
□ Columns visible: spend, purchases, CPA, Purchase ROAS
□ Every ad set sorted: KILL / HOLD / SCALE-ELIGIBLE
□ Killed every ad set below BEROAS 3 days (done myself)
□ Ignored any ad set with <10 purchases (too little data)
□ Winners checked for 70%+ click attribution before proposing
□ Scale proposals drafted + sent to Sovansh (no budget raised myself)
□ Orbit Logistics: live delivery rate read + compared to assumed
□ Delivery below assumed? → flagged to Sovansh
□ Numbers logged in OPS Ads + LPs
□ Daily line written in Logs
Daily reporting line (into Orbit Logs):
<store> <date> | Spend ₹<n> | Orders <n> | ROAS <x.xx> (7d click) | CPA ₹<n>
Delivery today <n>% (assumed <n>%)
Killed: <ad sets>
Proposed to scale: <ad set, +n%>
Testing: <new angle(s)>
Note: <anything off, e.g. RTO creeping up on X>
Worked example
Open Orbit and go to the LPs tracker, then filter to Kyvant.
You'll see the live male advertorial read.kyvant.in/adv-male sitting at about a 2.84 ROAS against Kyvant's BEROAS of 1.43. Read that the way this module teaches: 2.84 is comfortably above the 1.43 kill line and above the 2.6 target, delivery is holding at 85%, so it's a genuine winner and a scale candidate, not a loser, even though 2.84 would be a poor number on Kairova.
That's the whole skill in one row: the same number means different things on different stores, and you only know which by reading it against that store's own breakeven net of RTO. Study a few live rows in the LPs and OPS Ads trackers before you run your own, so "good" and "bad" are numbers to you, not a feeling.
You just finished Module 07
This is the module where your store starts to feel like yours. You're reading the account, cutting the dead weight, growing the winners, and keeping fresh creative in the pipe. That's the Walmart owner mindset made real: you run this store like you own it, and the better it performs, the better you do.
Keep the discipline boring and the store stays above breakeven net of RTO for years, which is the entire moat. When you land your first real scaled winner, tell me, because that's a milestone and we treat it like one.
Next is Module 08, Fulfillment, CS & COD Ops, where you go make sure the orders you're buying here actually get delivered and paid, so all this profit on the screen turns into money in the account.
Module 08, Fulfillment, CS & COD Ops
After this module you can run the whole back half of a store: get orders shipped, confirm COD orders so they actually get accepted, chase failed deliveries, cut RTO, handle returns, and read the logistics numbers in Orbit so you know if any of it is working.
Before we start
Everything up to now was about getting an order. This module is about keeping it.
Here's the thing most people don't get about our model. We sell higher-priced products on cash on delivery. COD means cash on delivery, the customer pays the delivery person in cash when the parcel arrives, not online upfront.
That's great for getting orders, because the customer risks nothing to order. But it has a nasty flip side. The customer hasn't paid yet, so they can just refuse the parcel at the door, or not be home, or change their mind three days later. When that happens the parcel comes all the way back to us.
That round trip is called RTO. RTO means return to origin, the parcel gets shipped out, never delivered, and shipped all the way back to our warehouse. We pay shipping both ways and we get zero rupees for it.
This is where the money is won or lost. Our margins are fat because our AOV is high (AOV is average order value, the average total of an order). But an RTO parcel eats the forward shipping, the return shipping, and the ad money we spent to get that order, and hands us nothing back.
So this module isn't admin. On a high-AOV COD store, fulfillment ops is one of the biggest levers on whether the store actually makes money. Take it as seriously as the ads.
Where this sits
By now the store is live, ads are running (Module 06 and 07), and orders are landing. This module is what happens from the second an order is placed until the cash is in our account or the parcel is safely back on the shelf.
It runs continuously, every single day, for as long as the store is alive. It's not a one-time setup like the store build. It's the daily engine room.
Next is Module 09, Maintenance, which is the wider "keep the whole store healthy" job. This module is specifically the orders-and-cash half of that.
What you need before you start
You need a store that's actually taking orders. If nothing's selling yet, there's nothing to fulfill, so you'd be here too early.
You need these things set up and open:
- Orbit, my internal system that holds every store, order, and number in one place. Web address is https://shopify-dashboard-taupe.vercel.app. This module lives mostly in three of its pages: Logistics, RTO, and Dispatch. I'll walk each one.
- Shopify admin for your store. Shopify is the platform the store runs on, and it's where every order lands first. You'll confirm and tag orders here.
- The Shiprocket (or Delhivery) panel. This is the shipping side. I'll explain both in the dispatch step. It's where a paid order becomes an actual parcel with a tracking number.
- The console, the chat where you direct Alexander. Alexander is our AI system. In this module you'll use it to crunch the logistics data and draft your call scripts and follow-up messages. Alexander does not make the calls. You and the team do.
- A phone the team can call from, and a WhatsApp number for follow-ups. Most COD confirmation and NDR chasing in India happens on a call plus WhatsApp.
If you don't have logins for Orbit, Shopify, and the shipping panel, that's step zero. Come get access from me before anything else.
Execute or prepare?
You execute this one, fully, with your team. This is not a prepare-and-hand-to-me step.
Fulfillment and CS are live-run by you. You direct Alexander to analyze the delivery data and to draft the scripts and messages, then you and the team run the actual calls, tag the orders, and work the follow-ups.
The one thing that still comes to me is anything that spends real money in a new way, like signing a fresh shipping contract or changing a courier. Day-to-day ops, you own. I'll mark the money-gate points clearly below.
The step, start to finish
There are six moving parts here. I'll take them in the order an order actually travels: order flow, dispatch, COD confirmation, NDR follow-up, RTO reduction, and returns.
Read all six even though on a given day you might only touch three of them. They connect.
Step 1, Understand the order flow, placed to delivered
Before you touch anything, you need the map of where an order goes. Here's the full journey.
-
Placed. The customer checks out on the store. For a COD order, no money has moved yet. The order shows up in Shopify as a new order, usually marked "Pending" on payment.
-
Confirmed. For COD, before we ship, we call the customer to confirm they actually want it. This is Step 3 below and it's the single biggest RTO-killer we have. A confirmed order is far more likely to be accepted at the door.
-
Dispatched. We hand the parcel to the courier (Shiprocket or Delhivery). The order now has a waybill. A waybill, also called an AWB (air waybill), is the tracking number for that one parcel. This is Step 2 below.
-
In transit. The parcel is moving through the courier network toward the customer. Nothing for you to do unless it gets stuck.
-
Out for delivery, and the attempt. The delivery person tries to hand it over and collect the COD cash. One of three things happens: delivered, refused, or the attempt fails (nobody home, phone off, wrong address).
-
NDR, if the attempt fails. A failed attempt raises an NDR. NDR means non delivery report, the courier flagging "we tried, it didn't work, here's why." This is your cue to chase it. This is Step 4 below.
-
Delivered, or RTO. Either the customer takes it and pays (delivered, we get the cash), or after the attempts run out the parcel becomes an RTO and heads back to us.
-
Cash in, or parcel back. Delivered COD cash gets collected by the courier and remitted to us on a schedule (that's the COD inflow you'll see in Orbit's Finance page). An RTO parcel comes back and gets checked into stock.
🎥 Screen recordme tracing one real order in Shopify from Placed through to Delivered, then a second one that went RTO, so you see both endings on real orders.
The whole game is pushing as many orders as possible down the "delivered" path at step 7, and as few as possible down the "RTO" path. Every step below is a lever on that.
Step 2, Dispatch, turning a paid-and-confirmed order into a parcel
Dispatch is getting the physical parcel out the door and into the courier's hands. For us this happens through a shipping panel.
A shipping panel is the software that sits between Shopify and the actual couriers. Shiprocket is the main one we use. Shiprocket is an aggregator, meaning it connects one account to many couriers (Delhivery, Bluedart, Ekart, and others) and picks or lets you pick which courier carries each parcel. Delhivery is one of those couriers, and it's the one we lean on most, so sometimes we book directly with Delhivery too.
Here's the daily dispatch flow, click level, in Shiprocket:
- Log in to Shiprocket. On the left menu, open Orders. This is the list of orders that have synced across from Shopify.
- Filter to New or Ready to Ship. These are orders that are paid-or-COD-confirmed and not yet shipped.
- For each order, check the shipping address looks real (I'll say more in Step 5, a bad address is a guaranteed RTO). Then click Ship Now.
- Pick the courier. Shiprocket shows you options with a rating and price. Default to the recommended one unless it has a bad delivery score for that pincode. A pincode is the 6-digit Indian postal code, and courier performance genuinely varies by pincode.
- Confirm. Shiprocket generates the waybill (the AWB tracking number) and a shipping label.
- Print the label, stick it on the parcel, and mark it for pickup. The courier collects it, usually same or next day.
🎥 Screen recordthe full Shiprocket flow, filtering Ready to Ship, clicking Ship Now, picking the courier, generating the waybill, printing the label.
On our stores the physical packing and handover is handled by our fulfillment person, Umang. Umang runs the packing and dispatch and gets paid on a tiered payout based on order volume. Your job as operator is not to pack boxes. It's to make sure orders are confirmed before they hit dispatch, that nothing sits un-shipped for days, and that the Dispatch log in Orbit matches reality.
How to check dispatch in Orbit:
- Open Orbit. In the left menu, under Operations, click Dispatch.
- This is the daily dispatch log. It shows how many orders were dispatched each day.
- Your check: does today's dispatched count roughly match today's confirmed orders? If 40 orders got confirmed yesterday but only 15 shipped, something's stuck. Go find out why before it snowballs.
"Done right" for dispatch: no confirmed order sits un-shipped for more than 24 hours. Speed matters here, because the longer a customer waits, the more likely they've cooled off and will refuse the parcel.
Step 3, The COD confirmation call, our single biggest RTO killer
This is the most important step in the whole module, so slow down here.
On a COD order the customer hasn't paid. Some fraction of COD orders are impulse, fake, duplicate, or just people who'll have second thoughts by the time the parcel arrives. If we ship every COD order blindly, a big chunk come straight back as RTO.
The fix is dead simple. Before we ship, we call the customer and confirm they actually want it. A confirmed order behaves completely differently at the door, the customer is expecting it, has said yes out loud, and is far more likely to accept and pay.
Who calls. You or your CS team member. CS means customer service. On a small store this might be you. As it grows it's a dedicated caller, the same role Orbit tracks as the CX/COD-confirmation/NDR function.
When to call. Same day the order comes in, or first thing next morning. The faster you call after they order, the fresher their intent. Waiting three days is how you lose them.
The cadence. Try the call. If they don't pick up, wait a couple of hours and try once more. If still no answer, send the WhatsApp confirmation message (in Templates below) and try one final call later that day. Two to 3 attempts total, then decide.
What you're doing on the call. Three things: confirm they placed the order, confirm the address is right, and lock in that they'll be available and have the cash ready. That's it. Warm, quick, not salesy.
Here's the flow, and the full word-for-word script is in Templates:
- Greet, say the brand name, say you're calling about their order.
- Confirm the product and the COD amount.
- Confirm the delivery address and pincode out loud, and fix it if it's wrong.
- Confirm they'll be reachable and have the cash ready when it arrives.
- Thank them, tell them it ships today or tomorrow, and that they'll get tracking on WhatsApp.
🎥 Screen recordme role-playing a real confirmation call end to end, one that goes smoothly and one where the customer hesitates, so you hear how to handle both.
After the call, tag the order in Shopify. Tagging means adding a label to the order so everyone knows its state. Open the order in Shopify, and in the Tags box add one of:
COD-Confirmed, they said yes, ship it.COD-NoAnswer, couldn't reach them after all attempts.COD-Cancel, they said they don't want it, do not ship.
🎥 Screen recordopening a Shopify order, typing the tag into the Tags box, saving, and it showing on the order.
Only COD-Confirmed orders go to dispatch. This one habit, confirm then tag then ship, is where most of your RTO reduction actually comes from. Everything else in Step 5 is smaller than this.
On the no-answers. Don't just bin them. A COD-NoAnswer still gets the WhatsApp message and one more try the next day. Some of them are real customers who were just busy. But never ship a fully unreachable order on blind faith on a high-AOV product, the RTO risk is too expensive.
Step 4, NDR follow-up, rescuing a failed delivery
NDR again means non delivery report. It's the courier telling you "we attempted delivery and it didn't go through," with a reason attached.
Common NDR reasons you'll see:
- Customer not available / not answering. Most common. They weren't home or didn't pick up the delivery person's call.
- Customer refused. They declined the parcel at the door.
- Address incomplete / not found. The address or pincode was wrong.
- Customer asked to reschedule. They want it another day.
- Cash not available. They didn't have the COD amount ready.
Here's why NDR follow-up matters so much. A courier only makes 2 to 3 delivery attempts. If all attempts fail, the parcel auto-converts to RTO and you've lost everything on that order. Every NDR is a parcel one or two failed attempts away from becoming a dead loss. Chasing it is chasing money that's already half out the door.
The NDR flow, click level:
- Open Orbit. Left menu, Operations, click RTO. This is the live in-transit RTO tracker, pulled from Delhivery, and it auto-refreshes every 5 minutes. It shows the parcels currently at risk, the ones with failed attempts that haven't come back yet.
- Cross-check against your Shiprocket NDR panel (in Shiprocket, Orders, filter to NDR / Undelivered). This lists each failed parcel with its NDR reason.
- For each NDR, act on the reason:
- Not available or no answer: call the customer, re-confirm they want it, and push the courier to reattempt. Reattempt means telling the courier to try delivery again. In Shiprocket you can action this directly on the NDR order (button says Reattempt or Take Action).
- Address wrong: get the correct address on the call, update it, and reattempt.
- Wants to reschedule: get the day they'll be home, note it, reattempt for then.
- Cash not ready: remind them of the amount, confirm they'll have it, reattempt.
- Genuinely refuses: stop chasing, mark it, let it RTO. Don't waste attempts on a hard no. - Send the NDR WhatsApp message (Templates below) alongside the call. Call plus message together lands better than either alone.
- Log the outcome so you're not chasing the same parcel twice.
🎥 Screen recordthe Orbit RTO tracker, then the Shiprocket NDR panel, actioning one reattempt end to end.
Speed is everything on NDR. A parcel with a failed attempt has a short window before the next attempt or before it converts to RTO. Work your NDR list daily, ideally twice a day. A day's delay can be the difference between a saved order and a dead one.
Step 5, RTO reduction, stopping the return before it starts
Steps 3 and 4 are your two biggest RTO levers. Confirming orders before ship, and chasing NDRs before they convert. But there's a set of smaller habits that stack up, and on a high-AOV store every saved parcel is real money.
Here's the full list, in rough order of impact:
- Confirm every COD order. Step 3. Biggest lever, full stop. An unconfirmed COD order is the highest-RTO thing you can ship.
- Work your NDR list fast and daily. Step 4. Second biggest.
- Fix bad addresses before dispatch. At dispatch (Step 2), a clearly junk address or missing pincode is a guaranteed RTO. Catch it on the confirmation call and fix it before the parcel goes out.
- Ship fast after confirming. The longer between order and delivery, the more the customer cools off. Same-day or next-day dispatch keeps intent warm.
- Send tracking on WhatsApp. A customer who's been told "it's on the way, here's tracking" is expecting the parcel and far more likely to accept it. Silence breeds refusals.
- Pick the right courier per pincode. Some couriers are weak in some areas. If a pincode has a bad delivery record with the default courier, switch to a stronger one for that parcel in Shiprocket.
- Flag repeat refusers. If a phone number or address has refused before, it'll likely refuse again. Over time you build a sense for the risky ones. Don't blindly ship to a known bad number.
- Consider a small prepaid nudge. Offering a tiny discount for paying online converts some COD orders to prepaid. A prepaid order basically can't RTO for "changed my mind," the money's already in. We don't force this (COD is the base of our model), but a gentle prepaid option shaves RTO. This one comes to me before you wire up anything at checkout.
How to see your RTO reality in Orbit:
- Open Orbit. Left menu, click Logistics, then Breakdown.
- This page shows, per store and by day: delivery rate, RTO rate, COD delivery %, NDR rate, first-attempt delivery, and average delivery time. Let me define each, because these are the numbers you live by:
- Delivery rate, of the parcels that have finished their journey (delivered or returned), the percent that got delivered. Higher is better. This is your headline health number.
- RTO rate, of finished parcels, the percent that came back as RTO. Lower is better. This is delivery rate's evil twin, they roughly add to 100%.
- COD delivery %, the delivery rate specifically for COD orders (as opposed to prepaid). This is the one that matters most for us, since we're mostly COD. COD always delivers lower than prepaid, that's normal, because prepaid customers already paid.
- NDR rate, the percent of parcels that hit at least one failed delivery attempt. High NDR rate with low RTO means your NDR follow-up is working (you're rescuing them). High NDR and high RTO means it isn't.
- First-attempt delivery, the percent delivered on the very first try. Higher here means less NDR work and lower cost, because reattempts cost money and time. - Read these per store, day-wise, and watch the trend. One bad day is noise. A delivery rate sliding down over a week is a problem you go fix.
🎥 Screen recordthe Orbit Logistics Breakdown page, pointing at each metric and reading a real store's numbers out loud.
Step 6, Returns handling
Two different things get called "returns," so keep them separate in your head.
An RTO parcel is one that was never delivered and came back on its own. It arrives back at our warehouse. What to do:
- When it physically arrives, check the product is intact and resellable.
- If it's fine, check it back into stock so it can go out again. Remember, we hold our own inventory (there's no done-for-you dropshipping in India, our capital is tied up in stock), so a resellable RTO going back on the shelf is real recovered value.
- In Shopify, update the order so the RTO is recorded, not left looking like a live delivery. This keeps Orbit's numbers honest.
A customer return is when a delivered order comes back because the customer asked to send it back (defective, wrong item, changed mind after receiving). What to do:
- Hear the reason. If it's a genuine defect or wrong item, that's on us, sort it fast and well. A clean return handling is how you avoid a bad review and sometimes even keep the customer.
- Arrange the reverse pickup through Shiprocket if we're accepting the return.
- When it arrives, inspect it. Resellable goes back to stock, damaged gets written off.
- Handle any refund per our policy. Refunds move real money, so anything beyond our standard return policy comes to me first.
Keep returns tidy and recorded. Sloppy returns handling quietly corrupts your stock counts and your delivery numbers, and then you can't trust your own dashboard.
How to direct Alexander
Alexander doesn't make calls or ship parcels. What it's genuinely good at here is crunching the delivery data and drafting your scripts and messages so they're sharp. You run the human side.
To analyze your logistics numbers and find where RTO is leaking, open a task in the console and paste this, with your real numbers filled in:
I run a high-AOV COD store in India on Shopify, shipping via Shiprocket/Delhivery.
Here are my current logistics numbers from Orbit:
- Delivery rate: <x>%
- RTO rate: <x>%
- COD delivery %: <x>%
- NDR rate: <x>%
- First-attempt delivery: <x>%
- Rough daily order volume: <x>
Tell me: (1) which of these numbers is the weakest vs a healthy Indian COD store,
(2) the single most likely cause, and (3) the top 3 concrete actions to fix it,
ranked by impact. Be specific and practical. Do not invent numbers I didn't give you.
Good output is a short, ranked diagnosis pointing at one or two real problems, not a generic essay. If it starts making up numbers or industry stats it can't know, ignore that part.
To draft or sharpen a COD confirmation call script for your specific product:
Write a COD confirmation call script for an Indian customer who just ordered
<product> for ₹<COD amount> on cash on delivery. The goal: confirm they want it,
confirm the address, confirm they'll have cash ready, and make them feel good about
the order so they accept it at the door. Keep it warm, short, and natural for a phone
call in India. Give me an English version and a simple Hindi version. No corporate
tone, no over-selling. Cover what to say if they hesitate or say they're not sure.
To draft NDR follow-up WhatsApp messages for a failed delivery:
Write short WhatsApp follow-up messages for an Indian COD customer whose delivery
attempt failed. I need one message for each of these reasons: (1) they weren't
available, (2) they didn't have cash ready, (3) the address was wrong, (4) they
wanted to reschedule. Each should get them to accept the reattempt. Warm, brief,
one or two lines, English plus a simple Hindi version. Include the brand name as
<brand> and leave the tracking link as a placeholder.
You then QA what it writes against how a real customer talks. If a line sounds like a robot or a call-center script, cut it. You're the judge of whether it sounds human, Alexander just gets you 90% there fast.
What you decide & QA
You own one real judgment here: is the ops loop actually holding the store's delivery rate up and RTO down? That's the whole scorecard.
Check it against these, per store, on the Orbit Logistics Breakdown page:
- Pass: COD orders are being confirmed before they ship (confirmation is happening, not skipped), the NDR list is being worked daily, delivery rate is healthy for a COD store and stable or climbing, and RTO rate is stable or falling. On a high-AOV COD store, a delivery rate holding in a healthy band and a low, controlled RTO rate is what winning looks like.
- Fail: orders shipping unconfirmed, NDRs sitting untouched for days, delivery rate sliding week over week, or RTO rate creeping up. Any of these means the loop is leaking and you go fix the specific step that's slipping.
The tell of a good operator here isn't a perfect delivery rate on a lucky week. It's catching a slide early, in the numbers, and knowing exactly which of the six steps to go tighten. Watch the trend, not one day.
Don't trust a number just because it's on the dashboard either. If delivery rate looks suspiciously high but RTO parcels aren't being checked back in properly, the number's lying to you. Clean data in Steps 2 and 6 is what makes the QA numbers real.
Money-gate points
Day-to-day fulfillment ops don't spend new money, so most of this you just run. But a few things do move money or lock us in, and those stop and come to me:
- Changing or adding a courier / signing a new shipping contract. New rates, new commitments. Comes to me.
- Wiring up a prepaid discount or any checkout change (the prepaid nudge in Step 5). That touches pricing and the money flow. Comes to me first.
- Any refund beyond our standard return policy. Standard policy refunds you handle. Anything past it, or a bulk / goodwill refund, comes to me.
- Changing anyone's payout terms (like the fulfillment payout tiers). Not yours to set. Comes to me.
Everything else here, the calls, the tags, the reattempts, the returns processing, you own and run. The money-gate is about new spend and new commitments, not the daily grind.
Common mistakes & fixes
- Shipping COD orders without confirming them. The single most expensive mistake in this module. Fix: nothing ships without a
COD-Confirmedtag. Make it an absolute rule. - Letting the NDR list pile up. A parcel with a failed attempt has days, not weeks, before it's a dead RTO. Fix: work NDR daily, twice a day when volume's up.
- Calling too late after the order. Call three days later and half of them have cooled off. Fix: confirm same day or first thing next morning.
- Not sending tracking on WhatsApp. Silent parcels get refused more. Fix: every confirmed order gets a WhatsApp with tracking.
- Ignoring bad addresses at dispatch. A junk address is a 100% guaranteed RTO you shipped anyway. Fix: verify the address on the confirmation call and fix it before the parcel leaves.
- Not checking RTO parcels back into stock. We hold our own inventory, so a resellable RTO left in a corner is money you're pretending you don't have, and it corrupts your stock count. Fix: process every returned parcel back in, or write it off, on arrival.
- Reading one day's delivery rate and panicking or relaxing. One day is noise. Fix: judge on the weekly trend in the Logistics Breakdown.
- Treating a "no answer" as a "yes." Shipping a fully unreachable high-value COD order on hope is how you feed the RTO monster. Fix: unreachable after all attempts means it doesn't ship, or ships only with your explicit call on a low-risk case.
Templates & checklists
COD confirmation call script (English):
You: Hello, am I speaking with <customer name>?
Them: Yes.
You: Hi, this is <your name> calling from <brand>. I'm calling to confirm your
order for <product>. Is now an okay time, just a minute?
Them: Sure.
You: Great. So your order is <product>, and it'll be cash on delivery, the amount
is ₹<COD amount>. Does that sound right?
Them: Yes.
You: Perfect. Can I just confirm the delivery address? I have <read the full
address and pincode>. Is that correct?
Them: Yes / here's the correction...
You: Got it, thank you. This ships <today / tomorrow> and usually arrives in
<X> days. Please keep ₹<amount> ready for the delivery person, and I'll send
you the tracking on WhatsApp so you know exactly when it's coming. Sound good?
Them: Yes.
You: Wonderful, thanks so much <name>, you'll love it. Have a great day.
If they hesitate ("I'm not sure / let me think"):
You: Totally understand. Just so you know, it's cash on delivery, so you don't pay
anything until it's in your hands and you're happy to accept it. Nothing upfront.
Shall I go ahead and send it out for you?
COD confirmation call script (simple Hindi):
You: Hello, kya main <customer name> se baat kar raha/rahi hoon?
Them: Haan.
You: Namaste, main <brand> se <your name> bol raha/rahi hoon. Aapke order ke baare
mein confirm karne ke liye call kiya hai, <product> ka order. Ek minute baat
kar sakte hain?
Them: Haan.
You: Aapka order hai <product>, cash on delivery, amount ₹<COD amount>. Sahi hai na?
Them: Haan.
You: Address confirm kar lein, mere paas hai <full address, pincode>. Sahi hai?
Them: Haan / correction...
You: Theek hai. Yeh <aaj / kal> dispatch ho jayega, <X> din mein pahunch jayega.
Delivery ke time ₹<amount> ready rakhiyega. Tracking WhatsApp pe bhej dunga/dungi.
Them: Haan.
You: Bahut dhanyavaad <name>, aapko product bahut pasand aayega. Dhyaan rakhiye.
COD confirmation WhatsApp (if call not answered):
Hi <name>, this is <brand>. We're confirming your order for <product>, cash on
delivery ₹<amount>. Reply YES to confirm and we'll ship it today. Any address change,
just tell us here. Thanks!
NDR follow-up WhatsApp messages:
Not available:
Hi <name>, our delivery partner tried to deliver your <brand> order today but
couldn't reach you. We'll try again tomorrow, please keep ₹<amount> ready. Reply
here if a specific time works better. Track: <link>
Cash not ready:
Hi <name>, your <brand> order came for delivery but the cash wasn't ready. No worries,
we'll reattempt. Please keep ₹<amount> handy. Reply YES and we'll send it back out.
Wrong / incomplete address:
Hi <name>, we couldn't deliver your <brand> order, the address seems incomplete.
Please reply with your full address and pincode and we'll reattempt right away.
Reschedule:
Hi <name>, sorry we missed you with your <brand> order. Which day works for delivery?
Reply with a day and we'll have it there. Keep ₹<amount> ready. Track: <link>
Daily ops checklist:
DAILY FULFILLMENT OPS, <store>, <date>
CONFIRMATION
□ All new COD orders from yesterday/today called
□ Each tagged: COD-Confirmed / COD-NoAnswer / COD-Cancel
□ No-answers sent WhatsApp + one more attempt queued
DISPATCH
□ All COD-Confirmed orders shipped (Shiprocket)
□ Dispatched count in Orbit matches confirmed count
□ No confirmed order sitting un-shipped > 24h
NDR
□ Orbit RTO tracker + Shiprocket NDR panel checked
□ Every NDR actioned (call + WhatsApp + reattempt)
□ Genuine refusals marked, not chased
RETURNS
□ Arrived RTO parcels checked in / written off
□ Customer returns processed, Shopify updated
NUMBERS (Orbit Logistics Breakdown)
□ Delivery rate: ____% RTO rate: ____%
□ COD delivery %: ____ NDR rate: ____
□ Trend vs last week: up / flat / down
□ If down: which step is slipping? ________
Worked example
We've got a real delivery-and-RTO analysis in the vault you can study. It's the exact kind of read you're doing every day, done on a real store.
Open the delivery-analysis/ folder. Look at vyonik_rate.py, that's the script that pulled real Vyonik orders from Shopify, tracked every waybill through Delhivery, and split them into delivered, RTO, and still-in-transit, then split delivery rate by COD versus prepaid.
Read the bottom of that script (lines 61 onward). You'll see exactly the logic behind the Orbit numbers: DL is a delivered parcel, RT is an RTO parcel, delivery rate is delivered over completed, RTO rate is RTO over completed, and it prints COD versus prepaid delivery separately. That's the whole Step 5 dashboard in one script.
Then open vyonik-delivery-may2026.html in a browser (or read the file). That's the finished report those numbers turned into. It shows you what "reading your delivery reality" actually looks like for one real store over one real month.
Study it so you know what a healthy read versus a leaking read feels like before you're staring at your own store's Logistics page.
You just finished Module 08
That's the engine room done.
You can now run a store's whole back half: confirm COD orders so they get accepted, ship fast, rescue failed deliveries before they die, cut RTO with habits that stack, handle returns clean, and read the logistics numbers to know if it's all working. On a high-AOV COD store, this is where the profit actually survives or leaks away, so this is a big one.
Last up is Module 09, Maintenance, the wider job of keeping a live, winning store healthy over the long run: restocking before you run out, refreshing creatives before they fatigue, and monitoring the whole thing so nothing rots. You've got the hardest operational piece behind you now. Go finish it.
Module 09, Maintenance
After this module you can keep a live, winning store healthy month after month: you catch problems early, restock before you ever run out, refresh creative before the ads tire, watch the numbers for drift, and know exactly when to bring something to me.
Where this sits
By the time you reach this module, your store is live and selling. You've launched it, the ads are running, and fulfillment is handled (Modules 06 through 08).
Maintenance is what happens after all of that, for as long as the store lives. It's the least flashy module and the most important one, because a winning store that nobody watches quietly stops winning.
This is the last module. After this, the only thing left is launching a real store with me watching. So this is where you learn to keep the machine running clean, forever.
What you need before you start
You need a live store that's actually selling. Maintenance is for a running store, not one still being built. If yours isn't live yet, you're not on this module yet.
You need three things open:
- Orbit, my internal system, at https://shopify-dashboard-taupe.vercel.app. This is where every number for your store lives: sales, delivery, inventory, ad performance. You'll be in here every single week. Log in with your credentials.
- The console, where you talk to Alexander, our AI system that does the hands-on work while you direct and check it. You'll use it to pull reports and brief new creative.
- Your store's numbers from launch. The targets you're maintaining against: your target ROAS, target delivery rate, your COGS, your stock count and lead time. These came from intake (Module 01) and launch. Have them written down. You can't spot drift if you don't know what "normal" looks like.
If you don't have your target numbers written somewhere, get them from your Intake Form and your launch before you go further. Everything in this module is comparing "now" against "should be."
Execute or prepare?
You execute this whole module. Maintenance is yours to run, week in and week out.
Two things inside it still hit the money-gate and come to me: reordering stock (that's spending money on inventory) and generating a fresh creative batch (image generation still runs on my machine). You do all the watching, deciding, and prep. When it's time to actually spend, you bring it to me. I'll mark those points clearly below.
So think of it like this: you're the one flying the plane every day. I'm only touching the controls when real money moves.
The step, start to finish
Maintenance isn't a one-time task. It's a rhythm you run on repeat. There are five parts, and they happen on a weekly and monthly loop.
Step 1, The weekly monitoring cadence
Once a week, same day every week (pick one, say every Monday morning), you do a full health check in Orbit. Same day each week matters, because you're looking for change, and you can only see change against a steady rhythm.
Here's the exact click-by-click, in order:
-
Open Orbit and log in. You land on the Dashboard, which shows sales and orders across the period. Note this week's orders versus last week's. Up, flat, or down?
-
In the left menu, click Logistics. This is your delivery health. Read four numbers: delivery rate (the percent of orders that actually get delivered and paid for), RTO rate (RTO means Return To Origin, orders that come back undelivered), NDR rate (NDR means Non-Delivery Report, a failed delivery attempt), and first-attempt delivery. Write down the delivery rate. On COD, delivery rate is the number that decides whether you make money, so it's the one you guard hardest.
-
Click Logistics Breakdown for the day-wise and per-store view if anything above looked off. This shows you whether a dip is one bad day or a real trend.
-
Back in the left menu, click Finance. This shows your live COD inflow and delivery economics pulled from Shopify and the courier. Check that the money coming in matches the orders going out, roughly.
-
In the left menu under Operations, click Inventory. Read your stock level (units left) and your velocity (units selling per day). Orbit calculates a reorder date here. Look at it. We come back to this properly in Step 2.
-
In the left menu, click OPS Ads. This is your creative batch performance: how each batch of ads is doing, and when the next batch is due. Note the "next batch due" date and whether current ROAS is holding. We come back to this in Step 3.
-
In the left menu, click LPs. This tracks each advertorial or landing page, its ROAS against its BEROAS. BEROAS means break-even ROAS, the ROAS where you make exactly zero profit. Above BEROAS you're making money, below it you're losing it. Make sure every live page is comfortably above its BEROAS.
🎥 Screen recordme doing a full weekly check in Orbit, clicking Dashboard, Logistics, Finance, Inventory, OPS Ads, LPs in order, reading each number out loud and saying what good and bad look like.
Done right, the weekly check takes fifteen minutes and ends with you able to say one sentence: "Store's healthy" or "here's the one thing I'm watching." If you can't say which, you didn't read carefully enough.
The weekly delivery report is the anchor of this rhythm. We pull delivery numbers every single week because on COD, a slow drop in delivery rate is the most expensive thing that can happen quietly. Never let a week go by without looking.
Step 2, Inventory restock and reorder discipline
This is the part that, done wrong, kills a winning store overnight. If you run out of stock, your ads keep spending and you have nothing to sell. That's the worst outcome in this whole business, and it's completely avoidable.
The core idea is simple. You must reorder stock while you still have enough to sell through the entire time it takes new stock to arrive, plus a safety buffer. Never wait until you're low.
Here's the math, and it's the most important math in the module:
- Days of stock left = units in stock divided by daily velocity. Orbit shows you both numbers on the Inventory page.
- Lead time = how many days a fresh order takes to arrive from the supplier. You got this at intake.
- The rule: you place the reorder when days of stock left is still comfortably more than the lead time. Not equal to it. More than it, with room to spare.
Lead times are wildly different per product, so this changes everything about timing:
- A long lead product, like Kairova (FitPro EMS), has a 40-day lead time. That means the moment you have only 40 days of stock left, a fresh order placed today lands exactly as you hit zero. That's already too late, because any delay stocks you out. So for a 40-day product you reorder when you still have roughly 55 to 60 days of stock, giving a real buffer. You plan restocks weeks ahead, every time.
- A short lead product, like Kyvant (LUME), restocks in about 2 weeks. Shorter lead means you can run leaner and reorder later. But short lead does not mean safe. Kyvant has stocked out before, once down to eight days of stock. Fast restock only helps if you actually placed the order in time.
So every weekly check, on the Inventory page, you do this:
- Read units in stock and daily velocity.
- Divide to get days of stock left. Orbit usually shows this and a suggested reorder date already, but do the division yourself so you understand it, don't just trust the flag blindly.
- Compare days of stock left against the lead time plus your buffer.
- If you're getting close, it's reorder time. Reordering spends money, so this comes to me (see Money-gate points). You prep the reorder request, I approve and place it.
The buffer exists because velocity climbs when we scale ad spend. More spend means more orders per day, which means your stock burns faster than last week's velocity suggests. Always assume you'll sell a bit quicker than the current number, especially if I've just raised budget.
🎥 Screen recordme on the Orbit Inventory page reading stock and velocity for a real store, doing the days-of-stock division out loud, and showing where the reorder line falls for a 40-day lead versus a 2-week lead.
Done right, you never stock out. Not once. The whole discipline is looking far enough ahead that "we're running low" is a sentence you never have to say.
Step 3, Creative refresh before the ads fatigue
Ads wear out. The same creative shown to the same audience for long enough stops working, and that's called ad fatigue. Your job is to refresh creative before the numbers drop, not after.
You spot coming fatigue by watching a few signals move together over a week or so:
- Frequency rising (the same people seeing the ad too many times).
- CTR dropping (CTR means click-through rate, the percent of people who click; fewer clicks means the ad is getting stale).
- CPM rising (CPM means cost per thousand impressions, what you pay to be shown; a tired ad costs more to push).
- ROAS sliding toward BEROAS.
When those trend the wrong way together, the batch is fatiguing. OPS Ads in Orbit tracks each batch's performance and shows a "next batch due" date, so you're not guessing.
The refresh itself is about angles. An angle is a specific reason the product matters to a specific buyer. We already know which angles win for a given store, and you refresh by making fresh creative on proven lanes plus testing the higher-value angles harder.
Take Kairova as the worked example of angle knowledge. From real performance data:
- Respect is the volume king, it scales the widest.
- Flat stomach and skinny-fat are the most efficient, best ROAS.
- Be wanted and looking older pull a higher-value customer (higher average order value) but are under-scaled, so they're where you push harder with fresh creative and budget.
So a refresh isn't "make random new ads." It's "make a fresh batch on the lanes we know win, and give the promising high-value angles another real push." That's how a store stays fresh for years instead of dying in weeks.
Generating the actual images still runs on my machine (the image key stays off your system for now), so you prepare the creative brief and I generate. This is the same prepare-then-I-run flow you learned in Module 04.
🎥 Screen recordme in OPS Ads reading a batch that's starting to fatigue, pointing at the frequency and ROAS trend, then saying which angles I'd refresh and why.
Done right, you refresh a batch just as the last one starts to tire, so performance never actually dips. The store looks like it "just keeps working," and that's the point.
Step 4, Watching the numbers for drift
Drift is slow decline. Nothing crashes, the numbers just creep the wrong way week over week until one day the store isn't profitable and you're not sure when it happened. Catching drift early is the whole skill of maintenance.
Three numbers drift, and you watch all three every week against your launch targets:
- Delivery rate. On COD this is everything. If your target is, say, 80 percent and it slips to 75, then 72, that's drift, and every point of delivery rate lost is margin gone straight off the bottom line. A falling delivery rate usually means rising RTO, so check the RTO tracker (in Orbit under Operations, click RTO, it auto-refreshes every five minutes) to see what's coming back.
- RTO rate. Rising RTO is the early warning for delivery rate falling. Watch it climb before it shows up in your money.
- ROAS. If your target ROAS is 3.5 and it drifts down toward your BEROAS, your margin is thinning. A little week-to-week wobble is normal. A steady multi-week slide toward BEROAS is drift, and it means the creative is tiring (back to Step 3) or something changed in the funnel.
The way to actually see drift is to compare, not to glance. Each week's numbers only mean something next to last week's and last month's. That's why you check the same day every week and why you keep your targets written down. A single number tells you nothing. A trend tells you everything.
🎥 Screen recordme putting three or four weeks of delivery rate and ROAS side by side and pointing out the difference between normal wobble and a real downward drift.
Done right, you catch drift when it's a whisper, not when it's a problem. You act while a 2-point dip is still a 2-point dip.
Step 5, When to escalate to me
Most weeks, nothing needs me. You check, it's healthy, you move on. But some things you bring to me straight away, and knowing which is part of the job.
Escalate to me the moment any of these happen:
- You need to reorder stock. Always. Buying inventory is spending money, so it's mine to approve.
- You need a fresh creative batch generated. Image generation runs on my machine, so the brief comes to me to run.
- Delivery rate is dropping sharply, or has slid for two or more weeks running.
- ROAS is drifting toward BEROAS and a creative refresh alone isn't holding it.
- Any stockout risk you can't fully cover with a normal reorder, for example velocity jumped and the lead time won't keep up.
- Anything that needs a budget change or a structural call on the ads.
- Anything you genuinely don't understand. A sharp early question is a good operator, not a dumb one. Sitting on something you don't get is what causes real damage.
The rule of thumb: if it spends money, changes the ad structure, or has you unsure, it comes to me. If it's just watching and prepping, it's yours.
Bring me a sharp, specific message, not a vague worry. "Kairova down to 55 days of stock at current velocity, need to reorder" is a great escalation. "I think something might be off with inventory" is not.
How to direct Alexander
Alexander does the heavy lifting on pulling and reading numbers so your weekly check is fast and nothing gets missed. Open one task in the console for your weekly review and paste this:
I'm doing my weekly maintenance check for my store: <store name>.
Here are my launch target numbers:
- Target ROAS: <e.g. 3.5>
- Target delivery rate: <e.g. 80%>
- COGS per unit: <₹ amount>
- Units in stock now: <number>
- Daily velocity (units/day): <number>
- Supplier lead time (days): <number>
Here are this week's actual numbers from Orbit:
<paste this week's orders, delivery rate, RTO rate, ROAS, stock, velocity>
Do four things: (1) Flag every number that has drifted the wrong way vs my
target, and by how much. (2) Calculate my days of stock left (units ÷ velocity)
and tell me if I'm inside my reorder window given the lead time plus a safety
buffer. (3) Tell me if any ad batch looks like it's fatiguing based on the
numbers I gave. (4) Give me the single most important thing to act on this
week. Do not invent numbers. If something's missing, say it's missing.
Good output is a short, specific list: what drifted, your exact days of stock left, a clear yes or no on reordering, and one clear action.
For a creative refresh brief, open a fresh task and use this:
My store <store name> needs a creative refresh, one batch is fatiguing.
Here are the angles that win for this store and their performance:
<paste the winning angles and their ROAS/AOV, e.g. from OPS Ads or the
product's performance notes>
Build me a creative brief for a fresh batch that: refreshes the proven
high-efficiency angles, and gives the higher-AOV angles a stronger push.
Keep it to angles we know work for this avatar. I'll bring the brief to
Sovansh to generate the images.
Good output is a brief built on the store's real winning angles, ready for me to run image generation on. If Alexander invents new random angles with no basis, ignore that and steer it back to the proven lanes.
What you decide & QA
You own one standing call in this module: is my store still healthy this week, and if not, what's the one thing I do about it?
Run this pass/fail every week:
- Pass: delivery rate is at or near target, ROAS is comfortably above BEROAS, you have more days of stock than your lead time plus buffer, and no ad batch is fatiguing. Store's healthy, log it, move on.
- Fail: any of those is off. Delivery rate drifting down, ROAS sliding toward BEROAS, days of stock getting tight, or a batch tiring. A fail is not a disaster. A fail caught this week is the whole point. It means you act now, while it's small, and escalate to me if it needs spend or a call.
The habit you're really building is looking every week without fail and comparing against last week honestly. The operators whose stores print for years are the ones who never skip the check and never talk themselves out of a number that's clearly slipping.
Money-gate points
Two points in this module spend real money, and both come to me. You can't override them.
- Reordering stock. You spot that it's time, you prep the reorder (which product, how many units, by when), and you bring it to me. I approve and place it. You never place an inventory order yourself.
- Generating a fresh creative batch. Image generation runs on my machine. You prepare the brief, I generate. You never spend on new creative production yourself.
Everything else in maintenance (all the watching, the math, the QA, the prep) is fully yours. The money-gate only touches the two moments where cash actually leaves.
Common mistakes & fixes
- Skipping the weekly check because "it's probably fine." The most expensive mistake in the whole module. Drift and stockouts only stay small if you catch them weekly. Fix: same day, every week, no exceptions, even when things look great.
- Reordering too late on a long-lead product. Waiting until you have "40 days left" on a 40-day lead product means you stock out on any delay. Fix: reorder at lead time plus buffer, always ahead, never at the line.
- Trusting old velocity after a budget raise. Velocity jumps when spend goes up, so last week's number under-counts how fast you'll sell now. Fix: assume faster burn after any scale, reorder earlier.
- Refreshing creative only after ROAS already crashed. By then you've lost money for weeks. Fix: watch frequency, CTR, and CPM trend together and refresh while ROAS is still fine.
- Reading one number instead of a trend. A single week's delivery rate or ROAS tells you almost nothing. Fix: always compare against last week and last month, that's why you keep your targets written down.
- Sitting on a problem instead of escalating. Waiting because you don't want to bother me, then it becomes a stockout or a money leak. Fix: a sharp early message is always welcome, if it spends money or you're unsure, bring it to me.
Templates & checklists
Weekly maintenance checklist (run every week, same day):
WEEKLY CHECK, <store name>, week of <date>
Orbit Dashboard:
- Orders this week vs last week: ____ (up / flat / down)
Logistics:
- Delivery rate: ____% (target: ____%) drift? ____
- RTO rate: ____% NDR rate: ____%
Finance:
- COD inflow roughly matches orders? yes / no
Inventory:
- Units in stock: ____ Daily velocity: ____
- Days of stock left (units ÷ velocity): ____
- Lead time: ____ days Inside reorder window? yes / no
OPS Ads:
- Any batch fatiguing (freq up / CTR down / CPM up / ROAS down)? yes / no
- Next batch due: ____
LPs:
- Every live page above its BEROAS? yes / no
VERDICT: healthy / watching one thing / needs action
ONE thing to act on this week: ____________________
Anything to escalate to Sovansh? ____________________
Monthly maintenance checklist (run once a month, on top of the weekly):
MONTHLY REVIEW, <store name>, <month>
- This month's orders / revenue / net margin vs last month: ____
- Delivery rate trend across the 4 weeks (improving / flat / drifting): ____
- ROAS trend across the 4 weeks: ____
- Reorders placed this month (with Sovansh): ____
- Creative batches refreshed this month: ____
- Is the store performing at or above last month? yes / no
- If no, what's the root cause and the plan? ____________________
- Anything to raise with Sovansh for next month? ____________________
Worked example
Open funnels/products/README.md in the vault, the product knowledge base, and read the Kairova (FitPro EMS) entry. It's a live, running store, so it's the real thing to maintain.
Now run the maintenance math against its real numbers. Kairova carries roughly 3,400 units on a 40-day lead time, and at around ₹12 lakh a month in ad spend it does close to 1,647 orders a month. That's about 55 units a day of velocity.
Do the division: 3,400 units divided by 55 a day is roughly 60 days of stock. With a 40-day lead time, that means the reorder has to go in when you're at about two months of stock, so the fresh batch lands before you run dry. In the real plan, that reorder falls around late August so the next batch arrives around October. That's exactly the "reorder weeks ahead" discipline from Step 2, on a real store.
Study it until the rhythm feels obvious: read stock and velocity, divide, compare to lead time plus buffer, and reorder early enough that stockout is never even close. That's what maintaining a store actually looks like.
You just finished Module 09, and the training
That's it. You've finished the last module, and you've finished the whole training.
Take a second with that, because it's real. You started not knowing how any of this fit together, and you can now take a product I hand you and carry it the entire way: intake, research, copy, creative, the store, the ad setup, media buying, fulfillment, and now keeping it alive and winning for years. Start to finish. That's a genuinely rare skill, and most people never learn it.
You know how to keep a store healthy without me hovering: you check every week, you reorder before you ever run low, you refresh creative before the ads tire, you catch drift while it's a whisper, and you know exactly when to bring something to me. That's the difference between a store that prints for a month and one that prints for years.
Here's what I want you to carry out of all of it: care about the numbers being right, refuse to move on gaps, and never skip the check. Everything good in this business comes from those three habits.
The next step is the real one. You launch a live store with me watching, the supervised launch, your first real milestone. And we treat it like one, because it is one.
You did the work to get here. Now let's go run a store. Welcome in, properly this time.