---
name: "Data & funnel analytics"
repo: https://github.com/manojbajaj95/claude-gtm-plugin
source: https://github.com/manojbajaj95/claude-gtm-plugin/blob/HEAD/skills/data-and-funnel-analytics/SKILL.md
license: "MIT"
install: "npx skills add manojbajaj95/claude-gtm-plugin --skill data-and-funnel-analytics"
page: https://100xlab.com/resources/agent-skills/manojbajaj95-claude-gtm-plugin--data-and-funnel-analytics--198zpfw
---

# Data & Funnel Analytics

## Workspace Context

Read bootstrap context before asking questions: `strategy/brand.md` for brand, audience, offer, channels, tools, constraints, and metrics; `about/me.md` for personal voice; `content/ideas.md` and `content/calendar.md` for content planning. Use legacy product-marketing context files only as fallback. Save generated drafts to `content/<platform>/drafts/YYYY-MM-DD_short-topic-slug.md`, and route durable learnings back to `strategy/brand.md`, `about/me.md`, or `content/ideas.md`.

## Operating Contract

This skill is self-contained for its frontmatter scope: use its local instructions, references, scripts, and assets as the playbook; ask only for missing task-specific inputs; hand off to adjacent skills instead of expanding scope; and return an actionable artifact, decision, plan, draft, or diagnostic.



End-to-end analytics: set up tracking, interpret data, analyze funnels, measure product engagement, validate conversion paths, and calculate ROI.

**Principle:** Track for decisions, not data — every event should inform an action.

---

## Analytics Tracking

### Event Naming Convention

Format: `object_action` in lowercase snake_case.

```
signup_completed | cta_hero_clicked | checkout_started | onboarding_step_completed
```

Rules: Specific over vague (`cta_hero_clicked` not `button_clicked`), past tense for completed actions, context in properties not event name.

### Tracking Plan

| Category | Event | Key Properties |
|----------|-------|---------------|
| **Marketing** | `page_view` | page_title, page_location, referrer |
| | `cta_clicked` | button_text, location, page |
| | `form_submitted` | form_type, page |
| | `signup_completed` | method, plan |
| **Product** | `onboarding_step_completed` | step_number, step_name |
| | `feature_used` | feature_name, context |
| | `trial_started` | plan, source |
| | `purchase_completed` | plan, value, currency |
| **E-commerce** | `product_viewed` | product_id, category, price |
| | `product_added_to_cart` | product_id, price, quantity |
| | `checkout_started` | cart_value, items_count |

### Standard Properties

- **User context:** user_id, user_type (free/paid/admin), plan_type
- **Attribution:** source, medium, campaign, content, term (UTM params)
- **Page:** page_title, page_location, content_group
- **PII hygiene:** Never send email, name, or phone as event properties. Use hashed user IDs only.

### GA4 Implementation

```javascript
// gtag.js custom event
gtag('event', 'signup_completed', {
  'method': 'email',
  'plan': 'free',
  'user_id': userId
});

// GTM dataLayer
dataLayer.push({
  'event': 'signup_completed',
  'method': 'email',
  'plan': 'free'
});
```

**Enhanced Measurement** (enable in GA4): page_view, scroll, outbound_click, site_search, video_engagement, file_download.

**Conversions:** Admin → Events → Toggle "Mark as conversion." Counting: once per session (form submit) or every time (purchase).

### UTM Parameters

Convention: `utm_source={channel}&utm_medium={cpc|email|organic|social}&utm_campaign={id}&utm_content={variant}&utm_term={keyword}`

- Apply to ALL paid and email links
- Never use on internal links (breaks session attribution)
- Lowercase, hyphens not spaces
- Document in a UTM tracking sheet

### Privacy & Compliance

- GDPR/CCPA: Implement consent management, block GA4 until consent granted
- GA4 data retention: 14 months max (Admin → Data Settings)
- IP anonymization enabled

---

## Analytics Interpretation

### GA4 Benchmarks

| Metric | Good | Warning | Poor | Action When Poor |
|--------|------|---------|------|------------------|
| Avg Time on Page | >3 min | 1–3 min | <1 min | Improve content depth |
| Bounce Rate | <40% | 40–70% | >70% | Add internal links, improve intro |
| Engagement Rate | >60% | 30–60% | <30% | Review content quality |
| Scroll Depth | >75% | 50–75% | <50% | Add visual breaks |
| Pages/Session | >2.5 | 1.5–2.5 | <1.5 | Improve internal linking |

### Google Search Console Benchmarks

