
Average Customer Acquisition Cost (CAC) is the arithmetic mean of what it costs your company to land one paying customer over a fixed period. In 2026, with rising privacy regulations, cookie deprecation, and channel saturation, average CAC is no longer a vanity number—it’s your leading indicator of unit economics health.
A practical rule of 2026:
If average CAC grows faster than average revenue per user (ARPU), your growth engine is already broken.
Below you’ll find the exact steps, formulas, benchmarks, and code snippets to calculate, benchmark, and act on average CAC in the year ahead.
Sum of all sales & marketing spend over a sliding 12-month window, divided by the number of new paying customers acquired in the same period.
Average CAC = (Σ(Salaries + Ads + Tools + Commissions + Events + Content + SEO + Affiliate)) / Σ(New Paying Customers)
Example (Q4-2025 snapshot):
| Spend Category | USD |
|---|---|
| Paid Ads | $245,000 |
| Salaries (GTM team) | $180,000 |
| SaaS Tools | $22,000 |
| Content & SEO | $45,000 |
| Events & Sponsorships | $33,000 |
| Total Spend | $525,000 |
| New Customers (Oct-Dec 2025) | 1,050 |
| Average CAC | $500 |
Only incremental spend—i.e., dollars explicitly added in the period to gain the new customers.
Incremental CAC = (Incremental Spend) / (Incremental New Customers)
Example:
Use Method 1 for high-level board reporting. Use Method 2 for budgeting and forecasting.
| Vertical | Avg CAC 2026 USD | ARPU 2026 USD | LTV/CAC |
|---|---|---|---|
| SaaS – Mid-Market | $2,200 – $3,800 | $8,800 | 4 – 5x |
| E-commerce – DTC | $35 – $85 | $220 | 3 – 4x |
| Fintech – SMB Lending | $1,100 – $1,600 | $4,200 | 3 – 4x |
| Marketplace – B2B | $900 – $1,400 | $3,800 | 2.5 – 3x |
| Mobile Gaming | $2.80 – $4.50 | $11 | 2 – 3x |
Rule of 2026: If your CAC is >1.5× the upper bound, you’re already in the “burn” zone.
Create a single cac_facts table in your warehouse.
CREATE TABLE cac_facts (
date_day DATE,
channel VARCHAR(50),
spend_usd DECIMAL(12,2),
new_customers BIGINT,
cost_center VARCHAR(30) -- 'paid_ads', 'content', 'events', ...
);
Use a tagging taxonomy that maps to your chart of accounts:
Run a daily job that snapshots cac_facts and rolls up:
WITH rolling_12m AS (
SELECT
date_day,
SUM(spend_usd) AS total_spend,
SUM(new_customers) AS total_new_customers
FROM cac_facts
WHERE date_day >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY 1
),
cac_daily AS (
SELECT
date_day,
total_spend / NULLIF(total_new_customers, 0) AS daily_cac
FROM rolling_12m
)
SELECT
date_day,
AVG(daily_cac) AS avg_cac_12m
FROM cac_daily
GROUP BY 1
ORDER BY 1;
Use a BI tool (Metabase, Looker, Mode) with three tiles:
| Channel | 2026 Measurement Method | Benchmark CAC |
|---|---|---|
| Paid Search | UTMs + GA4 → BigQuery → Incrementality test | $300 – $700 |
| Paid Social | Meta API + incrementality holdout | $250 – $600 |
| SEO | Organic sessions → customer match via email | $0 – $120 |
| Referral | Ref codes + revenue share | $20 – $80 |
| ESP opens → coupon redemption | $40 – $110 | |
| Partnerships | Affiliate network + cohort tracking | $150 – $350 |
| Product Virality | Invite events → cohort ARR | $0 – $50 |
Pro tip: If your CAC on paid channels is >2× the benchmark, pause and reallocate to SEO or community.
conversion_value = LTV × close-rate.LTV/CAC ≥ 3× is table stakes in 2026.
Formula:
LTV = (ARPU × Gross Margin) / Churn Rate
CAC = Total Spend / New Customers
Example SaaS:
Fix:
Create a dbt model + Metabase alert:
-- models/cac_alerts.sql
WITH current_cac AS (
SELECT
AVG(total_spend / NULLIF(total_new_customers, 0)) AS avg_cac_12m
FROM {{ ref('cac_facts') }}
WHERE date_day >= CURRENT_DATE - INTERVAL '12 months'
),
prev_period AS (
SELECT
AVG(total_spend / NULLIF(total_new_customers, 0)) AS prev_cac
FROM {{ ref('cac_facts') }}
WHERE date_day BETWEEN CURRENT_DATE - INTERVAL '13 months' AND CURRENT_DATE - INTERVAL '12 months'
)
SELECT
current_cac.avg_cac_12m,
prev_cac.prev_cac,
ROUND(((current_cac.avg_cac_12m - prev_cac.prev_cac) / prev_cac.prev_cac) * 100, 1) AS pct_change
FROM current_cac, prev_cac;
Alert rule:
Allocate spend to SKU using revenue-based allocation:
SKU_CAC = (SKU_Specific_Spend + Proportional_Shared_Spend) / SKU_New_Customers
Example:
Convert all spend to a single currency (USD) using the date of spend.
CAC_USD = Spend_EUR × FX_RATE(date) / New_Customers
Inputs:
Run 10,000 simulations:
import numpy as np
cac = np.random.normal(loc=600, scale=120, size=10000)
trend = 0.10
for q in range(6): # 6 quarters
cac *= (1 + trend)
Output:
Budget decision: Assume CAC will be $1,000 in 2026 and bake in a 20 % buffer.
Average CAC is the single metric that answers: “Are we buying growth or burning cash?” In 2026, with privacy walls rising and attention spans shrinking, average CAC will become the North Star for every growth team.
Your action plan:
cac_facts table today.Adopt this discipline now, or watch your CAC quietly destroy your runway in 2026.
Practical b2b marketing strategy guide: steps, examples, FAQs, and implementation tips for 2026.
Practical b to b marketing strategy guide: steps, examples, FAQs, and implementation tips for 2026.
Web developers have long wrestled with a fundamental tension: how to keep users secure while maintaining seamless functionality across domai…

Comments
Sign in to join the conversation
No comments yet. Be the first to share your thoughts!