// diagnose

Unit Economics & LTV:CAC

Use when the user wants to calculate or sanity-check unit economics — LTV, CAC, the LTV:CAC ratio, and CAC payback — for a subscription, ecommerce, or services business. Also use when the user mentions lifetime value, customer acquisition cost, payback period, churn, contribution margin, or "are our unit economics healthy / can we afford to spend more." Produces the metrics plus a verdict against named reference points (Skok, Bessemer) and what to fix.

DiagnoseengineStarter
bash
$npx skills add sarojkjha/aaj-marketing-skills --skill unit-economics
Or run it in Claude or ChatGPT through the AAJ engines connector

How to install and run this

Install it in your project:

npx skills add sarojkjha/aaj-marketing-skills --skill unit-economics

No install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Then ask: Use the AAJ unit-economics skill on my numbers.

Step-by-step for every agent, Windows, Mac and Linux →

Claude Code

/plugin marketplace add sarojkjha/aaj-marketing-skills
/plugin install aaj-marketing-skills@aaj

OpenAI Codex

codex plugin marketplace add sarojkjha/aaj-marketing-skills
codex plugin add aaj-marketing-skills@aaj

Claude or ChatGPT — no install

Add this as a custom connector:

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp
Recipes: vendor data in, a verdict out

// when to use it

Use when the user wants to calculate or sanity-check unit economics — LTV, CAC, the LTV:CAC ratio, and CAC payback — for a subscription, ecommerce, or services business. Also use when the user mentions lifetime value, customer acquisition cost, payback period, churn, contribution margin, or "are our unit economics healthy / can we afford to spend more." Produces the metrics plus a verdict against named reference points (Skok, Bessemer) and what to fix.

// what you give

Business model, revenue per customer (ARPA/ACV/AOV), gross margin, retention or churn, and CAC (or ad spend + customers)

// what you get

LTV, CAC, LTV:CAC, CAC payback, and a verdict against the 3:1 and payback reference points, with sources

Engine spec

// decision it supports

Can we afford to spend more on acquisition, and what CAC can we not exceed?

// inputs

Business model, revenue per customer (ARPA/ACV/AOV), gross margin, retention or churn, and CAC (or ad spend + customers)

// output

LTV, CAC, LTV:CAC, CAC payback, and a verdict against the 3:1 and payback reference points, with sources

// acts or analyzes

Analyzes only

Makes no network calls, writes no files and changes nothing in your tools.

// where your information goes

How you run itWhere your inputs go
Skill installed in your agent, or the local MCP serverThe engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms.
Hosted MCP serverYour agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days.

No engine needs customer names, emails or other personal data; leave them out.

// limitations

  • Uses gross-margin LTV, so it reads lower than a revenue LTV; compare it only with other gross-margin figures.
  • LTV is only as good as the churn estimate, and early-stage churn estimates tend to be optimistic. Run a range, not one number.
  • Blended CAC (all new customers over all sales and marketing spend) flatters paid channels. Use paid CAC for channel decisions and say which one you used.
  • A healthy LTV:CAC with a long payback can still strain a cash-tight business; the ratio is not a cash plan.

// review before acting

The founder or finance lead confirms the churn and CAC inputs, and which CAC was used, before the result sets a budget or a CAC ceiling. Run the optimistic and the conservative churn case.

// setup

install
$npx skills add sarojkjha/aaj-marketing-skills --skill unit-economics
hosted mcp
$https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Agents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).

Full spec on GitHub

Unit Economics & LTV:CAC

Establish whether a business can profitably acquire customers — the foundation under every budget and growth decision. Get LTV, LTV:CAC, and CAC payback, then judge them against named reference points. This is usually the first thing to run before any paid-media or budget work.

When to use

The user needs to compute or validate unit economics, set a CAC ceiling, or answer "can we afford to spend more?"