| Metric | Good | Warning | Poor | Action When Poor |
|--------|------|---------|------|------------------|
| CTR | >5% | 2–5% | <2% | Improve title/meta description |
| Avg Position | 1–3 | 4–10 | >10 | Strengthen content, build links |
| Impressions | Growing | Stable | Declining | Refresh content |

### Traffic Quality Matrix

```
                    High Engagement
                          │
           ┌──────────────┼──────────────┐
           │  HIDDEN GEM  │   STAR       │
           │  Low traffic  │   High traffic│
           │  → Promote   │   → Maintain  │
Low ───────┼──────────────┼──────────────┼─── High
Traffic    │  UNDERPERFORM│   LEAKY      │   Traffic
           │  Low traffic  │   High traffic│
           │  → Rework    │   → Optimize  │
           └──────────────┼──────────────┘
                          │
                    Low Engagement
```

### Anomaly Detection

| Metric | Significant Change | Alert Level |
|--------|-------------------|-------------|
| Traffic | ±30% WoW | HIGH |
| CTR | ±1pp WoW | MEDIUM |
| Position | ±5 positions | HIGH |
| Bounce Rate | ±10pp WoW | MEDIUM |

---

## Product Analytics

### North Star Metric

The ONE metric that represents customer value:

| Company | North Star |
|---------|-----------|
| Slack | Weekly Active Users |
| Airbnb | Nights Booked |
| Spotify | Time Listening |
| Shopify | GMV |

Criteria: Represents customer value, correlates with revenue, measurable frequently, rallies the team.

### Key Metrics by Stage

| Stage | Metrics |
|-------|---------|
| **Acquisition** | Traffic sources, CPC, visitor → signup rate |
| **Activation** | Signup → first core action, time to value, onboarding completion |
| **Retention** | DAU/MAU (stickiness), D1/D7/D30 retention, churn rate |
| **Revenue** | MRR/ARR, ARPU, LTV, LTV:CAC ratio |
| **Referral** | Viral coefficient, referral signups, NPS |

### Retention Benchmarks

| Timeframe | Good | Bad |
|-----------|------|-----|
| D1 | 60–80% | <40% |
| D7 | 40–60% | <10% |
| D30 | 30–50% | <2% |

Good = flattening curve. Bad = steep drop-off.

### Dashboard Design

- **Executive:** North Star Metric (big number), revenue (MRR/ARR), key trends
- **Product:** Active users, feature usage, retention cohorts, funnels
- **Marketing:** Traffic sources, conversion rates, CPA, ROI by channel

---

## Funnel Analysis

### Core Workflow

1. Load and merge user journey data
2. Define funnel steps and calculate step-by-step conversion rates
3. Segment by user attributes (device, cohort, plan)
4. Visualize bottlenecks
5. Generate optimization recommendations

### Common Funnel Types

| Funnel | Steps |
|--------|-------|
| **E-commerce** | Promotion → Search → Product View → Add to Cart → Purchase |
| **SaaS Signup** | Landing Page → Sign Up → Email Verify → Onboarding Complete |
| **Content** | Article View → Comment → Share → Subscribe |

### Analysis Patterns

- **Bottleneck identification** — Steps with highest drop-off rates
- **Segment comparison** — Conversion across user groups
- **Temporal analysis** — Conversion over time
- **A/B testing** — Compare funnel variations

See `examples/` for Python implementations with Plotly visualizations.

---

## Funnel Validation (DotCom Secrets)

Score existing funnels against Russell Brunson's framework: **Hook → Story → Offer**.

### Scoring Dimensions

| Dimension | Weight | What It Measures |
|-----------|--------|------------------|
| Hook Strength | 2x | Stops the scroll, grabs attention |
| Story Connection | 1.5x | Creates emotional connection and belief |
| Offer Clarity | 2x | Clear, compelling, irresistible |
| Value Ladder Fit | 1x | Fits the ascension path |
| Traffic Match | 1.5x | Matched to traffic temperature |
| Conversion Path | 1x | Next step obvious and frictionless |

### Rating Scale

| Score | Verdict |
|-------|---------|
| 85–100 | Conversion Machine — Ready to scale |
| 70–84 | Strong Funnel — Fix weak points, then scale |
| 55–69 | Leaky Funnel — Fix before scaling traffic |
| 40–54 | Broken Funnel — Rebuild key components |
| 0–39 | Non-Functional — Start over |

### Traffic Temperature

| Temperature | They Know | Appropriate Funnel |
|-------------|-----------|-------------------|
| Cold | Nothing about you | Lead funnel, value-first content |
| Warm | Problem + your solution | Tripwire, webinar, challenge |
| Hot | Ready to buy | Sales page, order form, call booking |

