Written by: Aaron Rovner, Founder, Saas Hero | Last updated: July 27, 2026
Key Takeaways
- Traditional agency reporting focused on impressions and clicks fails to answer the board’s core question: how much new ARR resulted from agency spend.
- Boards expect marketing leaders to prove CAC payback under 18 months; the 7-step framework provides a repeatable, CRM-integrated system to deliver that proof.
- Defining attributed revenue, establishing a 90-day baseline, and mapping multi-touch CRM tracking are the foundational steps that make ROI measurable.
- Replacing vanity metrics with net-new ARR, CAC payback, and pipeline velocity creates a single source of truth that speaks boardroom language.
- Aligning agency incentives with flat-fee contracts and tying results to CAC payback thresholds is the final step that makes the entire measurement system credible. See how SaaSHero implements this 7-step framework for B2B SaaS companies.
The 7-Step Measurement Framework
Step 1: Define Attributed Revenue in Your CRM
Purpose: Establish a single, board-approved definition of what counts as “agency-attributed revenue” before any campaign launches.
Inputs: CRM deal records, opportunity source fields, campaign UTM taxonomy.
Actions in HubSpot/Salesforce: Create a custom deal property called “Primary Marketing Source” with a controlled picklist (Paid Search, Paid Social, Organic, Direct, Referral). Map every inbound lead to a source at creation. In Salesforce, use Campaign Influence with a W-shaped model. In HubSpot Marketing Hub Enterprise, enable the W-shaped revenue attribution report.
Decision criteria: A deal is “agency-attributed” when the agency manages at least one paid touchpoint that appears in the W-shaped attribution model for that deal. Use a cohort approach that measures revenue from deals that entered pipeline through marketing during a specific quarter and lets those deals close later. This approach avoids penalizing revenue that takes 9–12 months to close.
Validation checklist:
- Attribution model documented and signed off by CFO and VP of Sales, which gives the definition board-level credibility before tracking begins.
- Every deal in CRM has a populated “Primary Marketing Source” field, which allows the attribution model to assign credit accurately.
- W-shaped model activated in HubSpot or Salesforce Campaign Influence, which turns the agreed definition into operational reporting.
- Definition shared with the agency in writing before campaign launch, which prevents disputes over what counts as attributed revenue later.
Step 2: Establish a 90-Day Pre-Agency Baseline
Purpose: Create a clean before-state so any post-agency improvement is attributable to the engagement, not market tailwinds.
The table below lists the five baseline metrics you need for the 90 days before the agency starts, where each metric lives, and the benchmarks that show whether your current performance is competitive or needs urgent improvement.
| Metric | Where to Pull It | Baseline Period | Benchmark Reference |
|---|---|---|---|
| Net-new ARR (marketing-sourced) | CRM closed-won deals, marketing source filter | 90 days pre-agency | Internal baseline only |
| Pipeline velocity ($/day) | CRM opportunity report | 90 days pre-agency | Mid-market median: $12,000–$18,000/day |
| CAC payback (months) | Finance + CRM | Prior full quarter | 2025 median: 16 months |
| MQL-to-SQL conversion rate | CRM funnel report | 90 days pre-agency | Lead-to-MQL averages ~30% |
| Blended paid CAC | Ad platform spend ÷ CRM new customers | 90 days pre-agency | In B2B, paid-search / Google Ads median CAC is $802 and LinkedIn Ads CAC is $982 |
Step 3: Map Multi-Touch CRM Tracking Across Paid Channels
Purpose: Capture every paid touchpoint the agency manages inside the CRM so attribution relies on verified data, not guesswork.
Google Ads setup: Enable auto-tagging to pass GCLID parameters. Add a hidden form field on every landing page to capture the GCLID and write it to the CRM contact record at form submission. In HubSpot, use the native Google Ads integration. In Salesforce, use a custom field on the Lead object.
Apply the same GCLID-capture logic to LinkedIn campaigns so both platforms follow one consistent tracking pattern.
LinkedIn Ads setup: Use LinkedIn Insight Tag plus URL parameters (utm_source, utm_medium, utm_campaign, utm_content). Map these to CRM contact properties at lead creation.
Attribution model selection: The W-shaped attribution model credits 30% to first touch, 30% to lead creation, 30% to opportunity creation, and 10% to remaining touchpoints, making it a strong fit for B2B companies with 90+ day cycles. For sales cycles exceeding 180 days, extend the lookback window to match. Attribution accuracy improves more when the lookback window matches the actual sales cycle than when teams switch between multi-touch models.
Step 4: Calculate CAC and Payback Period
Purpose: Produce the two numbers boards and investors actually use to evaluate marketing efficiency.
Use the gross-margin-adjusted formula: CAC Payback (months) = Sales & Marketing expense (prior period) ÷ (New ARR added × Gross margin %) × 12.
For pipeline velocity, use Pipeline Velocity = (Number of Opportunities × Average Deal Size × Win Rate) ÷ Sales Cycle Length in Days.
SaaSHero’s work with TestGorilla shows what strong performance looks like in practice: an 80-day CAC payback period, compared to the industry median of 15–16 months. That result, achieved through CRM-level attribution and flat-fee incentive alignment, helped TestGorilla raise a $70M Series A. That outcome was possible because every dollar of agency spend traced back to a CRM-verified deal, which is the same level of transparency you can build with this framework.

