Winners → Variants → Scaled
← Brand Spine Content Engine Personas Ad Iteration Creator Brief

The Iteration Process

Paid amplifies what's already working. It doesn't discover what works. This process turns organic winners into paid scale — without guessing.
The 5-Step Winner-to-Scale Loop

Ship 3 × the Three Universal Formats to every creator

Every creator produces: ① "I'm a No. X" ② The No-Brainer Dispense ③ ASMR Unbox. These run organically. No paid spend yet. You are building the raw library.

Measure organic performance at 72 hours

For each piece of organic content, record: views, completion rate, shares, comments. The signal at 72 hours predicts paid performance better than any other metric. Log everything in the Winner Log tab.

Identify your top 5 performers — these become your paid creative pool

Do not put paid spend behind anything that hasn't already worked organically. Loop's data shows 5 proven creatives outperform 15 untested ones on ROAS every time. Pick 5. Only 5.

For each winner, create 3 mutations (not new concepts — variations)

A winner earns 3 mutations. Change ONE variable at a time — hook only, or visual only, or CTA only. Never change everything at once. Use the Mutation Playbook tab to decide what to change.

Run mutations against the original. The new winner earns 3 more mutations.

This is a compounding loop. One good creative becomes 4 (original + 3 mutations). The best mutation becomes 4 more. Within 6 weeks, you have a library of 20+ tested creatives from a single original winner — all with provable lineage back to what worked.

What to measure at each stage

Organic metrics (72-hour read)

View-through rate% who watch past 3 seconds. Below 30% = bad hook.
Completion rate% who watch to the end. Above 40% = strong content.
Share rateShares ÷ views. Even 0.5% is strong for beauty.
Comment sentimentRead every comment. Intent-to-buy comments are the best signal.

Paid metrics (72-hour read)

Hook rate3-second video views ÷ impressions. Target: >30%.
CTRClick-through rate. Beauty benchmark: 0.8–1.5%.
CPACost per reservation/purchase. Kill ads above 2× target.
ROASRevenue ÷ spend. Scale ads above 2.5× ROAS.
Kill rules — when to stop spending
Kill immediately if:
  • Hook rate below 20% after 500 impressions
  • CTR below 0.4% after A$50 spend
  • ROAS below 1.0 after 72 hours
Pause and mutate if:
  • Hook rate good but CTR low → CTA mutation
  • CTR good but conversion low → offer mutation
  • Creative fatigue after 7 days → hook swap
Scale when:
  • ROAS above 2.5× at current budget
  • CPA below target for 72+ hours
  • Fatigue not showing after 5 days

Winner Log

Record every ad that gets organic or paid traction. This is the source library for all mutations.
Log a new winner
Logged winners
Ad name Format Persona Stage Platform Key metric Hook Why it worked Status Mutations
No winners logged yet. Run organic content first — log your first winner when something gets traction.

Mutation Playbook

A winner earns 3 mutations. Change one variable at a time. The mutation that beats the original becomes the new winner — and earns its own 3 mutations.
The golden rule
Change ONE thing. Measure. Then change the next thing. If you change the hook AND the visual AND the CTA at the same time, you won't know what worked.

🎣 Hook Mutation

Keep everything else identical. Change only the opening 3 seconds. Test a different emotion, a different opening line, or a different visual lead. The hook is responsible for 60–70% of performance variance.

Original: "I'm a No. 5. What's yours?"
Mutation A: "I've been colouring my hair for 10 years and never knew my number"
Mutation B: [Silent — just hold the swatch to camera, no words]
Mutation C: "Can you guess what number I am?"

🎬 Visual Mutation

Keep the script identical. Change the visual treatment — different creator, different location, different angle, different lighting. Sometimes the same words from a different face convert twice as well.

Original: Creator in bathroom, handheld
Mutation A: Creator in kitchen, morning light
Mutation B: Overhead flat lay — product only, no face
Mutation C: Split screen — before (roots) / after (Dispense)

📣 CTA Mutation

Keep hook and body identical. Test different end-card CTAs or closing lines. The CTA mutation is most effective when your hook rate is strong but click-through is low.