For complete scoring criteria and examples, see [references/full-guide.md](references/full-guide.md).

---

## ROI Analysis

### Core Metrics

**ROI:** `(Net Profit / Total Investment) × 100%`
- ✅ INVEST: ROI > 100% (realistic case)
- ⚠️ REVIEW: ROI 50–100%
- ❌ REJECT: ROI < 50%

**Break-Even:** `Investment / Monthly Net Profit`
- ✅ INVEST: Break-even < 50% of realistic target
- ❌ REJECT: Break-even > 70%

**Payback Period:** `Investment / Monthly Net Profit`
- ✅ INVEST: < 12 months
- ⚠️ REVIEW: 12–24 months
- ❌ REJECT: > 24 months

### 3-Scenario Analysis

Always model Best / Realistic / Worst:

| Case | Assumptions | Revenue | Profit | ROI | Assessment |
|------|------------|---------|--------|-----|------------|
| **Worst** | Pessimistic | | | | Risk level |
| **Realistic** | Expected | | | | Target |
| **Best** | Optimistic | | | | Upside |

**Decision rule:** If worst-case ROI ≥ 0%, investment is low-risk.

### Executive Summary Template

```
[Investment] achieves [ROI%] ROI at [conversion/growth rate].
Break-even occurs at [threshold], with payback in [months].
Investment is [recommended/not recommended] because [reason].
```

For detailed formulas (NPV, LTV, CAC, sensitivity analysis), see [references/roi-reference.md](references/roi-reference.md).

---

## Validation & QA

### Before Launch
- [ ] Events fire in GA4 DebugView
- [ ] Properties have expected values
- [ ] No duplicate events
- [ ] Conversions marked correctly
- [ ] UTM parameters captured on landing

### Ongoing
- **Weekly:** Check for sudden drops in key events (>20% change = investigate)
- **Monthly:** Audit for new pages/features without tracking
- **Quarterly:** Full tracking plan review — remove stale events, add missing ones

---

## Tools

| Category | Tools |
|----------|-------|
| **Event Tracking** | Mixpanel, Amplitude, PostHog (open-source) |
| **Session Recording** | FullStory, LogRocket, Hotjar |
| **A/B Testing** | Optimizely, VWO |
| **Web Analytics** | GA4, Google Search Console |
| **Tag Management** | Google Tag Manager |

---

## Related Skills

- **ab-test-setup** — A/B test measurement and setup
- **seo-and-aeo-strategy** — Measuring SEO/AEO performance
- **conversion-rate-optimization** — Optimizing conversion after funnel analysis
- **executive-dashboard-generator** — Building dashboards from analytics data

---

## Supporting file: references/full-guide.md

# Funnel Validator - Full Guide

## Execution Workflow

### Step 1: Gather the Funnel

Ask the user:

> **Show me your funnel. I need to see:**
>
> 1. What's the funnel URL or can you describe each step?
> 2. What's the entry point? (Ad, email, content, etc.)
> 3. What are you selling? (Free offer, low-ticket, high-ticket?)
> 4. What's the desired action? (Opt-in, purchase, call booking?)
> 5. Where is traffic coming from? (Paid ads, organic, email list?)
> 6. What's your current conversion rate? (If known)

**Funnel Types (Reference):**

- **Lead Funnel:** Free offer → Opt-in → Thank you + Upsell
- **Tripwire Funnel:** Low-ticket offer ($7-47) → Order form → OTO
- **Webinar Funnel:** Registration → Webinar → Application/Sale
- **Application Funnel:** Free content → Application → Call → Sale
- **Challenge Funnel:** Free challenge → Daily content → Pitch

### Step 2: Score Hook Strength (0-10, Weight: 2x)

Evaluate the **first 3 seconds** of the funnel experience:

- Does the **headline** stop the scroll?
- Is there a **pattern interrupt** (unexpected element)?
- Is the **hook specific** to the target audience?
- Does it create **curiosity** or **urgency**?
- Is the **promise** immediately clear?

**Scoring Criteria:**

| Score | Description |
|-------|-------------|
| 9-10 | Scroll-stopping hook, specific to audience, creates immediate curiosity |
| 7-8 | Strong hook, grabs attention, clear promise |
| 5-6 | Decent hook, somewhat generic, could be stronger |
| 3-4 | Weak hook, generic, doesn't stand out |
| 0-2 | No hook, boring headline, immediate bounce |

**Red Flags:**

- Generic headlines ("Welcome to our page")
- No headline above the fold
- Hook doesn't match the traffic source
- No curiosity or urgency element
- Wall of text before the hook

