Skip to content
Business
Skill

/cac-modeler

Models LTV, CAC by channel, LTV:CAC ratios, and payback period for an indie developer. Uses market_insights to calibrate channel CPMs and competitive intensity. Includes indie budget tier definitions and viability thresholds.

BOOST
From plugin
idea-validation-agents
47915 skills
Install
$ npx -y skills add MaxKmet/idea-validation-agents --skill cac-modeler --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cac-modeler

Context preview

The summary Claude sees to decide when to auto-load this skill.

Models LTV, CAC by channel, LTV:CAC ratios, and payback period for an indie developer. Uses market_insights to calibrate channel CPMs and competitive intensity. Includes indie budget tier definitions and viability thresholds.

SKILL.md

cac-modeler.SKILL.md
name: cac-modeler
description: Models LTV, CAC by channel, LTV:CAC ratios, and payback period for an indie developer. Uses market_insights to calibrate channel CPMs and competitive intensity. Includes indie budget tier definitions and viability thresholds.

<!-- version: 0.2.0 | outputs: memory/ideas/<slug>/cac.json -->

Skill: cac-modeler

Purpose

Determine whether this indie developer can realistically acquire users profitably given their budget and the competitive landscape. Many ideas fail not because of bad products but because CAC exceeds LTV at indie scale. This skill builds a complete unit economics picture: LTV from retention and pricing, CAC from channel benchmarks calibrated by market_insights signals, and a payback timeline that tells the founder how long they need to fund growth before the business sustains itself.

Input

  • Idea slug
  • `memory/user_profile.md` (budget constraint, ICP tier)
  • `memory/ideas/<slug>/pricing.json` (target price → revenue per user)
  • `memory/ideas/<slug>/retention.json` (D30 retention, churn risk → estimated lifespan)
  • `memory/ideas/<slug>/distribution.json` (viable channels, k-factor, ASO opportunity, creator fit)
  • `memory/ideas/<slug>/competitors.json` (competitor pricing and scale signals — optional)
  • `memory/market_insights/<niche>-*-<YYYY>-<MM>.md` (trend data — **use all available platform files**)

Using Market Insights

Trend analysis files provide critical calibration for CAC estimates. Extract the following:

| Field | How it informs CAC | |---|---| | `trend_velocity` | Rising markets have lower organic CAC (more discovery demand) but higher paid CAC (more advertisers bidding). Declining markets have the inverse. | | `top_signals` (TikTok hashtags, Reddit threads, App Store categories) | Validate which organic channels have real activity — a niche trending on TikTok means TikTok organic CAC is at the lower end of the range | | `monetization_evidence` | If competitors are already running ads (visible in trend narratives), paid CPMs in that niche are likely elevated. Adjust paid CAC estimates upward. | | Platform narrative (Reddit pain points, creator engagement) | Identifies which communities are already activated — lower cost to reach an audience that's already discussing the problem |

LTV Estimation

LTV is the foundation. Without an accurate LTV, CAC ratios are meaningless.

LTV Formula

LTV = ARPU_monthly × average_lifespan_months

Where:

  • **ARPU_monthly** (Average Revenue Per User per month):
  • Subscription: `target_price × (1 - churn_rate_monthly)`
  • Freemium: `target_price × freemium_conversion_estimate`
  • One-time purchase: `price / 12` (annualized for comparison)
  • Consumables: `average_monthly_spend` (estimate from category)
  • **average_lifespan_months** (derived from retention.json):

| D30 retention | Estimated avg lifespan | Rationale | |---|---|---| | ≥ 25% | 12–18 months | Strong retention; users who survive D30 tend to stay long | | 15–24% | 6–12 months | Decent; typical for well-executed niche apps | | 8–14% | 3–6 months | Below average; expect significant churn in months 2–3 | | < 8% | 1–3 months | Disposable; most users gone within a billing cycle |

If `retention.json` is unavailable, use category median D30 benchmarks:

| Category | Median D30 | |---|---| | Social / messaging | 15–25% | | Health & fitness | 10–18% | | Finance / budgeting | 12–20% | | Productivity / tools | 8–15% | | Games (casual) | 5–12% | | Education | 6–12% | | Lifestyle / habit | 10–18% | | Creative tools | 12–20% |

LTV Confidence

| Data available | Confidence | |---|---| | `pricing.json` + `retention.json` with D30 data | High | | `pricing.json` only (using category median retention) | Medium | | Neither (using category defaults for both) | Low — flag prominently |

CAC by Channel

Indie Budget Tiers

Define the founder's budget context before estimating per-channel CAC:

| Tier | Monthly ad/marketing spend | Who this is | Implication | |---|---|---|---| | **Bootstrap** | $0–$100/mo | Beginner or side-project builder | Paid channels are off the table. Must rely entirely on organic. | | **Lean** | $100–$500/mo | Builder with some runway | Can test one paid channel with tight creative constraints. | | **Moderate** | $500–$2,000/mo | Growth-tier or funded builder | Can run proper paid campaigns with A/B testing on one platform. | | **Serious** | > $2,000/mo | Rare for indie; growth stage | Multi-platform paid, retargeting, influencer budgets. |

Map from `user_profile.md`: `budget_constraint` = "low" → Bootstrap. "medium" → Lean. "high" → Moderate or Serious (ask if ambiguous).

Channel CAC Estimation

For each channel, estimate CAC using the funnel model:

CAC = cost_per_impression / (CTR × install_rate × activation_rate)

For organic channels, "cost" is time-valued at $0 but the skill reports the **effective CAC** — the opportunity cost of the founder's time, normalized per acquired user.

Channel benchmarks with market_insights adjustments

| Channel | Base CAC range | Adjust down if | Adjust up if | |---|---|---|---| | **ASO organic** | $0.50–$3.00 | ASO opportunity = "high" (from distribution.json); niche category with low competition | Saturated category; `market_saturation` = "high" from competitors.json | | **Content / SEO** | $1.00–$8.00 | Niche has high search volume with low-quality top results; `rising` or `rising-fast` trend velocity | Competitive keywords dominated by established brands | | **TikTok organic** | $0.50–$5.00 | Niche is trending on TikTok (visible in market_insights top_signals); app produces shareable output (content-as-distribution loop) | Low TikTok engagement for this category; no visual hook | | **Reddit / community** | $0.50–$4.00 | Active communities discussing this problem (from Reddit market_insights); founder is an active community member | Small or inactive communities; product is hard to discuss authentically | | **Paid social (Me

Read more
Ships withidea-validation-agents

AI agents that act as your personal venture analyst - from startup idea brainstorming to full validation and go-to-market strategy. Built for developers who'd rather validate in 10 minutes than regret in six months. Powered by Claude Code, OpenAI Codex, and Cursor.

Get the whole plugin
Stats
480
Stars
57
Forks
Maintained
Maintenance
MIT
License
4mo ago
Last commit
6mo ago
Created
4h ago
Added

Repo: MaxKmet/idea-validation-agents

Other skills on idea-validation-agents.