Measuring the ROI of marketing activities is the single challenge cited most often by marketers in HubSpot’s 2026 State of Marketing survey, named by 33 percent of respondents as their top problem. (blog.hubspot.com) That number holds even among teams running the campaigns and watching the dashboards daily, which says the problem is rarely a lack of data. It is a lack of a repeatable way to turn that data into a decision.
The instinct problem hiding inside the measurement problem
Most owners already have a favorite channel. They like how the ads look, or they remember the one referral that came from a trade show, and that memory quietly outweighs three months of mixed results. A campaign ROI calculation is not really about proving what marketing did, it is about being willing to let a number overrule a hunch you already like. That is the uncomfortable part most guides skip.
Step one: attribute revenue to a channel, not a vibe
Start with a defined attribution window, thirty days is a reasonable default for most SMB sales cycles, and assign revenue to the channel that first brought the customer in. Google Analytics 4 covers this for free and is enough for a business running mostly digital campaigns. For businesses that get a meaningful share of leads by phone, a common gap in DIY attribution, Ruler Analytics ties inbound calls back to the campaign that generated them, with its Small tier priced at 400 dollars a month for sites under 10,000 monthly visits. (ruleranalytics.com) Skip this step and every number after it is built on a guess about where the customer actually came from.
Step two: count the real cost, not just the ad spend
Ad spend is the easy number. The one owners forget is labor: the hours a team member spent writing copy, approving creative, or fielding the calls the campaign generated. A campaign that looks profitable on ad spend alone can be a loss once someone’s actual hourly cost is added in. Write the labor estimate down even when it is rough, because a rough number that is included beats a precise number that leaves out half the cost.
Step three: turn the number into a decision, and write the decision down
Once revenue and full cost are both on the page, the campaign gets one of three verdicts: scale it, pause it, or test a specific change to it. This is the step most small teams skip, not because it is hard, but because there is nowhere to put the decision so the next campaign remembers it. HubSpot’s Starter tier, 20 dollars a month per seat at its standard published rate, is enough to log campaigns, notes, and the scale or pause verdict in one place a team actually reopens. (hubspot.com) Without that record, the same channel debate happens again next quarter with nobody remembering who won it last time or why.
What the calculation does not replace
None of this decides whether a campaign is worth running for brand reasons that will not show up in a thirty-day revenue window, a sponsorship, a community event, a slow-building content series. Those calls still belong to a person who understands the business, not a spreadsheet. The point of the calculation is to stop spending on the channels that are quietly losing money by default, freeing that budget and a team member’s time for the campaigns actually worth a human’s judgment call, not to hand marketing decisions to a formula.
The same evidence-over-guessing discipline applies once a campaign converts a customer: a three-step funnel audit finds where visitors actually stall instead of guessing, a structured touchpoint cadence keeps that new customer from churning in the first 30 days, and on the cost side, a documented cost baseline makes sure the margin a campaign appears to protect is real.
Frequently Asked Questions
What attribution window should a small business use?
Thirty days works for most SMB sales cycles, but a business with a longer consideration period, like a home remodel or a B2B service, should extend the window to match how long customers typically take to decide.
Do I need Ruler Analytics if most of my leads come through a contact form?
No. Google Analytics 4 covers form-based and digital attribution for free. Ruler Analytics earns its cost specifically for businesses where a meaningful share of leads call in, since that path is invisible to standard web analytics.
How do I estimate labor cost if I have never tracked it?
Start with a rough hourly rate for whoever worked on the campaign, multiplied by an honest guess at hours spent, and refine it next quarter once you have one real data point. An imperfect labor number beats leaving it out entirely.
What if the calculation says to pause my favorite channel?
That is the calculation doing its job. Pausing does not mean never revisiting it, it means the channel does not get default budget next quarter without a specific change being tested first.
Pick your last three campaigns, write the real cost and attributed revenue for each on one page today, and let that page, not memory, decide what runs next quarter.
The Marketing Campaign ROI Calculator prompt at BusinessPrompter.com is a useful starting structure for running this calculation before you build your own template.