**Hook Formula:**

```
[End Result] + [Time Period] + [Address Objection]
"How to [Result] in [Time] Without [Objection]"
```

### Step 3: Score Story Connection (0-10, Weight: 1.5x)

Evaluate the **emotional journey**:

- Is there an **origin story** or **epiphany bridge**?
- Does the story create **relatability** ("I was like you")?
- Is there **conflict** and **transformation**?
- Does it build **belief** that the solution works?
- Is the story **relevant** to the audience's pain?

**Scoring Criteria:**

| Score | Description |
|-------|-------------|
| 9-10 | Powerful epiphany bridge, emotionally resonant, builds complete belief |
| 7-8 | Good story, relatable, some emotional connection |
| 5-6 | Story present but weak, or too long, or disconnected |
| 3-4 | Minimal story, facts without emotion |
| 0-2 | No story, just features and claims |

**Red Flags:**

- No story at all
- Story about the company, not the customer
- Story too long (loses attention)
- Story doesn't connect to the offer
- No transformation shown

**Epiphany Bridge Framework:**

```
1. Backstory (where you were)
2. Wall (the problem you hit)
3. Epiphany (the breakthrough discovery)
4. Plan (what you did about it)
5. Success (the result you achieved)
6. Transformation (who you became)
```

### Step 4: Score Offer Clarity (0-10, Weight: 2x)

Evaluate the **offer presentation**:

- Is the offer **immediately clear**?
- Is the **value proposition** compelling?
- Are the **deliverables** specific?
- Is there a **stack** (multiple components)?
- Is the **price** positioned correctly?

**Scoring Criteria:**

| Score | Description |
|-------|-------------|
| 9-10 | Crystal clear offer, overwhelming value stack, irresistible positioning |
| 7-8 | Clear offer, good value stack, compelling presentation |
| 5-6 | Offer understood but not compelling, weak stack or positioning |
| 3-4 | Confusing offer, unclear what they get |
| 0-2 | No clear offer, or buried below the fold |

**Red Flags:**

- Offer buried below the fold
- Confusing pricing or options
- No value stack
- Features without benefits
- Multiple CTAs competing

**Offer Clarity Test:**
Can someone explain what they get in one sentence?

### Step 5: Score Value Ladder Fit (0-10, Weight: 1x)

Evaluate **funnel positioning** in the ascension path:

- Does this funnel **match** the traffic temperature?
- Is there a logical **next step** after conversion?
- Does the offer **ascend** to higher-ticket?
- Is there a **tripwire** to create buyers?
- Is the **pricing** appropriate for this funnel stage?

**Scoring Criteria:**

| Score | Description |
|-------|-------------|
| 9-10 | Perfect ladder fit, clear ascension, obvious next step |
| 7-8 | Good ladder fit, ascension path exists |
| 5-6 | Decent fit, but gaps in the ladder |
| 3-4 | Funnel doesn't fit the ladder, pricing mismatch |
| 0-2 | No value ladder, dead-end funnel |

**Red Flags:**

- High-ticket offer to cold traffic
- No upsell or next step after purchase
- Pricing jump too large between steps
- Lead magnet unrelated to paid offer

### Step 6: Score Traffic Match (0-10, Weight: 1.5x)

Evaluate **traffic-to-funnel alignment**:

- Does the funnel match the **traffic temperature**?
- Is the **message-to-market match** strong?
- Does the landing page **continue the conversation** from the ad?
- Is the **ask appropriate** for the traffic type?
- Is there **congruence** from click to page?

**Scoring Criteria:**

| Score | Description |
|-------|-------------|
| 9-10 | Perfect match, message continues seamlessly, appropriate ask |
| 7-8 | Good match, minor disconnects, mostly congruent |
| 5-6 | Decent match, some friction, message shift |
| 3-4 | Poor match, confusing transition, wrong ask |
| 0-2 | Complete mismatch, traffic bouncing immediately |

**Red Flags:**

- Selling high-ticket to cold traffic
- Long-form sales page for hot traffic
- No scent trail from ad to page
- Headline doesn't match ad copy
- Asking for too much too soon

### Step 7: Score Conversion Path (0-10, Weight: 1x)

Evaluate the **path to conversion**:

- Is the **CTA** clear and prominent?
- Is there **one primary action** (not multiple)?
- Is the **form** simple (minimal fields)?
- Is there **friction** in the process?
- Is the **next step** obvious after conversion?

**Scoring Criteria:**

