unit-economics
Skill1 starsChanged 5 days agoMITView on GitHub
Use when a founder or growth team asks 'can we afford paid acquisition?', 'what is our CAC payback?', 'calculate LTV:CAC', 'what is our SaaS unit economics?', 'is this channel profitable?', or 'how much can we spend to acquire a customer?'. Use it to connect Stripe revenue, PostHog retention, and channel attribution before scaling acquisition. Do not use for Stripe billing implementation, product retention instrumentation, or ad platform setup alone.
22 other projects use a version of this.
Adopted by
Most recently taken up by
- itsryanarmani/skillsword for word, first seen Nov 8, 2026
- Nomanriaz786/claude-consulting-teamtheir own version, first seen Nov 1, 2026
- codebywater/WB-OZON-AI-TEAMtheir own version, first seen Oct 25, 2026
- ARCASSystems/FounderOStheir own version, first seen Oct 24, 2026
- MadalaVijay/marketing-skills-deeptheir own version, first seen Oct 13, 2026
- edu6565/claude-skillstheir own version, first seen Oct 11, 2026
Used with
Projects with it also use pricing-strategy and market-research.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
silvainfmSkillpricing-strategy
When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' or 'monetization.' This skill covers pricing research, tier structure, and packaging strategy.
Also in 3 projects that use this
birne-skSkillmarket-research
Professional market research and competitive analysis using McKinsey/BCG/Bain consulting methodologies. Use when analyzing markets, competitive landscapes, customer insights, or strategic positioning. Generates hypothesis-driven research with PPTX presentation deliverables.
Also in 3 projects that use this
Other versions22 projects use a version of this.
Word for word · 1
- itsryanarmani/skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 21
- anthropics/financial-services★ 41ksame name
- anthropics/financial-services-plugins★ 41ksame name
- daloopa/investing★ 488same name
- chuhaiqu/skills★ 22same name
- SanketSapkal/founder-skills★ 10same name
- ARCASSystems/FounderOS★ 7same name
- alifanov/ai-garage-launch★ 2same name
- codebywater/WB-OZON-AI-TEAM★ 2same name
- Justinjchen-Cornell/Hardtech-Venture-Capital-OS★ 2same name
- Ingramradical235/anty-framework★ 1same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository325 other files it gives its agents.
- AGENTS.mdAGENTS.md
- accept-x402-paymentsSkill
- ad-auto-optimizerSkill
- ad-conversion-hubSkill
- ad-creative-generationSkill
- ad-creative-templatesSkill
- ad-experimentsSkill
- ad-image-prompt-librarySkill
- adobe-express-addonSkill
- ad-platform-credentialsSkill
- ads-amazonSkill
- ads-apple-searchSkill
- ads-baiduSkill
- ads-bilibiliSkill
- ads-chatgptSkill
- ads-copilotSkill
- ads-criteoSkill
- ads-discordSkill
- ads-douyinSkill
- ads-googleSkill
- ads-hotstarSkill
- ads-kakaoSkill
- ads-kuaishouSkill
- ads-lgSkill
- ads-lineSkill
- ads-linkedinSkill
- ads-mercadolibreSkill
- ads-meta-aiSkill
- ads-metaSkill
- ads-microsoftSkill
- ads-mojSkill
- ads-naverSkill
- ads-nextdoorSkill
- ads-outbrainSkill
- ads-perplexitySkill
- ads-pinterestSkill
- ads-quoraSkill
- ads-redditSkill
- ads-rokuSkill
- ads-samsungSkill
- ads-sharechatSkill
- ads-shopeeSkill
- ads-snapchatSkill
- ads-spotifySkill
- ads-stackadaptSkill
- ads-stravaSkill
- ads-taboolaSkill
- ads-tencentSkill
- ads-tiktokSkill
- ads-trade-deskSkill
- ads-twitchSkill
- ads-vkSkill
- ads-wazeSkill
- ads-weiboSkill
- ads-xiaohongshuSkill
- ads-xSkill
- ads-yahoo-japanSkill
- ads-yandex-directSkill
- ads-yelpSkill
- agent-avatar-systemSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 10 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Use PostHog for product retention cohorts.
- Distinctive: line 22
Keep each number's source, customer unit, revenue basis, and time window visible.
- Distinctive: line 47
Use expected gross profit over a bounded horizon instead.
- Distinctive: line 58
Use Stripe billing state to confirm paying-customer churn.
- Distinctive: line 59
Do not call a user retained because an invoice exists, or churned because one event was missed.
- Distinctive: line 64
Use this formula for each channel and cohort:
- Distinctive: line 95
Treat 3:1 as a conversation starter, not a law or industry average.
- Distinctive: line 121
Keep product development and general overhead outside contribution margin unless they vary with each customer.
- Distinctive: line 127
Do not tune bids or declare a channel good from a tiny sample.
- Distinctive: line 133
If the interval crosses the spending rule, the result is not ready for scaling.
- Very specific: line 167
Use a bounded horizon. Expected retention in month t is 0.99^(t-1).
“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Unit economics
Acquire customers only when expected contribution can repay CAC within the business's cash limit. A good-looking LTV:CAC ratio does not prove this. Use Stripe for paid revenue, refunds, and payment fees. Use PostHog for product retention cohorts. Use the finance ledger for other costs.
When to use this
Trigger if: the ask mentions unit economics, LTV, CAC, CAC payback, contribution margin, channel profitability, paid acquisition limits, or whether a growth channel is affordable.
Skip if: the ask only adds Stripe subscriptions, measures product retention, or configures an ad
platform. Point those tasks to saas-billing-stripe, product-analytics, or the relevant skill.
1. The four numbers that matter
Keep each number's source, customer unit, revenue basis, and time window visible.
| Number | Definition | Main source |
| Gross margin | (revenue - COGS) / revenue | Stripe plus the cost ledger |
| CAC | Fully loaded acquisition cost / new paying customers | Finance, channel data, time records |
| LTV | Expected gross profit per customer over a stated horizon | Stripe, PostHog, cost data |
| Payback | CAC / monthly contribution margin per customer | The four numbers plus a cash policy |
Stripe provides payment amounts, refunds, and fees. Its balance reports show gross, fee, and net activity. Its balance transactions expose amount, fee, and net for individual balance movements.
Stripe does not provide CAC or product churn. PostHog provides retention cohorts from a defined start event and return event. Read its retention documentation before choosing them. PostHog does not provide cash revenue. Mixing definitions causes different people to quote different numbers.
Write these choices beside every report: customer unit, collected or recognized revenue, cohort window, acquisition date, logo or revenue churn, and included costs. Exclude sales tax collected for a government. Include refunds, credits, and discounts according to the chosen revenue basis. Keep cash and recognized revenue in separate columns when they differ.
2. Compute LTV honestly
The textbook formula is:
LTV = monthly ARPA * gross margin / monthly logo churnIt assumes constant churn forever. It overstates a young product because its churn window is short, its denominator is unstable, and early customers may not represent the target market. It also hides expansion, contraction, refunds, discounts, annual plans, and different segments.
Use expected gross profit over a bounded horizon instead. Twelve or twenty-four months is useful when the product has limited history.
bounded gross profit per customer
= sum(monthly gross profit * probability customer remains active in month t)
for t = 1 through the chosen horizonFor a cohort, replace probability with observed retention for each month. Use PostHog's activation event as the cohort start and a meaningful product action as the return event. Do not use logins when value comes from a completed job or report. See product-analytics for event identity.
Use Stripe billing state to confirm paying-customer churn. Use PostHog retention to explain product value. Do not call a user retained because an invoice exists, or churned because one event was missed. Report conservative, base, and optimistic cases. Change churn, ARPA, margin, and expansion separately.
3. CAC must be fully loaded
Use this formula for each channel and cohort:
CAC = (ad spend + channel tools + agency or creative cost + human time cost)
/ new paying customersCount people who pay, not impressions, leads, signups, or free accounts. Include founder time at a stated replacement cost for sales, content, support, or campaign work. Include commission, landing pages, lead tools, and experiment cost when they support acquisition.
Media-only CAC flatters every channel. Organic CAC is not zero when content, partnerships, or sales time creates it. Align spend with the cohort it acquires. State attribution and conversion windows.
4. Payback constrains a bootstrapped factory
Payback measures how long the business funds a customer before recovering CAC from contribution.
payback months = fully loaded CAC / monthly contribution margin per customerUse cash contribution when deciding whether the business can fund the next customer. A customer can be profitable over five years and still consume cash for eighteen months first. Growth increases that funding gap. An 18-month payback can bankrupt a company with a 5:1 LTV:CAC ratio.
At this size, payback usually matters more than the ratio. Set a maximum before a test starts. Stop or reduce a channel when conservative payback exceeds it. Annual prepayment can improve cash recovery. Report cash collection and revenue recognition separately. Do not treat an annual invoice as twelve months of earned profit.
5. Use LTV:CAC as a rule of thumb
LTV:CAC = expected gross profit per customer / fully loaded CACThe familiar 3:1 rule came from David Skok's observations of SaaS companies. His SaaS Metrics 2.0 definitions explain that the original twelve-month payback guidance fit an older capital environment. He notes that healthy SaaS businesses can take about twenty months, while more than twenty-four months needs improvement.
Treat 3:1 as a conversation starter, not a law or industry average. A young product can show 3:1 only because its LTV assumes churn will stay low forever. Check bounded LTV, conservative payback, cash available, gross margin, and customer concentration. A high ratio with weak evidence is a forecast.
6. Calculate each channel, not only the blend
Blended CAC hides one channel subsidising another. Report CAC, activation, retention, payback, and bounded gross profit by channel. Point conversion work at ad-conversion-hub. Use its canonical conversion event and attribution fields. Keep the model, lookback window, and cost period beside each result.
Attribution is imperfect. Last-click credit does not prove a channel caused the purchase. Treat channel economics as directional until volume supports a holdout, geo test, or other incrementality test. Do not compare paid CAC with blended LTV. Paid cohorts may have different plans, retention, discounts, support load, and AI usage.
7. Calculate contribution margin per customer
Contribution margin is the money left after costs that increase when the customer uses or buys the product. Use it for payback and channel decisions.
monthly contribution margin
= customer revenue - payment fees - refunds and usage credits
- infrastructure cost - support cost - AI inference costPayment fees vary by method, market, and currency. Stripe's current pricing lists examples and says the fee depends on the payment method. Do not hardcode one rate. Reconcile actual fees from balance transactions or reports.
Map infrastructure to usage. Include requests, storage, database operations, queues, and data transfer when they rise with customer activity. Current Cloudflare Workers pricing shows why request and CPU usage need separate measurements.
Measure support time per customer with a loaded staff cost. If the product calls a model, record model, input size, output size, calls, retries, and cost per customer. Use the chosen provider's current price table. For Workers AI, check current inference pricing.
Keep product development and general overhead outside contribution margin unless they vary with each customer. Keep them in the cash plan. Positive contribution margin does not prove company profit.
8. Know when the numbers are too noisy
With very few customers, the confidence interval is wider than the decision. One cancellation can move churn, LTV, and payback by more than the proposed campaign budget.
Do not tune bids or declare a channel good from a tiny sample. Use a decision interval:
- conservative case: worst credible retention and highest credible variable cost;
- base case: current cohort estimate;
- optimistic case: improvement that has evidence, not hope.
If the interval crosses the spending rule, the result is not ready for scaling. Cap the test budget. Define the next evidence needed. Use interviews, founder-led sales, pricing tests, and activation work before buying more traffic. Label each input observed, estimated, or assumed. Recompute the same definitions each month.
9. Worked example
Assume a paid channel spends $7,000 and produces five new paying customers.
CAC = $7,000 / 5 = $1,400The $7,000 includes $5,000 media, $300 tools, $700 founder sales time, and $1,000 creative. The subscription price is $100 per month.
payment fee = $100 * 2.9% + $0.30 = $3.20
infrastructure = $5.00
support = $7.00
AI inference = $8.00
monthly contribution = $100 - $3.20 - $5 - $7 - $8 = $76.80
gross margin = $76.80 / $100 = 76.8%
payback = $1,400 / $76.80 = 18.23 monthsThe card rate is illustrative. Confirm the account's actual Stripe rate before using the result. For this example, all listed delivery costs are COGS, so gross and contribution margins match. Assume PostHog shows 1% monthly logo churn. The textbook result looks strong:
textbook LTV = $100 * 76.8% / 1% = $7,680
textbook LTV:CAC = $7,680 / $1,400 = 5.49:1Use a bounded horizon. Expected retention in month t is 0.99^(t-1).
12-month gross profit = $76.80 * (1 - 0.99^12) / (1 - 0.99)
= $76.80 * 11.36
= $872.45
12-month LTV:CAC = $872.45 / $1,400 = 0.62:1The ratio looks excellent only under an infinite-horizon assumption. The 18-month payback and bounded result say this channel is not yet affordable for a cash-constrained business.
Checklist
- Define the customer unit, revenue basis, cohort window, and churn definition.
- Pull payment, refund, and fee data from Stripe.
- Pull activation and retention cohorts from PostHog.
- Record infrastructure, support, AI inference, tools, and human time costs.
- Calculate gross margin and contribution margin separately.
- Calculate fully loaded CAC from acquisition cost and new paying customers.
- Use bounded expected gross profit for a young product.
- Set a maximum conservative payback before funding a channel.
- Report LTV:CAC beside payback and cash needs.
- Break out every channel and document attribution limits.
- Label each input as observed, estimated, or assumed.
- Stop scaling when the confidence interval crosses the decision rule.
- Recompute the same definitions each month.
- Point billing implementation to
saas-billing-stripe. - Point event and cohort implementation to
product-analytics.
Related
grow-a-product— the gate this skill answers before any paid spend.pricing-page— change the price and every number here moves.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

