ROAS Floor Rules by Vertical: A Framework for Performance Agencies
A single ROAS target does not work across clients. An eCommerce brand with 65% gross margin needs a different floor than a lead-gen client with a 90-day sales cycle. This framework gives agencies a method to set defensible ROAS floors by vertical - and an action protocol for when campaigns hit them.
ROAS Floor Rules by Vertical: A Framework for Performance Agencies
A ROAS floor is the minimum acceptable Return on Ad Spend below which a campaign, ad set, or channel should be paused, restructured, or have its budget reduced. Setting a single floor across all clients is one of the most common agency mistakes - an eCommerce brand with 65% gross margin and high repeat purchase rate can sustain a 2.5× floor profitably, while a lead-gen client with a 90-day sales cycle needs a 4× floor on lead-generation spend to break even on CAC.
Key takeaways
A Single ROAS Floor Applied Across All Clients Is One of the Most Common Agency Mistakes
An eCommerce brand at 65% gross margin can sustain a 2.5x floor profitably while a lead-gen client with a 90-day sales cycle may need 4x to break even on CAC. The floor must be calculated from each client's specific unit economics - not borrowed from a general industry number.
The Correct eCommerce ROAS Floor Is Approximately the Inverse of Gross Margin
A 70% margin business needs a minimum 1.4x theoretical floor, but practical floors account for overhead, returns, and reinvestment - typically landing at 2 to 3x for healthy Shopify brands. The practical floor is higher than the theoretical minimum because it must cover costs the theoretical calculation excludes.
ROAS Is the Wrong Metric Entirely for SaaS and Lead-Gen Clients
The correct floor for SaaS and lead-gen clients is cost per MQL or cost per trial, benchmarked against historical MQL-to-closed rates. Applying a revenue-per-spend ratio to a business model where the revenue event happens months later produces decisions disconnected from the actual conversion economics.
ROAS Floors Must Be Calculated From Three Client-Specific Inputs
The three inputs are gross margin percentage, target CAC payback period, and average order value or LTV. Without these, any floor number is borrowed from a different business and will produce wrong budget decisions for the specific client it is applied to.
Agency Frameworks Documenting ROAS Floors Per Vertical Prevent Two Compounding Errors
Pausing high-margin clients too early and running low-margin campaigns too long are the two failure modes that ROAS floor documentation prevents. Reviewing floors quarterly ensures they reflect current unit economics rather than assumptions from the time the client relationship began.
Why one ROAS target does not work across client verticals
ROAS measures revenue per dollar of ad spend. It says nothing about whether that revenue is profitable - which depends entirely on the client's gross margin, purchase frequency, and CAC payback window.
Example: A Shopify brand sells supplements at 70% gross margin. At 2.5× ROAS, $1 of ad spend generates $2.50 of revenue. After the 70% margin, $1.75 remains before overhead - enough for a sustainable business at scale.
The same 2.5× ROAS for a software company selling $99/month subscriptions at 85% gross margin looks fine on paper. But if average customer LTV is $380 (4-month retention) and the ROAS is measured on first-purchase revenue only, CAC payback may extend to 18+ months - unsustainable for a growth-stage business.
Show clients the whole picture, faster
Every client's channels in one brief — no stitching exports.
14 days free · no credit card
How to calculate the correct ROAS floor for each client
The calculation requires three inputs you need from the client:
- Gross margin % - revenue minus COGS, before marketing spend
- Target CAC payback period - how many months before a customer is profitable
- Average order value (or LTV for subscription clients)
ROAS floor formula for eCommerce:
Minimum ROAS = 1 ÷ (Gross Margin % × Target Payback as % of LTV)
Simpler working rule: the ROAS floor is approximately the inverse of gross margin. A 50% margin business needs at least 2× ROAS to cover cost of goods. A 70% margin business can sustain 1.4× as a theoretical floor - but practical floors account for overhead, returns, and reinvestment requirements.
For lead-generation and SaaS clients, ROAS is a less meaningful metric because revenue is deferred. The correct metric is Cost Per MQL or Cost Per Trial, benchmarked against historical MQL-to-closed rates. If a SaaS client needs $200 cost per MQL to hit their CAC target and the current Meta campaign produces leads at $280, the ROAS equivalent floor has been breached.
ROAS floor reference by vertical
| Vertical | Typical gross margin | Practical ROAS floor | Notes |
|---|---|---|---|
| DTC eCommerce (physical) | 45-65% | 2.5-3.5× | Higher if returns are significant |
| DTC eCommerce (supplements/beauty) | 65-80% | 2.0-3.0× | Repeat purchase raises tolerable floor |
| B2B SaaS (self-serve) | 70-85% | Measured as CPL, not ROAS | |
| EdTech (online courses) | 60-80% | 2.5-4.0× (on course revenue) | Use cost per enrollment instead |
| Lead generation | 30-60% (service margin) | 4.0-6.0× | Longer sales cycle, lower tolerance for waste |
| Consumer apps (subscription) | 70-85% | Measured as subscriber CAC |
These are starting points - adjust based on client-specific payback requirements and competitive environment.
The action protocol when a client hits the ROAS floor
Define in advance what happens when ROAS hits the floor, not after. A clear protocol prevents the reactive budget cuts that often make performance worse.
Step 1 - Diagnose before acting. Check whether the floor breach is campaign-wide or ad-set specific. A single fatiguing creative dragging down account ROAS is not the same as systematic audience saturation.
Step 2 - Apply targeted actions first. Pause the underperforming ad sets. Increase budget to the ad sets above floor. Launch prepared creative variants if frequency is the driver.
Step 3 - Hold budget flat for 5-7 days. Algorithm relearning after changes needs time. Cutting total budget immediately can trigger re-entry into the learning phase and extend the ROAS drop.
Step 4 - Notify the client proactively with a root cause and timeline. (See the proactive ROAS drop communication framework in the companion article on this blog.)
Step 5 - Escalate to budget review only if ROAS remains below floor after 14 days. At that point, a structural channel issue (audience exhaustion, competitive pressure, offer weakness) may require a strategic conversation - not just a creative refresh.
How to communicate ROAS floors to clients
The most effective framing: present ROAS floors as a profitability agreement, not a performance cap. "We set a 3× floor on your Meta spend because below that threshold, your marketing spend stops contributing to profitable growth given your margin structure" is a more defensible conversation than "our target is 3× ROAS."
Document the agreed floor in the client onboarding brief. Review it quarterly - margin structures change with product mix, AOV, and return rates.
Prooflytics automates floor monitoring
Prooflytics tracks ROAS trend at the account, campaign, and ad-set level against configurable floor thresholds. When a campaign breaches the floor, the daily brief includes a diagnosis (frequency, CTR decay, CPM increase, or broad account drop) and a ranked action queue - so account managers see the issue and the recommended action before the client does. For client-facing delivery, see how to build a white-label weekly report for performance agencies. The agency client report template includes ROAS floor monitoring by client account.
Frequently asked questions
Should ROAS floors be the same for Meta and Google?+
Usually not. Google branded search often produces very high ROAS (8-15×) because it captures high-intent buyers who would have converted regardless. Meta cold audience prospecting typically runs at much lower ROAS (1.5-3×) because it is creating demand rather than capturing it. Setting a single floor across both channels would either cut profitable Meta spend or keep unprofitable Google non-brand spend running.
What if the client sets an unrealistic ROAS target?+
An unrealistic target (demanding 8× on cold Meta prospecting when category average is 3-4×) is a scope and expectation problem, not a targeting problem. The agency's job is to present the market context - average CPMs, category conversion rates, and historical account performance - to establish what is achievable, then set the floor based on the client's margin reality rather than an aspirational number.
How often should ROAS floors be reviewed?+
Quarterly for stable clients. Immediately after any significant changes: new product launch, AOV change, promotional period, or major algorithm update. ROAS floors set based on a 70% gross margin are invalidated if the client changes product mix and margin falls to 50%.
You can read independent reviews of Prooflytics on G2 and compare it to alternatives in the agency reporting category.
Try Prooflytics free for 14 days - no card required.
Show clients the whole picture, faster
Every client's channels in one brief — no stitching exports.
14 days free · no credit card