| Score | Description |
|-------|-------------|
| 9-10 | One clear CTA, minimal friction, obvious next step |
| 7-8 | Clear CTA, some minor friction, good path |
| 5-6 | CTA present but not prominent, some friction |
| 3-4 | Multiple CTAs competing, confusing path |
| 0-2 | No clear CTA, or buried, major friction |

**Red Flags:**

- Multiple CTAs on the page
- Long forms with unnecessary fields
- No CTA above the fold
- Unclear what happens after clicking
- Exit popups before they've read anything

**CTA Best Practices:**

- One primary CTA per page
- Button text = outcome ("Get Instant Access")
- CTA above the fold AND at the end
- Minimize form fields (name + email max for opt-in)

### Step 8: Calculate Final Score

**Formula:**

```
Hook Strength × 2 = ___
Story Connection × 1.5 = ___
Offer Clarity × 2 = ___
Value Ladder Fit × 1 = ___
Traffic Match × 1.5 = ___
Conversion Path × 1 = ___
─────────────────────────
TOTAL = ___ / 100
```

### Step 9: Generate Recommendations

For each dimension scoring **below 7**, provide:

1. **What's wrong** (specific diagnosis)
2. **How to fix it** (actionable steps)
3. **Example** (show them what good looks like)

## Output Format

```markdown
# Funnel Validation: [Funnel Name/URL]

## Quick Rating

| Rating | Score | Verdict |
|--------|-------|---------|
| [Conversion Machine / Strong / Leaky / Broken / Non-Functional] | XX/100 | [One-line summary] |

## Score Breakdown

| Dimension | Raw Score | Weight | Weighted Score | Status |
|-----------|-----------|--------|----------------|--------|
| Hook Strength | X/10 | ×2 | XX/20 | [Fix/Optimize/Strong] |
| Story Connection | X/10 | ×1.5 | XX/15 | [Fix/Optimize/Strong] |
| Offer Clarity | X/10 | ×2 | XX/20 | [Fix/Optimize/Strong] |
| Value Ladder Fit | X/10 | ×1 | XX/10 | [Fix/Optimize/Strong] |
| Traffic Match | X/10 | ×1.5 | XX/15 | [Fix/Optimize/Strong] |
| Conversion Path | X/10 | ×1 | XX/10 | [Fix/Optimize/Strong] |
| **TOTAL** | | | **XX/100** | |

## Detailed Assessment

### Hook Strength: X/10
**What's Working:** [Positive aspects]
**Conversion Killer:** [What's causing drop-off]
**Fix:** [Specific action to improve]
**Better Hook:** "[Example rewrite]"

### Story Connection: X/10
**What's Working:** [Positive aspects]
**Conversion Killer:** [What's causing drop-off]
**Fix:** [Specific action to improve]

### Offer Clarity: X/10
**What's Working:** [Positive aspects]
**Conversion Killer:** [What's causing drop-off]
**Fix:** [Specific action to improve]

### Value Ladder Fit: X/10
**What's Working:** [Positive aspects]
**Conversion Killer:** [What's causing drop-off]
**Fix:** [Specific action to improve]

### Traffic Match: X/10
**What's Working:** [Positive aspects]
**Conversion Killer:** [What's causing drop-off]
**Fix:** [Specific action to improve]

### Conversion Path: X/10
**What's Working:** [Positive aspects]
**Conversion Killer:** [What's causing drop-off]
**Fix:** [Specific action to improve]

## Conversion Killers (Fix These First)

1. **[Dimension]:** [Specific issue + expected lift from fixing]
2. **[Dimension]:** [Specific issue + expected lift from fixing]
3. **[Dimension]:** [Specific issue + expected lift from fixing]

## Next Steps

### If Score 85+:
- [ ] Scale traffic
- [ ] A/B test minor optimizations
- [ ] Add upsells/cross-sells

### If Score 70-84:
- [ ] Fix priority conversion killers above
- [ ] Re-validate after changes
- [ ] Use `copy-validator` to check copy quality

### If Score 55-69:
- [ ] Major rework needed before scaling
- [ ] Use `funnel-architect` to redesign weak areas
- [ ] Fix hook and offer first

### If Score Below 55:
- [ ] Do not send traffic to this funnel
- [ ] Use `funnel-architect` to rebuild
- [ ] Consider using `offer-validator` to validate the core offer
```

## Example Validations

### Example: Leaky Funnel

**User's Funnel:** Lead magnet opt-in page

**Issues Found:**

- Generic headline: "Download Our Free Guide"
- No story, just bullet points
- Form asks for phone number (unnecessary friction)
- No scent trail from Facebook ad

**Validation:**

