Theory18Webmasters

Affiliate programs, traffic
& earnings.

Affiliate ROI calculation: the real numbers behind cam site campaign profitability

A complete framework for calculating affiliate campaign ROI with real cost data. Covers true cost accounting, ROI by traffic source, when negative short-term ROI is acceptable, and how to allocate budget based on returns.

CB Stats transactions with a tracker filter and private identifiers obscured.
Table of Contents

Quick answer: Affiliate ROI is calculated as (revenue minus total costs) divided by total costs, multiplied by 100. The key mistake most affiliates make is only counting ad spend as cost. True ROI must include time valued at an hourly rate, tool subscriptions, content creation costs, and hosting fees.

Key takeaways

  • True affiliate ROI includes time (valued at $30-50/hr for experienced marketers), tools ($50-200/mo for SEO and analytics), content costs, and hosting. Most affiliates undercount costs by 40-60%.
  • SEO content has the highest long-term ROI (380-520% annualized on my accounts) but requires 3-6 months of negative ROI before breaking even.
  • Paid display ads show positive ROI within 30 days but at lower margins (40-80% annualized). The tradeoff is speed vs. magnitude.
  • LTV-adjusted ROI accounts for future revenue from referred spenders. A campaign with -20% 30-day ROI can have +180% 12-month ROI if spender retention is strong.
  • Review ROI monthly but make budget decisions quarterly. Monthly fluctuations in cam site revenue are too noisy for reactive budget changes.
For 2 years I tracked "revenue" as my only metric. I knew how much I earned but had no idea which campaigns were profitable and which were just busy. When I finally sat down and calculated true ROI for each traffic source, I discovered that my Reddit efforts (which I spent 8 hours/week on) had a lower ROI than my SEO content (which I spent 3 hours/week maintaining). I was misallocating half my time.

How to calculate ROI for affiliate campaigns

Affiliate ROI = ((revenue from campaign - total campaign costs) / total campaign costs) x 100, where total costs include every dollar and every hour you invest, not just ad spend. A campaign that earns $500 and costs $200 in total has a 150% ROI. Simple formula, but getting the cost side right is where most affiliates fail.
There are two timeframes to track ROI.
  • 30-day ROI: Revenue earned within 30 days of the campaign cost being incurred, divided by the cost. This tells you short-term campaign efficiency. Useful for paid ads.
  • LTV-adjusted ROI: Projected lifetime revenue from referred spenders, divided by the campaign cost. This accounts for the fact that cam site referrals generate commission for months or years after the initial signup. Better for SEO and content investments.
Most affiliates only look at 30-day ROI, which makes SEO look unprofitable and paid ads look great. LTV-adjusted ROI often flips this ranking. A $200 article that brings in 3 spenders with $94 adjusted LTV each generates $282 in lifetime revenue. The 30-day ROI might be -60% but the LTV-adjusted ROI is +41%.

True cost accounting: time, tools, content, ads

Your time is the biggest hidden cost in affiliate marketing, and valuing it at $0 makes every campaign look profitable when many are not. I value my time at $40/hour for ROI calculations. This is below what I could earn freelancing but high enough to make time-intensive low-return activities show up as unprofitable.
Here is a complete cost breakdown for my affiliate operation.
Cost categoryMonthly amountNotes
Time (content creation)$48012 hrs/mo x $40/hr
Time (SEO/link building)$3208 hrs/mo x $40/hr
Time (social media)$2406 hrs/mo x $40/hr
Time (analytics/reporting)$1604 hrs/mo x $40/hr
SEO tools (Ahrefs)$99Lite plan
Hosting (Vercel + domain)$25Pro plan
Paid ads (display)$400Variable, some months $0
Content (freelance writers)$3002-3 articles/mo
Total$2,024Varies by month
Time accounts for $1,200 of that $2,024 total. If I ignored time costs, my ROI would look 2.4x better than it actually is. This matters because it affects which activities I should do more of and which I should drop or outsource.

