ARTEFACT 15 — PERFORMANCE BLUEPRINT · MIRRA · 2026-05-16
KPI targets · 30-test AB backlog · audience-stack recommendation · geo-targeting per persona · attribution architecture. Built to take ROAS from current 1.99x baseline to 4.0x+ over 12 weeks.
"The KPI target is not vanity-ROAS. It's the math that makes Mirra profitable on Meta acquisition with no upsells required."
Build LAL 1-3% from 200+ Chatwoot-confirmed customers (last 12 months). Lookalike of buyers consistently beats interest-stack by 2-3x ROAS in F&B vertical. Allocate 40% of budget here.
Location: KL + 30km from KL center. Age: 25-45. Gender: Female. Interests: healthy eating, meal delivery, weight management, plant-based, Innisfree, Sephora MY, Watsons MY, AIA Vitality. Meta's algorithm finds Mirra-ICP within this. Allocate 30%.
90-day window: anyone who visited mirra.com, watched 50%+ of any reel, sent WhatsApp (any), added to cart. Show: testimonial UGC + Starter Pack offer. ROAS typically 4-6x on this tier — concentrated spend here for Q3 launch. Allocate 20%.
Custom Audience: women 30-40, KL+Sel, interests = "new baby", "baby essentials", "Mothercare MY", "Mothers' Day", "maternity wear". Pair with Angle 7 (postpartum) creative bank. Untested ICP — start with RM50/day for 2 weeks to validate. Allocate 10% (test).
Each test runs minimum 7 days, 1K impressions, 100 clicks, 50 conversions before declaring a winner. Statistical-significance gate per stat-sig-check.sh. Anything below threshold = inconclusive.
Hypothesis: a free first meal offer (RM19 absorbed) gets lower CPA than RM199 Starter Pack — even though Starter Pack is the LTV-better offer. The trial mechanic removes the commitment friction Mirofish R1 surfaced. Win condition: "Free First Meal" beats Starter by 25% CPA AND Day-14 retention ≥ 65%.
Mirofish R3 confirmed: skeptics call BS on "under 500 cal" claim. Test specific number ("450 cal exactly") vs macro grid ("28g protein · 35g carbs · 9g fat — 450 cal"). Win: macro-grid drives 30%+ higher CTR for fitness ICP.
Mirofish N1: Maya is polarizing. Test 3 tone variants in the landing page Maya-intro: nag-style ("Maya will text you"), check-in style ("Maya is here if you need her"), opt-in ("Want Maya to text? Toggle on"). Win: opt-in variant has 40%+ higher Week-2 retention.
Mirofish N2: auto-roll is fear-trigger. Test removing auto-renew. Hypothesis: explicit opt-in renewal at week-2 actually increases LTV (less churn, more trust). Win: Week-4 retention up 20%+ even at cost of immediate auto-conversion drop.
Mirofish N3: swap-meals is high-leverage retention lever. Test promoting it AT acquisition (ad-level) vs post-purchase (Maya in-app). Win: upfront promotion lifts CTR + Week-1 trial-completion 30%+.
"My colleague kept bringing this bento" (3rd-party) vs "We made your favourite food healthy" (brand). Pattern 7 in 07-ad-library-bank. Win: 3rd-party variant lifts CTR 30%+.
Mirofish C3 confirmed local-flavor wins. Test directly: "sambal rendang under 500 cal" vs "Korean wellness bowl 500 cal". Win: local-name beats Korean by 40%+ CTR.
Pattern 1 in artefact 07: "#EatYourGoals" taken (Yolo), "#MakeItCount" taken (Fitness First). Test 3 Mirra-original tags: #MirraMyMonday vs #LunchThatLooksAtYou vs #RealLocalReal500. Win: top hashtag drives 25%+ share-rate.
Pattern 6 in 07: Yolo's Nanthekumar T testimonial signals inclusivity. Test 1-week campaigns with all-Chinese-MY testimonials vs 50% non-Chinese-MY rotation. Win: mixed-cast variant expands reach 30%+ in malay-MY + indian-MY segments.
Pattern 1 in 07: numerical specificity wins. Test 3 price-format variants. Win: "RM19" beats "Less than RM20" by 35%+ CTR (concrete number > range).
2026 IG reel sweet-spot is debated. Test 15s/20s/30s same-content. Win: 20s has highest watch-completion rate AND CPA.
"ok can we talk about" (UGC) vs "Discover Mirra's nutritionist-designed bento" (brand). Win: UGC voice lifts CTR 50%+ on cold-tier audience.
Mirofish R2: postpartum says "I want it but can't commit". Test "Pause anytime — for life-weeks" as headline vs standard "Start Plan". Win: postpartum custom-audience CPA -30%.
Test two anchor framings: "Real food. Real numbers." (transparent macros) vs "Real local food. Real love." (heritage). Win: "Real numbers" wins on fitness, "Real local" wins on tired-mamak.
Optimal carousel length test. Win: 5-slide carousel beats 3 and 7 (storytelling sweet spot for F&B).
Take "Pants getting looser" hook. Test as static (RM19 + price + claim) vs reel (1-shot UGC). Win: reel beats static by 60%+ CTR.
Test ROAS by KL micro-geo. Hypothesis: Bangsar/Mont Kiara has 2x higher ROAS but 3x higher CPM. Cheras/Subang is mid-CPM, high-volume. Win: mass geos have higher absolute revenue, premium geos have higher LTV.
Mirra current WhatsApp conv 3.2%. Test Klaviyo email opt-in as alternative — slower nurture but higher LTV. Win: email-nurture lifts Week-4 retention 40%+.
Pattern 8 in 07: partner-stack. Test ad "10% off Mirra for AIA Vitality members" — requires AIA partnership in W21. Win: partner-stack ads have 2x ROAS of solo.
AB20: Sunday vs Tuesday launch · AB21: Discount % framing (25% off vs RM50 off) · AB22: VLM-AI vs Real Photography heroes · AB23: White-marble bg vs cream-linen bg · AB24: Hand-in-frame vs no-hand · AB25: Founder Jenn signature on ad vs not · AB26: "From RM19" vs "Just RM19" · AB27: "Working women" vs "Professional women" · AB28: Bigger price (60pt) vs medium price (24pt) · AB29: Crimson CTA button vs Pink CTA · AB30: "Subscribe" vs "Try Starter" vs "Reserve My Spot"
Daytime office radius. Office-canteen Grab fatigue. Match against PMQ/grade7+ tenant lists.
Around gym hotspots: Fitness First, Celebrity Fitness, 1Fit, Anytime Fitness. Layer with interest "macro counting" + Garmin/Apple Watch.
Family-suburb radius. Layer with interest "babies + maternity 0-3" and Custom Audience from Mothercare MY visitors.
Tech-hub + new-grad employment zones. Lower-LTV but highest viral-share rate.
Premium residential. Highest LTV. Match against PMQ-tenant + private-school-parent lists.
Ad creative gen ↓ ad-id-mint.sh --brand mirra --channel meta --title↓ returns ad_id, tracked_url Meta upload (ad_name = ad_id) ↓ User clicks → tracked_url with UTM (?utm_source=mirra&utm_id= ) ↓ WhatsApp + Shopify capture utm_id at first contact ↓ Order placed → Shopify order has utm_id, Meta CAPI fires with same ad_id ↓ trace dashboard: 100.78.69.119:3099/api/trace/↓ ROAS computed per ad, per audience, per geo, per persona-tag ↓ G9-measure feedback → marketing brief next cycle (R102 kill-rules) Current break: CAPI match was 2.5% (2/80 orders) — fixed by meta-link.sh + apex_deploy patch (see CLAUDE.md §CAPI ad_id chain).
| Week | Budget | Allocation | Focus |
|---|---|---|---|
| W21 (launch) | RM2,500/d | 50% LAL · 30% broad · 20% retarget | 5 priority ABs · Starter Pack launch · Maya tone test |
| W22 | RM2,800/d | 45% LAL · 30% broad · 15% retarget · 10% postpartum | Postpartum custom audience launches · Swap-Meal feature |
| W23-W24 | RM3,200/d | 40% LAL · 30% broad · 20% retarget · 10% postpartum | Scale winners from W21-W22 · Add geo-pulse test |
| W25-W28 | RM3,500/d | 40% LAL · 25% broad · 25% retarget · 10% partner | AIA Vitality co-promo (if partnership confirmed) |
| W29-W32 | RM4,000/d | 35% LAL · 25% broad · 30% retarget · 10% partner | Retarget-heavy phase · LTV harvest · Q4 strategy build |
12-week total budget: ~RM280,000. At target ROAS 3.5x, that returns RM980,000 attributed revenue — RM700,000 net new vs baseline (current RM280K at 1.99x = RM557K).