| Dimension | Score | Issue |
|-----------|-------|-------|
| Hook Strength | 4/10 | Generic, doesn't stop scroll |
| Story Connection | 2/10 | No story at all |
| Offer Clarity | 6/10 | Clear but not compelling |
| Value Ladder Fit | 7/10 | Good fit for lead gen |
| Traffic Match | 4/10 | Ad message doesn't continue |
| Conversion Path | 5/10 | Phone number field adding friction |

**Total: 46/100 - Broken Funnel**

**Priority Fixes:**

1. **Hook:** Rewrite to "How I Got 50 Clients in 30 Days Without Paid Ads"
2. **Story:** Add 2-3 sentence epiphany bridge about discovery
3. **Traffic Match:** Match headline to exact ad copy
4. **Conversion Path:** Remove phone number, keep name + email only

### Example: Strong Funnel

**User's Funnel:** Webinar registration

**Strengths:**

- Scroll-stopping hook with specific result
- Strong origin story video
- Clear value stack for attending
- Perfect traffic match from YouTube ads
- Single CTA, minimal form

**Validation:**

| Dimension | Score | Notes |
|-----------|-------|-------|
| Hook Strength | 9/10 | Specific, scroll-stopping, curiosity-driven |
| Story Connection | 8/10 | Good video story, could be tighter |
| Offer Clarity | 8/10 | Clear what they'll learn |
| Value Ladder Fit | 9/10 | Perfect for warm traffic |
| Traffic Match | 9/10 | YouTube ad → Webinar seamless |
| Conversion Path | 8/10 | Clean, but could add countdown |

**Total: 85/100 - Conversion Machine**

**Minor Optimizations:**

1. Add countdown timer to increase urgency
2. Tighten video story to under 2 minutes

## Common Validation Mistakes

1. **Ignoring Traffic Temperature:** The funnel might be great for the wrong traffic
2. **Missing the Hook:** First 3 seconds determine everything
3. **Forgetting Mobile:** Most traffic is mobile—test on phone
4. **Too Many CTAs:** One page, one goal
5. **No A/B Testing Reference:** Ask what they've already tested
6. **Ignoring the Ad:** The funnel starts with the traffic source

---

## Supporting file: references/prpm.json

```json
{
  "name": "roi-analyzer",
  "version": "1.0.0",
  "description": "Comprehensive ROI and business value analysis framework with financial modeling and investment evaluation",
  "author": "Tempuss",
  "license": "MIT",
  "repository": "https://github.com/Tempuss/agent-hub",
  "format": "claude",
  "subtype": "skill",
  "tags": [
    "roi-analysis",
    "financial-modeling",
    "investment-evaluation",
    "business-value",
    "cost-benefit-analysis"
  ],
  "files": [
    "SKILL.md",
    "README.md",
    "REFERENCE.md"
  ]
}
```

---

## Supporting file: references/roi-reference.md

# ROI Analyzer Reference Guide

## Core Formulas

### 1. ROI (Return on Investment)

```
ROI = (Net Profit / Total Investment) × 100%

Where:
Net Profit = Revenue - Total Costs
Total Costs = Investment + Operating Costs

Example:
- Investment: 100M KRW
- Revenue: 200M KRW
- Operating Costs: 50M KRW
- Net Profit: 200M - 50M - 100M = 50M KRW
- ROI: (50M / 100M) × 100% = 50%
```

### 2. Break-Even Point (BEP)

**For Project Investment**:
```
Break-Even Point = Total Investment / (Revenue per Unit - Variable Cost per Unit)

Or for subscription:
Break-Even Months = Total Investment / Monthly Net Profit

Example:
- Investment: 120M KRW
- Monthly Revenue: 20M KRW
- Monthly Costs: 10M KRW
- Monthly Net Profit: 10M KRW
- BEP: 120M / 10M = 12 months
```

**For Conversion-Based Projects**:
```
Break-Even Conversion Rate = Investment / Potential Revenue

Example (Phase 0 → Phase 1):
- Investment: 50M KRW
- Phase 1 Contract: 200M KRW
- BEP: 50M / 200M = 25% conversion needed
```

### 3. Payback Period

```
Payback Period = Investment / Annual Net Cash Flow

Or monthly:
Payback Months = Investment / Monthly Net Profit

Example:
- Investment: 240M KRW
- Monthly Profit: 20M KRW
- Payback: 240M / 20M = 12 months
```

### 4. Net Present Value (NPV)

