10 min read
How Course Creators Can Calculate True CAC by Marketing Channel
A practical framework for digital product sellers who need source-to-revenue clarity
· Grometrics Team
The short version
If you sell online courses, you have a money problem. Your Stripe dashboard shows total revenue. Your ad platform shows conversions. Your email tool shows open rates. But none of them agree on where your paying students actually came from, and none of them tell you whether those students cost more to acquire than they paid you. That gap kills course businesses. You might be profitable on paper but losing money on every Facebook Ads cohort. You might be celebrating a launch that actually lost money after refunds and platform fees. The fix isn't more data. It is the right data connected to the right outcome. This guide walks through how to calculate true customer acquisition cost (CAC) by marketing channel, using revenue attribution that ties every source to actual payments, not vanity metrics. You'll learn what to track, where traditional calculations go wrong, and how to build a system that tells you which channels create real customers.
- Traditional CAC formulas ignore refunds, platform fees, and support costs that eat into revenue
- True CAC requires connecting each acquisition source to payment data from Stripe, Gumroad, LemonSqueezy, or Kajabi
- Attribution methodology matters because last-click overstates paid social, first-click understates content marketing
- RevenueCat integration applies to mobile app courses; most course creators use direct payment providers
- Source-to-revenue tracking takes minutes to set up and replaces guesswork with channel-level profitability data
Why Your Current CAC Numbers Are Lying to You
Most course creators calculate CAC the simple way: take total ad spend on a channel, divide by number of customers acquired. If you spent $1,000 on Facebook Ads and got 10 students at $197 each, your CAC is $100 and you're making $970 profit. Done. That's wrong in three directions. First, it ignores the customers who requested a refund, usually 5-15% for course businesses, higher for high-ticket programs. Second, it ignores platform fees: Stripe takes 2.9% + 30¢, Gumroad takes 10%, Kajabi and Teachable take more. Third, it ignores that a customer who bought your $197 course might have been browsing your blog for six months first, or clicked a YouTube ad, or came through an affiliate link. Last-click attribution gives credit to whatever touched them right before purchase, which usually means email, not the channel that actually built the relationship.
The result is a CAC that looks manageable but hides the real cost of acquisition. You might be losing money on every cohort and calling it a win because the spreadsheet says $100 per student. True CAC calculation means pulling payment data, including purchases, renewals, refunds, and cancellations, and tying each transaction back to the source that drove it.
- Traditional CAC = ad spend ÷ customers acquired (ignores refunds and fees)
- True CAC = (ad spend + platform fees + support costs) ÷ (customers minus refunds)
- Last-click attribution credits the final touchpoint, overstating email and understating content
- First-click attribution credits the first touchpoint, overstating awareness channels
The attribution problem: Ad platforms grade their own homework. Facebook Ads reports conversions that may have happened without any ad involvement. Your payment processor reports actual money movement. Connecting the two is the only way to see what's real.
What True CAC Includes for Course Creators
True CAC isn't just the ad spend. It's every cost directly tied to acquiring a paying student. For most course creators, that breaks down into four categories: media spend, platform fees, operational costs, and opportunity costs. You don't need to include everything in every calculation, but you need to know what you're leaving out. Media spend is the obvious one: your budget on Facebook Ads, Google Ads, YouTube ads, podcast sponsorships, or affiliate commissions. If you pay an affiliate 30% on every sale, that's part of your acquisition cost for that channel. Platform fees are the transaction costs your payment processor charges. Stripe's 2.9% + 30¢ adds up on a $500 course. Gumroad's 10% hits harder on a $197 course. These fees come out of revenue before profit, so they factor into true CAC. Operational costs include anything you spend specifically to support acquisition: landing page tools, email marketing software costs attributed to promo sequences, webinar platforms, or creative production for ads. These are harder to allocate by channel but matter for accurate unit economics. Refunds are the hidden killer. If 10% of your students refund within 30 days, your effective revenue per student drops by 10%. Your CAC stays the same. The math gets worse if refund rates differ by channel. If Facebook Ads customers refund more than email customers, your Facebook CAC is even higher than the simple calculation shows.
- Media spend: ads, sponsorships, affiliate commissions
- Platform fees: Stripe, Gumroad, LemonSqueezy, Kajabi transaction costs
- Operational costs: landing page tools, email software, webinar platforms
- Refunds: always pull refund rates by channel because they often differ significantly
RevenueCat context: RevenueCat applies to mobile app courses and in-app purchases. For most course creators using Stripe, Gumroad, or LemonSqueezy, payment attribution connects directly to your processor's transaction data. The principle is the same: tie every purchase and refund to the source that drove it.
Setting Up Source-to-Revenue Tracking for Course Sales
You can't calculate true CAC by channel without connecting your traffic sources to your payment data. The setup depends on where you sell and where your traffic comes from, but the principle is consistent: track the journey from source to sale, then tie each transaction back to that source. For Stripe-based course sales, Grometrics connects your Stripe account to pull purchases, renewals, refunds, and dispute data. You then tag your traffic sources using UTM parameters or campaign URLs. The tracking script captures the source, medium, and campaign for each visitor, ties that to the visitor's session, and when a purchase happens on Stripe, the revenue gets attributed to the originating source. For Gumroad and LemonSqueezy sellers, similar principles apply. Gumroad's native analytics show basic traffic-to-sale data, but connecting it to your ad spend requires pulling the payment data into a unified attribution view. LemonSqueezy integrates similarly with Stripe-connected workflows. For Kajabi users, the platform handles some attribution internally, but linking Kajabi course sales to external ad spend requires connecting your payment data to your marketing channels. The key is first-party, server-side tracking that captures conversions even when browser tracking gets blocked. Ad pixels miss conversions. First-party tracking tied to payment data doesn't.
- Use UTM parameters on every campaign link: source, medium, campaign, content, term
- Install a lightweight tracking script that captures visitor journey before purchase
- Connect Stripe, Gumroad, LemonSqueezy, or Kajabi to pull transaction and refund data
- Tie payment events to originating source using first-party data
Setup speed: Grometrics setup takes minutes with a lightweight tracking script. You don't need developer resources. Just tag your traffic sources and connect your payment processor. The attribution data starts flowing immediately.
Calculating True CAC by Marketing Channel: The Framework
Once your tracking is in place, you have the data to calculate CAC properly. The formula for each channel looks like this: take all acquisition costs for that channel (ad spend + platform fees + any allocated operational costs), then divide by the number of attributed customers minus refunds. What you get is a CAC that reflects actual money in, not just traffic or leads. Here's where attribution models matter. If you use last-click, email will look extremely efficient because every customer clicked an email before buying. But email didn't create those customers. The blog post, YouTube video, or Facebook Ad did. Last-click overstates channels that intercept demand; understates channels that create it. First-click does the opposite. It credits the awareness channel but ignores the conversion channel that closed the sale. For course creators, a position-based or time-decay model usually works best. Position-based gives credit to both first and last touchpoints, split evenly or with a weighted split. Time-decay gives more credit to touchpoints closer to purchase. Neither is perfect, but both are better than last-click for understanding which channels actually drive revenue. The practical approach: track all channels in a unified system, look at first-touch and last-touch separately, then make decisions based on the pattern. If Facebook Ads appears in first-touch but not last-touch, it's creating awareness but not closing. If email appears in last-touch but not first-touch, it's converting but not acquiring. Both data points are valuable.
- True CAC formula: (channel costs + platform fees) ÷ (attributed customers - refunds)
- Last-click: credits the final touchpoint but overstates email and paid search
- First-touch: credits the initial touchpoint but overstates content and awareness channels
- Position-based: splits credit between first and last, giving a fuller picture
Refunds by channel: Pull refund rates by acquisition channel whenever possible. If Facebook Ads customers refund at 15% but email customers at 5%, your true Facebook CAC is significantly higher than the raw number shows.
What to Do With Your True CAC Data
Once you have accurate CAC by channel, the next question is what to do with it. The answer isn't always to cut spend on high-CAC channels. It's to understand why those channels are expensive and whether the unit economics work. If your course sells for $497 and your true CAC on Facebook Ads is $150 after refunds and fees, you're making $347 per student before operational costs. That's viable. If CAC climbs to $400, you're breakeven or losing money, and either the creative needs to improve or the channel needs to be deprioritized. The more valuable insight is often understanding which channels bring higher-quality customers. A channel with $200 CAC but 3% refund rate and $800 average order value is better than a channel with $100 CAC but 20% refund rate and $300 average order value. True CAC reveals that by including refunds and looking at revenue per cohort, not just customer count. For course creators running launches, CAC calculation should happen post-launch: pull the cohort data, calculate true CAC by every source that drove traffic, and compare to revenue. That becomes your benchmark for the next launch. If you sponsored a podcast, calculate the CAC from that specific campaign. If you ran YouTube ads, calculate that CAC separately from Facebook. Channel-level clarity is the point.
- Compare CAC to customer lifetime value (LTV) for each channel
- Look at refund rates and average order value by channel, not just customer count
- Use cohort analysis: track a group of customers from acquisition through purchase and any refunds
- Make budget decisions based on true CAC, not ad platform-reported conversions
Iterate with data: True CAC isn't a one-time calculation. Run it monthly, quarterly, and after every major campaign. Your channels will shift in efficiency as audiences change, as ad creative fatigue sets in, and as your course evolves. Consistent tracking reveals trends that raw revenue numbers hide.
Tools and Next Steps
You need two things to do this consistently: a way to track traffic sources and a way to pull payment data. For traffic, use UTM parameters on every link and a first-party tracking solution. For payment data, connect your processor, such as Stripe, Gumroad, LemonSqueezy, or Kajabi, to pull transaction-level revenue. Grometrics handles both sides: it captures the visitor journey through your marketing channels and ties each session to the payment data from your processor. The result is a CAC report by channel that reflects actual money in, refunds, and the true cost of acquisition. Start with one channel. Pick your main traffic source, set up proper tracking, and calculate your first true CAC. You'll immediately see whether that channel is as profitable as you thought. Then expand to the next channel. Within a few weeks, you'll have channel-level unit economics that most course creators never bother to calculate. That is your competitive advantage.
- Set up UTM tracking on every campaign link
- Connect your payment processor: Stripe, Gumroad, LemonSqueezy, or Kajabi
- Pull transaction data including purchases, refunds, and disputes
- Calculate true CAC monthly or after each major campaign
Ready to start?: Start tracking your revenue attribution today. Connect your payment data, tag your traffic sources, and see which channels actually create paying students.
READY TO SEE YOUR REAL NUMBERS?
Connect your payment provider and see which channels actually drive revenue.
Start tracking for free →RELATED POSTS