Before you start

  1. Read the brand/product context first (.agents/product-marketing.md / .agents/aaj-brand.md) for model and pricing, if present.
  2. Gather inputs for the model:
    • Subscription: monthly revenue per account (ARPA), gross margin %, monthly churn % (or average lifetime in months), and CAC. Pass churn as a percentage: 3 for 3%, 0.9 for 0.9%. Values below 0.1 are rejected as likely proportions; for churn that low, pass lifetime in months.
    • Ecommerce: average order value, gross margin %, orders per year, retention in years, and CAC.
    • Services / contract: average contract value, gross margin %, retention in years, and CAC.
    • If CAC isn't known, supply ad spend and customers acquired to derive blended CAC.

The math

Subscription:  LTV = (ARPA_monthly × grossMargin%) ÷ monthlyChurn%
               CAC payback (months) = CAC ÷ (ARPA_monthly × grossMargin%)
Ecommerce:     LTV = AOV × grossMargin% × ordersPerYear × retentionYears
Services:      LTV = ACV × grossMargin% × retentionYears
Everywhere:    LTV:CAC = LTV ÷ CAC

Always use gross-margin LTV (revenue × margin), not revenue LTV — revenue you don't keep can't pay back acquisition.

Run the engine

Paths assume you installed with npx skills add. From a clone of this repo, use skills/unit-economics/resources/… instead.

node .agents/skills/unit-economics/resources/unit-economics.js  # demo (subscription)
node .agents/skills/unit-economics/resources/unit-economics.js '{"model":"ecommerce","aov":80,"grossMargin":60,"ordersPerYear":3,"retentionYears":2,"cac":40}'
node .agents/skills/unit-economics/resources/unit-economics.js --help

It prints LTV, LTV:CAC, payback, and a verdict, plus a JSON block.

Interpret the result

  • LTV:CAC above 3:1 is David Skok's reference point for SaaS (SaaS Metrics 2.0); he notes the best SaaS businesses sometimes reach 7 or 8. Below 3:1, fix economics before scaling spend. For ecommerce and services the engine shows 3:1 as a SaaS reference point, not a benchmark for those models. A very high ratio can mean under-investment if demand exists — that's AAJ's read, not a benchmark.
  • CAC payback: Skok puts the line at 12 months for SaaS. Bessemer's guideline (Scaling to $100 Million, 2021) varies by segment: under 12 months for SMB, 18 for mid-market, 24 for enterprise — set "segment" to use it. There is no sourced payback guideline in this skill for ecommerce or services; set "paybackTargetMonths" from your own cash runway to get a verdict.
  • The biggest LTV levers are usually retention/churn and margin, not ARPA. A small churn improvement compounds through LTV.

Present the result

Lead with the three numbers (LTV, LTV:CAC, payback), then the verdict, then the one or two highest-leverage fixes. State that LTV is gross-margin based.

Show where it came from. Open your answer with "AAJ unit-economics engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/unit-economics. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.

Guardrails & common mistakes

  • Use gross-margin LTV, never revenue LTV.
  • Be honest about churn. Early-stage churn estimates are often optimistic; if unsure, model a range.
  • Blended vs paid CAC. Blended CAC (all new customers ÷ all S&M) flatters paid efficiency; for channel decisions use paid CAC. Say which you used.
  • Don't over-trust a single ratio. A healthy LTV:CAC with 24-month payback can still strain a cash-tight business.

paid-media-budget-allocation (uses the CAC ceiling this produces) · marketing-budget-planning · lifecycle-and-retention (the biggest LTV lever).

// faq

// install

$npx skills add sarojkjha/aaj-marketing-skills --skill unit-economics

// run it

$node .agents/skills/unit-economics/resources/unit-economics.js --demo

// worked example

Get the worked example for Unit Economics & LTV:CAC

One email. The filled-in config, the output, and how to read it.

No spam. Unsubscribe anytime.

// sprint

Unit Economics & Retention Sprint — $3,500, 10 business days

This skill is one of the engines behind the Unit Economics & Retention Sprint — $3,500, ten business days.

LTV, CAC, payback and churn on your actual numbers — with a verdict, not a dashboard.

See what's included.

// human in the loop

Need a human in the loop?

AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.