For multi-year projects:
```
NPV = Σ (Cash Flow_t / (1 + r)^t) - Investment

Where:
- t = year (1, 2, 3...)
- r = discount rate (typically 10-15%)

Example (3 years, 10% discount):
- Y0: -200M (investment)
- Y1: +50M / 1.1 = 45.5M
- Y2: +100M / 1.21 = 82.6M
- Y3: +150M / 1.33 = 112.8M
- NPV: 45.5 + 82.6 + 112.8 - 200 = 40.9M KRW ✅
```

---

## Scenario Analysis Framework

### 3-Scenario Template

| Scenario | Probability | Key Assumptions | ROI | Assessment |
|----------|------------|-----------------|-----|------------|
| **Worst** | 10-20% | [List pessimistic] | | Risk level |
| **Realistic** | 60-70% | [List expected] | | Target |
| **Best** | 10-20% | [List optimistic] | | Upside |

### Variable Selection (Top 5)

For each scenario, vary these 5 variables:

1. **Revenue Growth Rate**
   - Worst: 50% of target
   - Realistic: Target
   - Best: 150% of target

2. **Customer Acquisition Cost (CAC)**
   - Worst: 2x budget
   - Realistic: Budget
   - Best: 0.5x budget

3. **Churn Rate**
   - Worst: 10%/month
   - Realistic: 5%/month
   - Best: 2%/month

4. **Pricing / ARPU**
   - Worst: -20% (discounts needed)
   - Realistic: Target price
   - Best: +20% (premium positioning)

5. **Time to Market / Launch Delay**
   - Worst: +3 months
   - Realistic: On time
   - Best: -1 month

### Example: B2B SaaS 3-Year Scenarios

**Assumptions**:
- Investment: 200M KRW
- Target MRR: Y1: 10M, Y2: 30M, Y3: 60M
- Monthly Costs: 15M KRW

**Worst Case** (50% revenue, 2x CAC, 10% churn):
```
| Year | MRR | ARR | Churn Impact | Net ARR | Costs | Profit |
|------|-----|-----|--------------|---------|-------|--------|
| Y1 | 5M | 60M | -20M (churn) | 40M | 180M | -140M |
| Y2 | 15M | 180M | -60M | 120M | 180M | -60M |
| Y3 | 30M | 360M | -120M | 240M | 180M | +60M |

3-Year Total: -140M (ROI: -70%) ❌
Payback: 36+ months
```

**Realistic Case** (target):
```
| Year | MRR | ARR | Churn (5%) | Net ARR | Costs | Profit |
|------|-----|-----|-----------|---------|-------|--------|
| Y1 | 10M | 120M | -6M | 114M | 180M | -66M |
| Y2 | 30M | 360M | -18M | 342M | 180M | +162M |
| Y3 | 60M | 720M | -36M | 684M | 180M | +504M |

3-Year Total: +600M (ROI: +300%) ✅
Payback: 18 months
```

**Best Case** (150% revenue, 0.5x CAC, 2% churn):
```
| Year | MRR | ARR | Churn (2%) | Net ARR | Costs | Profit |
|------|-----|-----|-----------|---------|-------|--------|
| Y1 | 15M | 180M | -4M | 176M | 180M | -4M |
| Y2 | 45M | 540M | -11M | 529M | 180M | +349M |
| Y3 | 90M | 1080M | -22M | 1058M | 180M | +878M |

3-Year Total: +1223M (ROI: +612%) ✅
Payback: 13 months
```

---

## Sensitivity Analysis

### Single-Variable Sensitivity

Test each variable independently (hold others constant):

**Example: Revenue Growth Rate Sensitivity**

| Growth Rate | Y3 ARR | 3-Year Profit | ROI | Payback |
|-------------|--------|---------------|-----|---------|
| -50% | 360M | -140M | -70% | Never |
| -25% | 540M | +240M | +120% | 30 months |
| **Target** | **720M** | **+600M** | **+300%** | **18 months** |
| +25% | 900M | +960M | +480% | 12 months |
| +50% | 1080M | +1320M | +660% | 10 months |

**Key Insight**: Revenue growth is THE critical variable (high sensitivity)

### Multi-Variable Sensitivity Matrix

Test combinations of top 2 variables:

|  | CAC -50% | CAC Target | CAC +100% |
|--|----------|-----------|-----------|
| **Revenue +50%** | ROI 800% | ROI 660% | ROI 480% |
| **Revenue Target** | ROI 400% | ROI 300% | ROI 180% |
| **Revenue -50%** | ROI 0% | ROI -70% | ROI -150% |

**Key Insight**: If CAC doubles AND revenue misses by 50%, project fails

---

## Industry Benchmarks

### SaaS Metrics (B2B)