If you are not tracking time spent per traffic source, start now. Use a simple timer app or just log hours in a spreadsheet. Without time data, your ROI calculations are fiction.

For paid campaigns, cost tracking is obvious. For organic campaigns (SEO, social media, forums), allocate your time costs proportionally. If you spend 8 hours on SEO and 6 hours on social media in a month, assign 57% of your time cost to SEO and 43% to social.

ROI by traffic source comparison

SEO review content has the highest LTV-adjusted ROI on my accounts at 480% annualized, while paid display ads have the fastest payback at 28 days but lower annualized ROI of 65%. Every traffic source has a different ROI profile and payback period.
Traffic sourceMonthly costMonthly revenue30-day ROILTV-adjusted ROI (annual)Payback period
SEO (review content)$620$1,840+197%+480%4.2 months
SEO (informational)$440$680+55%+310%5.8 months
Reddit/forums$280$310+11%+120%3.1 months
Twitter/X$160$190+19%+140%2.8 months
Paid display ads$540$620+15%+65%28 days
The SEO review content column deserves explanation. The $620 monthly cost includes my time writing and updating reviews, freelance articles, and the proportional share of Ahrefs and hosting. The $1,840 in monthly revenue comes from all spenders acquired through review-page tracker tags over the past 12+ months. That is the compounding effect of SEO: content published 8 months ago still drives revenue today.
Paid ads have the opposite profile. I spend $540, I earn $620 the same month, and the LTV tail is shorter because display ad referrals tend to have lower retention (see cohort analysis). The annualized LTV-adjusted ROI of 65% is decent but nowhere near SEO.
Reddit is the most time-intensive per dollar earned. I spend 6 hours/month ($240 in time) plus some content costs for $310 in revenue. The 30-day ROI is only 11%. But Reddit spenders who stick around have respectable LTV, which pushes the annual number to 120%. I keep it in the mix as a diversification play, not a primary revenue channel.

When negative ROI is actually acceptable

Negative 30-day ROI is acceptable when your cohort data shows that the referred spenders have strong retention and the LTV-adjusted ROI is projected positive within a reasonable payback period, typically under 6 months. This is the "invest now, earn later" model that makes SEO viable.
When I publish a new review article, here is the typical ROI curve.
  • Month 1: Cost $350 (writing + time). Revenue $0-40. ROI: -88% to -100%.
  • Month 2: Cost $60 (maintenance time). Revenue $60-120. Cumulative ROI: -51% to -75%.
  • Month 3: Cost $40 (minimal updates). Revenue $100-180. Cumulative ROI: -13% to -40%.
  • Month 4-6: Cost $30/mo. Revenue $120-220/mo. Cumulative ROI crosses positive.
  • Month 7-12: Cost $20/mo. Revenue $140-260/mo from existing + new spenders. ROI accelerates.
If I panicked at the -88% ROI in month 1 and stopped investing in SEO content, I would miss the 480% annualized return that comes later. This is why you need LTV data from cohort analysis to make investment decisions. Without it, every long-term play looks like a loss.
That said, negative ROI is not always acceptable. If a campaign has -30% ROI after 6 months and your cohort data shows low retention from that source, kill it. The distinction: negative ROI with evidence of future payback (strong cohort retention) is an investment. Negative ROI with weak cohort data is a loss.

Set a maximum payback period you are comfortable with. Mine is 6 months. If a campaign or content piece is not projected to reach positive cumulative ROI within 6 months based on similar cohort performance, I do not invest in it.

Monthly ROI tracking framework

Track ROI monthly in a spreadsheet with columns for each traffic source, showing costs incurred that month, revenue attributed that month, cumulative ROI, and LTV-projected ROI. I update mine on the 5th of every month after the previous month's affiliate earnings are finalized.
My tracking framework has 5 columns per traffic source.
  1. Direct costs: Ad spend, freelancer payments, tool costs allocated to this source.
  2. Time costs: Hours spent x hourly rate.
  3. 30-day revenue: Commission earned this month from spenders attributed to this traffic source (using tracker tags).
  4. Cumulative revenue: All commission ever earned from spenders attributed to this source.
  5. LTV projection: Current cumulative revenue + projected future revenue based on cohort retention curves for this source.