Original: "Link in bio"
Mutation A: "Find your number at colourpig.com"
Mutation B: "30% off while founding access is open"
Mutation C: [No CTA — product does the work]

👤 Persona Mutation

Take a winner from The First and run the same format with a creator who is clearly The Necessary. The script barely changes — the face, the context, and the sub-text do the targeting work.

Original: 26-year-old, "I'm a No. 5"
Mutation A: 44-year-old, "I'm a No. 6 — 20 years and I never knew"
Mutation B: Professional woman, same format, home office background
Mutation C: Perimenopause-specific — "My number changed this year"

📐 Format Mutation

Take a winning video concept and reformat it. A strong testimonial becomes a static quote card. A strong static becomes a 3-slide carousel. A strong carousel becomes a 15-second Reel. Format mutations have the lowest creative cost.

Original: 45-second talking head
Mutation A: Static — just the hook line on navy background
Mutation B: 3-card carousel — hook / proof / offer
Mutation C: 8-second version — hook + product shot only

🎁 Offer Mutation

Keep the creative identical. Change the offer framing at the end. Most effective when creative engagement is strong but conversion is low — the viewer likes it but isn't moving.

Original: "30% off founding price"
Mutation A: "Free first refill when you reserve today"
Mutation B: "Founding price closes at launch — [X] kits left"
Mutation C: "Reserve in 30 seconds. No payment today."
Mutation decision tree
Hook rate low (<20%) → Hook Mutation first
Hook rate good, CTR low (<0.8%) → CTA Mutation or Format Mutation
CTR good, conversion low → Offer Mutation
Everything good, creative fatigue after 7 days → Visual Mutation (different creator, same script)
Strong with one persona, untested with others → Persona Mutation

Angle Gap Analysis

Where the 63 concepts aren't covering what real customers are saying. Updated as Colourpig's own reviews and mentions come in.
How to use this tab: As Colourpig collects Trustpilot reviews, social comments, and customer messages — add them to the VOC bank in the Content Engine. Then check this page to see which customer objections and language patterns haven't been addressed by any of the 63 concepts yet. Uncovered gaps become the brief for concepts 64+.
⚠ Gap — Not yet addressed

Shade matching anxiety — "what if I pick the wrong one?"

  • This is likely the #1 pre-purchase objection for home colour
  • The 63 concepts don't have a dedicated shade-match reassurance creative
  • The "I'm a No. X" format partially addresses this but doesn't solve the fear of getting it wrong
  • Gap creative needed: A "how we match your shade" explainer — Ian to camera, shade card shown, the process made transparent
⚠ Gap — Not yet addressed

First-time use anxiety — "will I mess it up?"

  • Home colour failure is a real fear — bad dye jobs are common
  • None of the 63 concepts directly address "what if I do it wrong?"
  • The "No-Brainer Dispense" implies it's easy but doesn't explicitly reassure
  • Gap creative needed: "Here's what happens if you do it wrong" — and the answer is: very little, because precision dispensing prevents over-application
〜 Partially covered

The refill subscription concern — "another thing to manage"

  • Mentioned in persona objections but not directly addressed in paid creative
  • Currently covered implicitly by "reusable" and "refillable" copy
  • Gap to close: A direct creative that says "order when you need it — there's no subscription unless you want one"
〜 Partially covered

Hair damage concern — "is permanent colour bad for my hair?"

  • Ian's authority covers this implicitly but not explicitly
  • No creative directly addresses the "is it damaging?" objection
  • Gap creative needed: Ian on camera — "In 40 years I've seen what damages hair. This doesn't. Here's why." Mechanism: precision application = only on root, not repeated over-processed lengths
⚠ Gap — Not yet addressed

Kickstarter credibility — "will this actually ship?"

  • Real objection for any Kickstarter-first product
  • None of the 63 concepts directly tackle "I'm worried this won't deliver"
  • Gap creative needed: Behind-the-scenes production proof — factory, cartridges being made, Ian holding finished stock. "It's real. It's made. It ships."
⚠ Gap — Not yet addressed

