What is customer acquisition cost?

The average amount a business spends on sales and marketing to win one new paying customer.

Customer acquisition cost diagram example

Public diagram from the Machinations Community. Open it on its own page

Customer acquisition cost, or CAC, is the average total spent on sales and marketing to gain one new customer. It is found by dividing those costs by the number of customers won in the same period. It matters because it shows whether growth is affordable and how fast the money spent on growth is paid back.

How it works

CAC = total acquisition spend ÷ number of new customers. Spend includes ads, sales salaries, tools and commissions. A business funnel turns spend into leads, then leads into customers through steps with conversion rates, so CAC depends on how many people drop out at each step. Improving a conversion rate lowers CAC without spending less.

The key comparison is with lifetime value: a common rule of thumb is that value should be several times CAC. Another is the payback period, the number of months of margin needed to earn back the CAC. As a business scales, CAC often rises because the easiest customers are won first, which is a trade-off for growth.

Example

Say a business spends 50,000 in a month. Ads reach 100,000 people, 2% click, giving 2,000 leads, and 5% of those buy, giving 100 customers. CAC = 50,000 ÷ 100 = 500. If the buy rate improves to 6%, customers become 120 and CAC falls to about 417. If each customer yields a margin of 50 per month, payback is 500 ÷ 50 = 10 months. These are illustrative numbers.

How to model it in Machinations

Draw a Source of impressions, then Gates for click rate and purchase rate, ending in a customer Pool. A Drain for spend feeds a Register that divides cumulative spend by customers. Set spend and the two conversion rates as Levers. Play and watch the CAC Register, then change one conversion rate to see how much it moves.

See customer acquisition cost in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.