| Metric | Seed | Series A | Series B+ |
|--------|------|----------|-----------|
| **ARR Growth** | 3x YoY | 2.5x YoY | 2x YoY |
| **CAC** | < 6mo LTV | < 12mo LTV | < 18mo LTV |
| **Churn (Annual)** | <30% | <20% | <10% |
| **Gross Margin** | 50%+ | 70%+ | 80%+ |
| **Payback Period** | <12mo | <18mo | <24mo |
| **ROI (3 years)** | 200%+ | 300%+ | 400%+ |

### E-commerce

| Metric | Target |
|--------|--------|
| **Gross Margin** | 30-50% |
| **CAC Payback** | 3-6 months |
| **Repeat Rate** | 30%+ |
| **LTV:CAC Ratio** | 3:1 minimum |
| **ROI (1 year)** | 100%+ |

### Hardware / Physical Products

| Metric | Target |
|--------|--------|
| **Gross Margin** | 40-60% |
| **Inventory Turns** | 6-12x/year |
| **Payback Period** | 6-12 months |
| **ROI (2 years)** | 150%+ |

---

## Advanced Analysis

### Customer Lifetime Value (LTV)

```
LTV = ARPU × Gross Margin % × (1 / Monthly Churn Rate)

Example (B2B SaaS):
- ARPU: 50,000 KRW/month
- Gross Margin: 80%
- Monthly Churn: 5%
- LTV: 50,000 × 0.8 × (1/0.05) = 800,000 KRW

Target: LTV:CAC ≥ 3:1
```

### Customer Acquisition Cost (CAC)

```
CAC = (Marketing Spend + Sales Spend) / New Customers

Example:
- Marketing: 10M KRW/month
- Sales: 5M KRW/month
- New Customers: 50/month
- CAC: 15M / 50 = 300,000 KRW

Target: CAC Payback < 12 months
```

### Cohort Analysis

Track each monthly cohort separately:

| Signup Month | M0 | M1 | M2 | M3 | M6 | M12 |
|--------------|----|----|----|----|----|----|
| Jan 2024 | 100% | 80% | 70% | 65% | 55% | 45% |
| Feb 2024 | 100% | 85% | 75% | 70% | 60% | ? |
| Mar 2024 | 100% | 90% | 80% | 75% | ? | ? |

**Insight**: Retention improving (Feb/Mar > Jan at same stages)

---

## Risk Assessment Framework

### Risk Scoring

| Risk Factor | Weight | Score (1-5) | Weighted Score |
|-------------|--------|-------------|----------------|
| Market Size | 20% | | |
| Competition | 15% | | |
| Technical Feasibility | 15% | | |
| Team Experience | 15% | | |
| Funding Runway | 15% | | |
| Regulatory | 10% | | |
| Economic Conditions | 10% | | |
| **Total** | **100%** | | **?/5** |

**Interpretation**:
- 4.0+: Low risk ✅
- 3.0-4.0: Moderate risk ⚠️
- <3.0: High risk ❌

### Contingency Planning

For each major risk (score ≤2), define:

```
Risk: [Description]
Likelihood: [%]
Impact: [Financial impact if occurs]
Mitigation: [Preventive actions]
Contingency: [Plan B if it happens]
Owner: [Responsible person]
```

---

## Decision Trees

### Investment Decision Tree

```
Start
├─ ROI (realistic) ≥ 100%?
│  ├─ Yes → Continue
│  └─ No → ❌ REJECT
│
├─ Payback ≤ 18 months?
│  ├─ Yes → Continue
│  └─ No → ⚠️ REVIEW (require strong strategic value)
│
├─ Break-even achievable at <50% of target?
│  ├─ Yes → Continue
│  └─ No → ⚠️ REVIEW (high execution risk)
│
├─ Worst-case ROI ≥ 0%?
│  ├─ Yes → ✅ INVEST
│  └─ No → ⚠️ REVIEW (potential loss)
```

### Phase Progression Decision (0→1→2)

```
Phase 0 Complete
├─ Conversion ≥ 70%?
│  ├─ Yes → ✅ Proceed to Phase 1
│  └─ No → Check conversion
│     ├─ 50-70%? → ⚠️ Improve & retry
│     └─ <50%? → ❌ Cancel or pivot
│
Phase 1 Complete
├─ ROI ≥ 150%?
│  ├─ Yes → ✅ Proceed to Phase 2
│  └─ No → Check metrics
│     ├─ 100-150%? → ⚠️ Optimize first
│     └─ <100%? → ❌ Pause expansion
```

---

**See Skill.md for**: Quick examples, templates, common use cases