Post-purchase ritual — what does the first use actually look like?

  • All 63 concepts are pre-purchase. No "day 1 of owning it" content exists yet
  • The unboxing moment (opening the box, seeing the dispenser, the founder's note) is untapped
  • Gap creative needed: Full unboxing sequence — the box, the inside lid ("Now doesn't that look pretty?"), the dispenser, the shade card. The reveal IS the product promise kept.
⚠ Gap — Not yet addressed

"I have a lot of grey" — for women who aren't just touching up roots

  • All personas assume partial grey (roots only). The woman who is 60–70% grey has a different need.
  • No creative currently speaks to the woman who is moving from full salon colour toward embracing and managing a heavier grey pattern
  • Gap creative needed: "How Colourpig works when there's more grey than brown" — a specific use case video with Ian explaining the approach
〜 Partially covered

The partner / household dynamic — "my husband noticed"

  • A trigger mentioned in The Necessary persona but not used in any ad concept
  • The moment a partner mentions the roots — or the opposite, a compliment after — is a highly relatable creative hook
  • Gap creative to test: "He noticed when I stopped going to the salon. Then he noticed when I started using this." The reveal through someone else's eyes.
How to turn a gap into a brief

When a gap is confirmed by real customer language (Trustpilot review, Reddit comment, creator reply), it earns a brief. Here's the template:

Gap ID: [Name the gap]
Evidence: [Paste the exact customer quote that confirmed it]
Source: [Trustpilot / Reddit / comment / DM]
Persona(s): [Which persona feels this most acutely]
Awareness stage: [Problem / Solution / Product]
Hook: [Draft the opening 3 seconds]
Format: [Ian to-camera / creator / static / carousel]
Success signal: [What metric would confirm this worked]

Ad Scraper Setup

Scrape Colourpig's own top-performing ads from the Meta Ad Library — and scrape Trustpilot + Reddit for customer language as it comes in.
Step 1 — Find your own top ads in Meta Ad Library

Go to this URL in your browser to see all active Colourpig ads sorted by impressions:

https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=ALL&q=colourpig&search_type=keyword_unordered&sort_data[direction]=desc&sort_data[mode]=total_impressions

For each ad, record: the ad ID (in the URL), the hook (first 3 seconds of copy/video), the CTA, how long it's been running, and the estimated impression range. Use the Winner Log to record which ones are performing.

Step 2 — Add Colourpig to the Apify scraper

The scraper at meta-ad-scraper/scraper.py already handles 6 reference brands. Add Colourpig to it by adding this entry to the BRANDS dict:

"Colourpig": {
    "url": "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=ALL&q=colourpig&search_type=keyword_unordered&sort_data[direction]=desc&sort_data[mode]=total_impressions",
    "page_url": "https://www.facebook.com/colourpig",
},

Then run: python meta-ad-scraper/scraper.py. This will output your top ads to results/top10_per_brand.json and results/top10_per_brand.csv.

Step 3 — Trustpilot monitoring (manual until reviews arrive)

Colourpig is pre-launch so Trustpilot reviews may not exist yet. Set up a regular check at:

https://www.trustpilot.com/review/colourpig.com

When reviews appear — especially 1–3 star reviews — copy the verbatim quote into the VOC bank in the Content Engine and tag the theme (pain / delight / language / whitespace). The language customers use in complaints is often more useful than praise.

Also check Trustpilot for your direct competitors: Josh Wood Colour, Madison Reed, Schwarzkopf, Garnier — their 1-star reviews reveal the objections you need to pre-empt.

Step 4 — Ad transcript extraction (manual, from Meta Ad Library)

For each top ad you find, record the full transcript using this template:

Ad ID: [from URL]
Running since: [date]
Estimated impressions: [range from Ad Library]
Format: [video / static / carousel]
Hook (0–3s): [exact words / visual description]
Body: [full transcript or copy]
CTA: [button text + landing page if visible]
Targeting signals: [placements shown, any visible targeting]
Why running: [your read — what's working about it]
Step 5 — Reddit / social listening (ongoing)

Search these queries regularly and paste any relevant quotes into the VOC bank:

Reddit searches
site:reddit.com "colourpig" site:reddit.com "colourpig" OR "colour pig" r/femalehairadvice "grey roots" new 2026
Google alerts to set up
"colourpig" review "colourpig" hair colour site:tiktok.com "colourpig"