Model your payback period with CRM-level attribution, and schedule a 30-minute diagnostic.
Step 5: Build the Monthly Agency ROI Dashboard
Purpose: Replace the agency’s vanity-metric PDF with a single source of truth that speaks boardroom language.
The dashboard below turns your baseline metrics from Step 2 into a live tracking system. Each metric now includes a target threshold and reporting cadence, which creates accountability for month-over-month improvement instead of a static snapshot.
| Metric | Formula / Source | Target / Benchmark | Reporting Cadence |
|---|---|---|---|
| Net-new ARR (agency-attributed) | CRM closed-won, W-shaped attribution | Internal baseline + 20% MoM growth | Monthly |
| Marketing ROI | (Attributed Revenue − Total Spend) ÷ Total Spend × 100 | A marketing ROI of 5:1 is good, while 10:1 is considered excellent | Quarterly |
| Pipeline velocity ($/day) | (Opps × Win Rate × ACV) ÷ Cycle Days | Mid-market baseline (see Step 2) | Monthly |
| CAC payback (months) | S&M Spend ÷ (New ARR × Gross Margin %) × 12 | Top-quartile B2B SaaS CAC payback is 6 months or fewer | Quarterly |
| LTV:CAC ratio | LTV ÷ CAC | LTV:CAC ratio of 3:1 or higher is the sustainable range for B2B SaaS, with 3:1 as the minimum floor | Quarterly |
| MQL-to-SQL conversion rate | CRM funnel stage report | Internal baseline + trend | Monthly |
Step 6: Run the Vanity-Metrics Blacklist Audit
Purpose: Remove metrics from agency reporting that have no proven correlation to closed-won revenue.
Metrics to remove from agency scorecards:
- Impressions and reach
- Click-through rate (CTR) in isolation
- Cost per click (CPC) without downstream conversion data
- Social media engagement rate (likes, shares, follows)
- Raw MQL volume without quality scoring
- Platform-reported conversions without CRM verification
A B2B SaaS company running multi-touch analysis found that paid search deserved only 31% of revenue credit instead of the 64% shown by last-click, revealing $52,000 in annual overspend on that channel. Platform dashboards often mislead by default. CRM data provides the verification layer.
Metrics to replace them with:
- Marketing-sourced pipeline ($)
- Agency-attributed closed-won ARR ($)
- CAC payback period (months)
- Pipeline velocity delta vs. baseline ($/day)
- SQL volume with firmographic qualification criteria
With vanity metrics removed and revenue-focused metrics in place, the next step is giving the agency a financial reason to care about the dashboard you just built.
Step 7: Tie Results to Contract Incentives
Purpose: Align the agency’s financial incentives with the metrics on the dashboard built in Step 5.
A flat-fee, month-to-month contract structure creates credible alignment. Flat-fee billing decouples agency compensation from ad spend entirely, removing the incentive to push higher budgets and making recommendations to reduce spend on saturated channels a costless action for the agency. SaaSHero’s tiered flat retainer, fixed within spend bands regardless of exact budget, means a recommendation to shift $15,000 from Google to LinkedIn reflects performance data, not fee preservation.
Contract terms to negotiate:
- Month-to-month termination clause with 30-day notice, which removes the agency’s ability to lock you into a long-term contract while underperforming.
- Agency provides CRM read access as a standard engagement term, which allows the agency to see closed-won data that proves their campaigns work.
- Reporting template locked to the dashboard in Step 5, with no substitutions, which prevents a slide back to vanity metrics when revenue results are weak.
- Quarterly business review (QBR) agenda anchored to CAC payback and net-new ARR, not platform metrics, which keeps every strategic conversation focused on revenue outcomes.
- Performance break clause stating that if CAC payback exceeds the agreed threshold for two consecutive quarters, either party may exit without penalty, which gives both sides a consequence for sustained underperformance.
Advanced Variations: Conquesting and Percentage-of-Spend Analysis
Once the 7-step framework is operational, the CRM-level attribution you built in Steps 1 through 3 makes two advanced strategies measurable for the first time: multi-channel competitor conquesting and percentage-of-spend billing analysis. Both approaches require the W-shaped attribution model and monthly ROI dashboard to be fully operational before you can track their impact accurately.

