Angle matrix, exact prompts, before/after metrics, reproducible Notion template.
Last Friday, we spent 1 hour with a pilot DTC client to answer a simple question: can we test 47 different angles before Monday morning? Answer landed in 58 minutes. Total compute cost: $4.12. Output: 47 UGC video variants ready to upload to Meta Ads. Here's the unfiltered breakdown.
DTC skincare brand, 2 years in market, 4-person team. $50K/month Meta spend, growth stuck for 6 weeks.
Diagnosis was clear: not an audience problem, a creative volume problem. The account had been burning the same 4 hooks for 6 weeks straight.
We built the matrix with the client in 12 minutes. Rule: 1 row = 1 hook copy + 1 setting + 1 avatar + 1 body angle. Distribution:
| Angle | Variants | Logic |
|---|---|---|
| Pain | 15 | Skin issues (adult acne, pores, texture, tightness) |
| Aspirational | 15 | Visible glow, "filter-off" skin, confidence |
| Social Proof | 12 | Reviews, before/after, "everyone is using" |
| Curiosity | 5 | Counter-intuitive hooks ("I quit my 5-step routine") |
Why 4 angles instead of 1? Because creative fatigue doesn't hit every angle at once. When Pain saturates, Aspirational still performs.
Avatar: woman 28-32, combination skin, no-makeup, morning window light. Setting: minimal white bathroom. Body: she stares in the mirror, touches her cheek with frustration. Hook copy: "POV: you're testing your 14th routine and your skin still reacts."Avatar: woman 25-30, natural glow skin, golden hour light. Setting: Parisian rooftop, pink sky. Body: she closes her eyes, smiles, turns her face to the sun. Hook copy: "The moment your skin switches to 'filter-off' mode."Avatar: woman 30-35, mom-energy, casual kitchen vibe. Setting: home kitchen, coffee mug. Body: she talks to camera, holds up packaging, knowing smile. Hook copy: "My 3 best friends stole it from me. Here's why."Avatar: woman 27, dermatologist vibe, light lab coat. Setting: office with product shelf. Body: she sets a product down, pushes it away, raises an eyebrow. Hook copy: "I removed 4 products from my routine. My skin got better."Avatar: woman 26, visibly reactive skin, harsh natural light. Setting: bedroom, unmade bed, morning. Body: she films her reflection phone-mirror style, sighs, points at a red zone. Hook copy: "3 years of dermatology. This €24 thing did what no protocol ever did."| Metric | Before | After D+5 | Delta |
|---|---|---|---|
| CPA | €65 | €28 | -57% |
| Ad volume | 12/day | 47 tested | +292% |
| ROAS | 1.8 | 4.2 | +133% |
| Hero variants | 0 | 3 | — |
| Creative cost | €2,240/mo | $4 + 1h | -99% |
The 3 hero variants identified (#12 Pain, #19 Aspirational, #41 Curiosity) absorbed 78% of spend D+5 → D+10.
We use a Notion database "Variant Lab" with these properties:
ID (auto-incremented text)Angle (select: Pain / Aspi / Social / Curiosity)Hook copy (text)Avatar / Setting / Body (3 text fields)Status (select: Draft / Generated / Live / Winner / Killed)CPA D+3 (number) · CPA D+7 (number)ROAS D+7 (number)Verdict (formula: if CPA D+7 < target → "Hero" else "Kill")View "Active tests" filtered by Status = Live, sorted by CPA D+3 ascending. View "Heroes" filtered by Verdict = Hero for budget reinjection.
When you ship 1 angle, you test 1 hypothesis. When you ship 4 angles in parallel, you test a distribution. The best variant from each angle systematically beats the best-of-1-angle.
3 hero variants = 3 different avatars. Had we kept the same avatar across all 47 variants, we'd have saved compute but missed 2 winners. Avatar diversity captures audience sub-segments invisible in analytics.
A Pain hook copy doesn't caption like a Curiosity hook. Pain caption benefits from a 2nd empathetic line ("They lied to you for 3 years"). Curiosity caption breaks the scroll with a stat ("82% of routines are overdosed"). Generic caption = -18% measured CTR.
Want your own 47-variant matrix for your ad account? Hoox generates your UGC videos in minutes — no human creators, no studio.