Agent skill
ltv-cac-modeling-framework
This skill should be used when the user asks to \"calculate customer lifetime value\", \"set CPA targets based on LTV\", \"evaluate LTV to CAC ratio\", \"calculate payback period\", or mentions \"LTV:CAC\", \"customer acquisition cost\", \"MER\", or \"maximum allowable acquisition cost\".
Filed under ABM and paid.
From Ad-Superpowers/ad-superpowers-plugin · 120 skills · 5 · pushed 2026-09-10
What it does when it runs
This skill should be used when the user asks to \"calculate customer lifetime value\", \"set CPA targets based on LTV\", \"evaluate LTV to CAC ratio\", \"calculate payback period\", or mentions \"LTV:CAC\", \"customer acquisition cost\", \"MER\", or \"maximum allowable acquisition cost\". Do NOT use for: single-campaign ROAS optimization (use platform-specific skills), creative performance analysis (use creative-fatigue-analyzer), or funnel structure design (use ecommerce-funnel-optimizer).
Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Ad-Superpowers/ad-superpowers-plugin.git /tmp/ad-superpowers-plugin git -C /tmp/ad-superpowers-plugin sparse-checkout set "plugin/skills/ltv-cac-modeling-framework" mkdir -p ~/.claude/skills/ltv-cac-modeling-framework cp -R "/tmp/ad-superpowers-plugin/plugin/skills/ltv-cac-modeling-framework/." ~/.claude/skills/ltv-cac-modeling-framework/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 120 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add Ad-Superpowers/ad-superpowers-plugin /plugin
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from Ad-Superpowers/ad-superpowers-plugin/blob/9b6385d2d2d228e4dac096a1d6bc5715c04fa736/plugin/skills/ltv-cac-modeling-framework/SKILL.md, which is licensed MIT (repository). 2,715 words, 41 headings.
LTV:CAC Modeling Framework
Purpose
Provide advertisers and agencies with a rigorous framework for connecting customer lifetime value to acquisition cost, enabling profitable scaling decisions. Stop optimizing for cheap conversions and start optimizing for valuable customers.
When to Use This Skill
Invoke when user mentions:
- LTV/CLV: "What's the lifetime value of my customers?"
- CAC: "How much should I spend to acquire a customer?"
- CPA targets: "What CPA is profitable?"
- Budget ceilings: "How much can I afford to spend on ads?"
- Payback period: "How long until I recover my acquisition cost?"
- MER: "What's my marketing efficiency ratio?"
- Cohort analysis: "How do customers from different channels compare?"
- Sustainability: "Is my ad spend sustainable long-term?"
Part 1: LTV Calculation Methods
Method 1: Historic LTV (Simplest)
Historic LTV = Total Revenue from Customer Segment / Number of Customers in Segment
Example:
Total revenue from 2024 customers: €500,000
Number of customers acquired in 2024: 2,000
Historic LTV = €500,000 / 2,000 = €250
Pros: Simple, uses real data. Cons: Backward-looking, doesn't account for future purchases, skewed by outliers.
When to use: Early-stage businesses with 6-12 months of data as a starting baseline.
Method 2: Predictive LTV (Recommended)
Predictive LTV = (Average Order Value) × (Purchase Frequency per Year) × (Customer Lifespan in Years)
Example:
AOV: €65
Purchases per year: 3.2
Average customer lifespan: 2.5 years
Predictive LTV = €65 × 3.2 × 2.5 = €520
Enriched formula (accounts for margin):
Gross Profit LTV = AOV × Gross Margin % × Purchase Frequency × Customer Lifespan
Example:
AOV: €65, Margin: 55%, Frequency: 3.2/yr, Lifespan: 2.5yr
Gross Profit LTV = €65 × 0.55 × 3.2 × 2.5 = €286
This is the number that matters for ad decisions — LTV based on gross profit, not revenue.
Method 3: Cohort-Based LTV (Most Accurate)
Track actual revenue generated by customer cohorts over time:
| Cohort | Month 0 | Month 3 | Month 6 | Month 12 | Month 18 | Month 24 |
|---|---|---|---|---|---|---|
| Jan 2025 | €45 | €72 | €105 | €168 | €210 | €245 |
| Apr 2025 | €52 | €81 | €118 | €182 | €225 | — |
| Jul 2025 | €48 | €76 | €112 | €175 | — | — |
| Oct 2025 | €55 | €85 | €124 | — | — | — |
Key insights from cohort analysis:
- Revenue curve shape tells you when most value is captured
- Compare cohorts by acquisition channel to find highest-value sources
- Identify if LTV is improving or declining over time (product-market fit signal)
LTV by Acquisition Channel
This is where ad platform data becomes critical. Different channels attract different customer quality:
| Channel | Typical LTV Index | Why |
|---|---|---|
| Google Brand Search | 120-150 (highest) | Already know and seek you out |
| Google Non-Brand Search | 100-120 | High intent, specific need |
| Meta Lookalike | 90-110 | Similar to existing customers |
| Meta Broad/Interest | 70-90 | Discovery buyers, lower retention |
| TikTok | 60-85 | Impulse-driven, younger, lower repeat |
| Google Shopping | 80-110 | Price-comparison shoppers, variable loyalty |
| Google Display | 50-70 | Lowest intent, highest churn |
Action: Don't apply one CPA target across all channels. Willingness to pay for acquisition should scale with expected LTV.
Part 2: CAC Calculation
Blended CAC
Blended CAC = Total Marketing Spend / Total New Customers Acquired
Example:
Monthly ad spend: €25,000
Monthly new customers: 500
Blended CAC = €25,000 / 500 = €50
Include in "Total Marketing Spend":
- All ad platform spend (Meta, Google, TikTok, LinkedIn)
- Agency fees or management costs
- Creative production costs
- Tool/software costs (analytics, attribution, creative tools)
Per-Channel CAC
Channel CAC = Channel Spend / New Customers Attributed to Channel
Example:
Meta spend: €12,000, Meta new customers: 280 → CAC = €42.86
Google spend: €10,000, Google new customers: 180 → CAC = €55.56
TikTok spend: €3,000, TikTok new customers: 40 → CAC = €75.00
Attribution caveat: Last-click attribution undervalues top-of-funnel channels and overvalues bottom-of-funnel. Use multi-touch or data-driven attribution when available.
CAC by Customer Type
| Customer Type | Typical CAC Multiplier | Notes |
|---|---|---|
| First-time buyer | 1.0x (baseline) | Standard acquisition |
| Repeat buyer (reactivated) | 0.3-0.5x | Much cheaper, use retargeting |
| High-value buyer (above median AOV) | 1.5-2.5x | Worth paying more |
| Subscriber/membership | 2-4x first-month cost | Justified by recurring revenue |
Part 3: LTV:CAC Ratio Analysis
The Core Ratio
LTV:CAC Ratio = Customer Lifetime Value (Gross Profit) / Customer Acquisition Cost
Benchmark Interpretation
| LTV:CAC Ratio | Interpretation | Action |
|---|---|---|
| < 1:1 | Losing money on every customer | Stop spending. Fix product, pricing, or retention first. |
| 1:1 to 2:1 | Marginal/unsustainable | Reduce CAC (improve targeting) or increase LTV (retention, AOV). |
| 2:1 to 3:1 | Acceptable but tight | Optimize carefully. Good if payback is < 6 months. |
| 3:1 | Healthy benchmark | Standard target for most e-commerce businesses. |
| 3:1 to 5:1 | Strong unit economics | Room to scale spend aggressively. |
| > 5:1 | Likely underspending | You're leaving growth on the table. Increase ad budget. |
| > 8:1 | Definitely underspending | Competitors will outgrow you. Scale immediately. |
Industry Benchmarks
| Industry | Typical LTV:CAC | Target | Notes |
|---|---|---|---|
| SaaS / Subscriptions | 3:1 to 5:1 | 3:1+ | Recurring revenue makes higher CAC viable |
| E-commerce (fashion) | 2:1 to 4:1 | 3:1+ | Moderate repeat rates |
| E-commerce (beauty/supplements) | 3:1 to 6:1 | 4:1+ | High repeat, consumable products |
| E-commerce (furniture/home) | 1.5:1 to 3:1 | 2:1+ | Low purchase frequency, high AOV |
| D2C food/beverage | 2.5:1 to 5:1 | 3:1+ | Subscription model helps |
| B2B services | 4:1 to 8:1 | 5:1+ | Long contracts, high LTV |
| Local services | 3:1 to 10:1 | 4:1+ | Recurring relationships |
Part 4: Payback Period
Definition
Payback Period = CAC / (Average Monthly Revenue per Customer × Gross Margin %)
Example:
CAC: €60
Monthly revenue per customer: €25
Gross margin: 55%
Payback = €60 / (€25 × 0.55) = 4.36 months
Payback Period Targets
| Business Model | Target Payback | Max Acceptable | Notes |
|---|---|---|---|
| Subscription (SaaS) | < 12 months | 18 months | CAC recovered within contract |
| Subscription (e-commerce box) | < 4 months | 6 months | Higher churn requires faster payback |
| Repeat e-commerce | < 6 months | 9 months | Second purchase is key milestone |
| One-time purchase | Immediate | 1 month | Must be profitable on first sale |
| High-ticket (€500+) | Immediate | Immediate | LTV ≈ first order value |
Cash Flow Implications
Why payback period matters more than LTV:CAC for growing businesses:
Scenario A: LTV:CAC = 4:1, Payback = 12 months
→ Great unit economics, but you need 12 months of cash to fund growth
→ Spending €100K/month means €1.2M tied up before breakeven
Scenario B: LTV:CAC = 3:1, Payback = 3 months
→ Slightly worse ratio, but cash recycles 4x per year
→ €100K/month spend recovers in 3 months, enabling reinvestment
For cash-constrained businesses, Scenario B is often better.
Part 5: Maximum Allowable CPA
The Budget Ceiling Formula
Max CPA = LTV (Gross Profit) × Target Profit Margin on Acquisition
Example:
Gross Profit LTV: €286
Target profit margin: 30% (meaning 70% of LTV can go to acquisition)
Max CPA = €286 × 0.70 = €200.20
But with a 3:1 LTV:CAC target:
Target CPA = €286 / 3 = €95.33
Max CPA by Channel (Using LTV Index)
| Channel | LTV Index | Base Max CPA €95 | Adjusted Max CPA |
|---|---|---|---|
| Google Brand Search | 130% | €95 | €123.50 |
| Google Non-Brand | 110% | €95 | €104.50 |
| Meta Lookalike | 100% | €95 | €95.00 |
| Meta Broad | 80% | €95 | €76.00 |
| TikTok | 75% | €95 | €71.25 |
| Google Display | 60% | €95 | €57.00 |
Key insight: You should be willing to pay more per acquisition on channels that deliver higher-LTV customers. A €120 CAC from brand search is more profitable than a €50 CAC from display if brand search customers have 3x the LTV.
Part 6: MER (Marketing Efficiency Ratio)
Why MER Over ROAS
MER = Total Revenue / Total Marketing Spend
Example:
Monthly revenue: €200,000
Total ad spend: €30,000
MER = €200,000 / €30,000 = 6.67
Vs. in-platform ROAS:
Meta reports 4.2x ROAS
Google reports 5.8x ROAS
Combined "reported" ROAS: inflated due to double-counting
MER is honest. It uses actual revenue (from Shopify, Stripe, or accounting) divided by actual spend. No attribution gaming, no double-counting, no view-through inflation.
MER Benchmarks
| MER Range | Interpretation | Health |
|---|---|---|
| < 3x | Unprofitable for most businesses | Danger zone |
| 3x - 5x | Tight margins, need high gross margin | Acceptable for >60% margin |
| 5x - 8x | Healthy for most e-commerce | Target range |
| 8x - 12x | Strong efficiency | Good, but check if underspending |
| > 12x | Likely underspending on ads | Scale up |
MER vs Blended ROAS vs In-Platform ROAS
| Metric | Definition | Trustworthiness | Use Case |
|---|---|---|---|
| MER | Total revenue / total ad spend | Highest | Board-level, true profitability |
| Blended ROAS | Attributed revenue / ad spend (multi-touch) | Medium | Channel allocation decisions |
| In-Platform ROAS | Platform-reported revenue / spend | Lowest | Intra-platform optimization |
Calculating MER with MCP Tools
Step 1: Get total ad spend
Use meta_get_insights (account level, last 30 days) for Meta spend.
Use google_ads_run_gaql for Google Ads spend:
SELECT metrics.cost_micros
FROM customer
WHERE segments.date DURING LAST_30_DAYS
Use tiktok_get_report for TikTok spend.
Step 2: Get total revenue
Use ga4_run_report with:
- Metrics: purchaseRevenue (or totalRevenue)
- Date range: last 30 days
- No dimensions (aggregate total)
Step 3: Calculate MER = GA4 revenue / (Meta spend + Google spend + TikTok spend + other spend)
Part 7: Cohort Retention Analysis
Building a Retention Curve
Track what percentage of customers make a second purchase, and how long it takes:
| Time Since First Purchase | % Made 2nd Purchase (Cumulative) | Benchmark |
|---|---|---|
| 30 days | 8-15% | Good if >12% |
| 60 days | 15-25% | Good if >20% |
| 90 days | 20-32% | Good if >25% |
| 180 days | 28-40% | Good if >33% |
| 365 days | 32-48% | Good if >38% |
Retention by Acquisition Channel
Use ga4_run_report with cohort dimensions to compare:
| Channel | 90-Day Repeat Rate | 365-Day Repeat Rate | Implication |
|---|---|---|---|
| Organic search | 35% | 52% | Highest intent → best retention |
| Brand search (paid) | 30% | 45% | Strong, actively sought brand |
| Meta lookalike | 22% | 35% | Decent, model captures intent |
| Meta broad | 15% | 25% | Lower, impulse-driven |
| TikTok | 12% | 20% | Lowest, trend/impulse buyers |
These numbers directly inform your Max CPA by channel. A channel with 2x the retention can justify 1.5-2x the CPA.
Cohort Quality Signals from Ad Platforms
Metrics that predict high-LTV customers:
| Signal | Where to Find | High-LTV Indicator |
|---|---|---|
| Multiple page views before purchase | GA4 | >3 pages per session |
| Added to cart, returned later | GA4, Meta | Deliberate buyer |
| Searched for brand after ad exposure | Google Ads, GSC | Brand recall = loyalty |
| Purchased from email after ad click | GA4 (assisted conversions) | Multi-channel engagement |
| High first-order AOV | Shopify/Stripe | Willingness to spend |
| Purchased non-discount product | Shopify/Stripe | Not just bargain hunter |
Part 8: Integrating Revenue Data with Ad Platforms
Data Source Hierarchy
| Source | Revenue Data | Customer Data | Attribution | Trust Level |
|---|---|---|---|---|
| Shopify/Stripe (source of truth) | Actual revenue | Actual customers | None | Highest |
| GA4 | Tracked revenue | Sessions/users | Multi-touch | High |
| Meta Ads Manager | Attributed revenue | Estimated reach | Self-attributed | Medium |
| Google Ads | Attributed conversions | Clicks/impressions | Self-attributed | Medium |
| TikTok Ads | Attributed revenue | Estimated reach | Self-attributed | Medium-Low |
Reconciliation Framework
Step 1: Establish truth
→ Shopify/Stripe total revenue for the period
Step 2: Compare platform claims
→ Sum of all platform-reported revenue
→ This WILL exceed Shopify revenue (20-80% inflation is normal)
Step 3: Calculate attribution inflation factor
→ Inflation = Sum of platform revenue / Actual revenue
→ Typical: 1.3x to 1.8x (30-80% overcounting)
Step 4: Apply deflator to per-channel ROAS
→ Adjusted ROAS = Reported ROAS / Inflation Factor
→ This gives more realistic per-channel contribution
Step 5: Use MER as the check
→ If MER is healthy (>5x), channel allocation matters less than total efficiency
Part 9: Decision Trees
"Should I Increase Ad Spend?" Decision Tree
START: What is your current LTV:CAC ratio?
├── < 2:1
│ └── Do NOT increase spend
│ ├── Fix retention (email, loyalty, product)
│ ├── Reduce CAC (better targeting, creative)
│ └── Increase AOV (bundles, upsells)
│
├── 2:1 to 3:1
│ └── Increase cautiously (10-20% per 2 weeks)
│ ├── Only scale channels with above-average LTV
│ ├── Monitor payback period weekly
│ └── Ensure cash flow supports growth
│
├── 3:1 to 5:1
│ └── Healthy → Scale confidently (20-30% per 2 weeks)
│ ├── Test new channels (add TikTok, YouTube)
│ ├── Expand targeting (broader audiences)
│ └── Increase budgets on proven campaigns
│
└── > 5:1
└── You are UNDERSPENDING → Scale aggressively
├── Double budget on best channels
├── Launch on new platforms
├── Test higher-funnel campaigns
└── Consider offline channels
"Which Channel to Cut?" Decision Tree
Budget pressure → need to cut a channel. Which one?
Step 1: Rank channels by Gross Profit LTV:CAC (not just ROAS)
Step 2: Rank channels by payback period
Step 3: Check incrementality (what happens if you turn it off?)
Cut priority (first to cut):
1. Channels with LTV:CAC < 1.5:1
2. Channels with payback > 12 months
3. Channels with lowest incrementality (often: branded search, retargeting)
4. Channels where turning off has minimal revenue impact
Never cut last (even if ROAS looks bad):
- Top-of-funnel that feeds retargeting audiences
- Brand search (defensive, competitors will bid on your terms)
Part 10: Quarterly LTV:CAC Review Template
Data Collection Checklist
| Data Point | Source | Tool |
|---|---|---|
| Total ad spend (all platforms) | Ad platforms | meta_get_insights, google_ads_run_gaql, tiktok_get_report |
| Total new customers | GA4 or Shopify | ga4_run_report |
| Total revenue | Shopify/Stripe | Direct or ga4_run_report |
| Repeat purchase rate (90-day) | Shopify/GA4 | ga4_run_report (cohort) |
| Average order value | Shopify/GA4 | ga4_run_report |
| Customer lifespan estimate | Shopify (historical) | Manual calculation |
Quarterly Review Questions
- Is LTV:CAC improving or declining? (Compare to last quarter)
- Which channel has the best LTV:CAC? (Shift budget toward it)
- Is payback period within target? (Cash flow health check)
- Are we under- or over-spending? (LTV:CAC > 5 = underspending)
- Has retention changed? (Retention changes hit LTV with a delay)
- Is AOV trending up or down? (AOV declines compress LTV)
- Should we test a new channel? (If LTV:CAC > 4, the answer is usually yes)
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- ltv-cac by NachoLafuente · 3
- ab-testing-framework by thatrebeccarae · 139
- storytelling-framework by realjaymes · 60
- powerful-framework by Salesably · 50
- contact-qualification-framework by medscout-gtm · 6
Need help setting it up?
This page tells you what ltv-cac-modeling-framework does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.