I calculate three ROI numbers from these columns: monthly ROI (this month's costs vs. this month's revenue), cumulative ROI (all-time costs vs. all-time revenue), and LTV-projected ROI (all-time costs vs. projected lifetime revenue). Monthly ROI fluctuates. Cumulative ROI trends up over time for good sources. LTV-projected ROI is what I use for budget decisions.
CB-Stats gives me the revenue-per-tracker data I need for this framework. I pull the tracker-level revenue from the conversion tracking setup, combine it with my cost spreadsheet, and get the full ROI picture. The revenue side is automated; the cost side is manual because only I know my true time investment.

ROI-based budget allocation strategy

Allocate budget proportionally to LTV-adjusted ROI, with a cap so no single traffic source gets more than 40% of total budget, and reserve 15-20% for testing new channels. This balances optimization with diversification.
Here is my current allocation based on the ROI data above.
Traffic sourceLTV-adjusted ROIBudget allocationMonthly budget
SEO (review content)480%35%$710
SEO (informational)310%22%$445
Reddit/forums120%12%$245
Twitter/X140%11%$225
Paid display ads65%5%$100
Testing new channelsUnknown15%$300
Notice that paid ads get only 5% despite having the fastest payback. That is because the LTV-adjusted ROI is the lowest. The fast payback is nice but the total return is small compared to SEO. I keep a small paid budget running because it fills revenue gaps during SEO traffic dips and gives me immediate data when testing new landing pages.
The 15% testing budget is non-negotiable. Every channel I rely on today started as a test. SEO review content was once "that experiment I tried for 3 months." If I had not allocated testing budget, I would have never discovered my best channel. Current tests: YouTube content, newsletter partnerships, and a Telegram community.
Rebalance quarterly, not monthly. Monthly revenue in cam site affiliates is noisy. A whale going inactive or a seasonal dip can make a good channel look bad for one month. Quarterly averages smooth this out and lead to better decisions. Use revenue forecasting to project where each channel is heading before reallocating.

Frequently Asked Questions

How do I calculate affiliate ROI if I do not pay for ads?

Even without ad spend, you have costs: your time (valued at a reasonable hourly rate), hosting, domain, SEO tools, and content creation. Track hours spent per traffic source and multiply by your hourly rate. A "free" traffic source that takes 20 hours/month at $40/hour costs $800/month. Calculate ROI using these true costs.

What is a good ROI for cam site affiliate campaigns?

A 30-day ROI above 50% is good for paid campaigns. For organic campaigns (SEO, social), LTV-adjusted annualized ROI of 200%+ is strong. Below 50% annualized for any established channel should prompt a review of whether that channel is worth your time. New channels get a 6-month grace period before ROI expectations apply.

Should I use 30-day ROI or LTV-adjusted ROI for decisions?

Use LTV-adjusted ROI for budget allocation and strategic decisions because it accounts for the full value of referred spenders over their lifetime. Use 30-day ROI for evaluating paid ad campaigns where you need fast feedback and cash flow management. Both numbers serve different purposes.

How much should I value my time at for ROI calculations?

Use a rate between what you could earn in alternative work and what you would pay someone to replace your effort. For most experienced affiliate marketers, $30-50/hour is reasonable. The exact number matters less than being consistent. If you use $40/hour, use it for every calculation so comparisons between channels are fair.

How often should I recalculate ROI for each traffic source?

Calculate monthly but make decisions quarterly. Monthly data is too volatile for cam site affiliates because whale activity, seasonal trends, and traffic fluctuations create noise. Quarterly averages give a clearer signal. Review your monthly numbers for trends but wait for 3 months of data before making budget changes.

Theory18 community

Join the conversation

Loading comments…