First, multi-channel competitor conquesting, which uses paid search and paid social campaigns targeting users who research competitor products, generates some of the highest-intent pipeline in a SaaS funnel. The TripMaster engagement, detailed in SaaSHero’s case studies, used competitor conquesting to generate $504,758 in net-new ARR and a 650% ROI in 12 months. The framework above makes that result auditable because every deal traces back to a CRM-verified touchpoint, not a platform dashboard claim.

The second dynamic the framework exposes is less about campaign tactics and more about agency economics. The framework makes percentage-of-spend billing mathematically transparent. If an agency charges 15% of media spend and recommends increasing budget from $30,000 to $50,000 per month, their fee rises from $4,500 to $7,500, which is a $3,000 monthly raise regardless of whether the incremental $20,000 in spend produces a single closed deal. Percentage-of-spend models are best suited for earlier-stage or aggressively scaling accounts with clear headroom, while flat or hybrid models are preferable for stable or high-spend accounts where efficiency and honest counsel on reducing spend matter more than raw scaling. Plotting agency fee changes against pipeline velocity changes on the same dashboard makes any misalignment visible at a glance.
Recap Checklist and Next Steps by Team Maturity
Use the checklist below to identify where your measurement stack currently stands and what to prioritize next.
Foundational (0–3 months with a new agency):
- Attribution model defined and documented in CRM.
- 90-day baseline captured for all five metrics in Step 2.
- GCLID and UTM parameters flowing from ad platforms to CRM.
- Vanity-metric blacklist audit completed, with a new reporting template in place.
Intermediate (3–6 months):
- W-shaped attribution active in HubSpot or Salesforce Campaign Influence.
- Monthly ROI dashboard reviewed in a standing QBR.
- CAC payback calculated quarterly using the gross-margin-adjusted formula.
- Pipeline velocity tracked by channel and compared to baseline.
Advanced (6+ months):
- Account-level attribution aggregating all stakeholder touchpoints per deal.
- Competitor conquesting campaigns tracked to closed-won ARR by competitor segment.
- Contract incentives tied to a CAC payback threshold with the performance break clause active.
- Organisations implementing comprehensive marketing attribution models can see higher marketing ROI, which you can validate against your own baseline at the 12-month mark.
Get a custom implementation roadmap for your ARR stage and sales cycle length.
Frequently Asked Questions
How long does full CRM attribution setup take?
A foundational setup, which includes GCLID capture, UTM mapping, W-shaped attribution model activation in HubSpot or Salesforce, and baseline reporting, typically takes two to four weeks for a company with an existing CRM instance and clean deal data. The timeline extends to six to eight weeks if the CRM requires data hygiene work, deal source fields must be created from scratch, or the sales team needs training on populating attribution fields consistently. Full account-level attribution that aggregates all stakeholder touchpoints per deal and connects them to closed-won ARR generally requires an additional four to eight weeks and may involve a dedicated B2B attribution platform such as Dreamdata or Ruler Analytics layered on top of the CRM.
Which roles are required on the client side?
Three roles are essential. A marketing operations owner, whether a dedicated MOps manager or a VP of Marketing who handles the function, must own the CRM attribution configuration and reporting template. A sales operations or CRM administrator must ensure deal source fields are populated correctly and that the attribution model is applied consistently across all pipeline stages. A finance stakeholder, typically the CFO or a finance business partner, must sign off on the attribution definition and the CAC payback formula so the resulting numbers carry board-level credibility. Without finance sign-off on the methodology, the dashboard becomes a marketing artifact rather than a financial record. On the agency side, SaaSHero operates as an embedded growth team with direct access to the client’s Slack and CRM, which reduces the coordination burden on internal teams.
Can this framework work with sub-$10,000 monthly ad spend?
Yes, with one adjustment. At sub-$10,000 monthly spend, closed-won deal volume in any single quarter may be too small to produce statistically reliable CAC payback calculations. The practical solution is to extend the measurement window to two rolling quarters and use pipeline-based ROI, defined as marketing-sourced pipeline value divided by total marketing spend and targeting a 10x pipeline-to-spend ratio, as the primary leading indicator while closed-won ARR accumulates. The CRM tracking infrastructure in Steps 1 through 3 remains identical regardless of spend level. SaaSHero’s flat-fee model starts at $1,250 per month for up to $10,000 in managed spend, which makes the framework accessible to founder-led teams running their first structured paid campaigns.
How often should we re-baseline after switching agencies?
Re-baseline at the start of a new agency engagement, capturing the five metrics from Step 2 for the 90 days immediately preceding the new agency’s first campaign launch. Do not use historical data from the prior agency’s tenure as the baseline, because campaign structure, landing page quality, and attribution hygiene may have been materially different. Run a second baseline snapshot at the 90-day mark of the new engagement to establish a post-onboarding steady state, since the first 60 to 90 days typically involve account restructuring and tracking setup that suppresses performance relative to the eventual run rate. Compare the new agency’s results against the 90-day pre-switch baseline, not against the prior agency’s self-reported numbers.