An agency paid a percentage of your ad spend earns more when you spend more. That’s not cynicism. It’s arithmetic. Every fee model pays the agency for something, and that something is what gets optimized, whatever the pitch deck says about “partnership.”
So before you judge an agency on results, read its contract as an incentive document. Below we break down the four fee structures we see most on client and discovery calls. They’re % of spend, flat retainer, base plus a share of growth, and revenue share. For each one: real deal terms (anonymized), what it rewards, where it breaks, and the clause that fixes it.
Key Takeaways
- Every fee model optimizes the thing it pays on. % of spend pays on budget, retainers pay on scope, growth shares pay on top-line deltas, rev share pays on attributed revenue.
- None of the four common models pays on contribution margin or new customers, the two numbers that decide whether growth is profitable.
- Month-over-month growth bonuses punish seasonality: the agency earns nothing in January no matter what it does, then gets paid for the spring rebound.
- Fix the contract, not the agency: verify on Shopify numbers, add a margin floor, require approval for spend jumps, and name who actually runs your account.
- Industry data backs the confusion. In the ANA’s 2022 survey, most marketers said they “don’t know” whether performance pay improves agency performance.
Why does the fee model matter more than the pitch?
Because the pitch is a promise and the fee model is a payout schedule. When the two disagree, the payout wins, usually without anyone deciding it should.
One subscription brand we work with put it bluntly after its fourth agency: “people measure their success by the budget they manage, not by the revenue they bring.” Another founder, six agencies in, said “no one really cares. They’re just collecting their paychecks.” Neither was describing bad people. They were describing contracts that pay for activity.
The broader market hasn’t solved this either. In the ANA’s Trends in Agency Compensation report (December 2022), 82% of marketers used fee-based compensation, up from 68% in 2016. Use of performance incentives fell to 41%, from 61% in 2013. And most respondents said they “don’t know” whether performance pay improves their agency’s work. If large advertisers with procurement teams can’t tell, a $5M brand needs to do the math itself.
Here’s that math, model by model.
1. Percent of ad spend: paid on budget
How it works: A base fee (sometimes zero) plus a percentage of media spend, commonly 5–15%.
Real deal terms from our calls:
- A history-subscription brand paid roughly $5k/month plus 10% of spend. The agency’s weekly Slack update read “Our ROAS last week was 0.71.” It refused monthly reports, so the founder couldn’t audit it.
- A seven-figure-a-month edibles brand paid its agency 10% of ad spend. December landed about a third below the revenue the agency had promised, with “never an A/B test,” and the brand fired it.
- Across discovery calls, the typical quote we hear is “$1–5k a month plus 5% of spend.” As one founder summarized it: if the company isn’t profitable, “it’s not their problem.”
What it optimizes: Budget size. At 10% of spend, every extra $10,000 of media pays the agency $1,000, whether that $10,000 returns $30,000 or $3,000. Cutting a losing $10,000 campaign costs the agency $1,000 of income.
Where it breaks: Look at the incentive at each decision point.
| Decision | Good for your P&L | Effect on agency fee at 10% of spend |
|---|---|---|
| Kill a campaign losing money at $20k/mo | Saves cash immediately | −$2,000/mo |
| Push budget +30% into weaker audiences | Usually lowers marginal return | +$3,000/mo per $10k extra spend |
| Shift $10k from Meta to email/retention | Often higher margin | −$1,000/mo |
| Spend through a promo that already ended | Burns money at the wrong price | No change, or up |
That last row isn’t hypothetical. The history-subscription brand’s earlier agency let a Father’s Day code expire at midnight while ads kept running. CAC went from $7 to $23 overnight, and the incident didn’t appear in the agency’s monthly report. A later agency spent $5,400 in one week at 0.8 ROAS without approval, testing new creatives instead of scaling known winners. Client results are specific outcomes, not typical or guaranteed.
The fix: Keep % of spend if you like the simplicity, but cap it. Add a spend-change approval threshold: any week more than 20% above plan needs a written yes. Then make part of the fee conditional on blended ROAS or MER measured from Shopify, not from the ad platform.
2. Flat retainer: paid on scope
How it works: A fixed monthly fee for a defined scope, usually with a minimum term.
Real deal terms from our calls:
- A small gummy brand paid an agency about $12,000/month. Three months produced 2 orders and $165 in revenue. The founder’s summary: “Multiple levels of reviews and all this red tape.”
- The history-subscription brand’s email agency charged $2k/month. When the founder asked for a win-back strategy, the agency said it was “out of scope” and offered to do it for another $2k/month.
- A dev and CRO retainer quoted to the same brand was $2,600/month with a 6-month minimum. At the hours included, that worked out to about $130/hour.
What it optimizes: Hours. Once the fee is fixed, the agency’s margin improves when the work takes less time. That’s why scope documents get defended so hard: anything new is either free work or a change order.
Where it breaks: Retainers are honest about cost and silent about outcome. The gummy brand paid roughly $36,000 for $165 in sales, and the contract was fulfilled. Nobody broke a promise, because nothing in the contract promised revenue.
Retainers also hide a staffing risk. A retention consultant we spoke with described the pattern: “you close with the brilliant one, then a junior runs your account.” A fixed fee doesn’t change when the senior person leaves your Slack channel.
The fix: Name the people. Write into the contract who runs the account, how many hours they spend on it, and that a staffing change lets you exit without penalty. Then attach one outcome metric to the retainer review. For an email agency, that might be the share of revenue from email measured on a short click window, not the number of sends.
3. Base plus a share of growth: paid on top-line deltas
How it works: A lower base fee plus a percentage of revenue growth over a baseline. It sounds like the aligned option, and it can be. The details decide.
Real deal terms from our calls:
- A vinyl subscription club signed with an agency at about $5k/month. The pitch was a guarantee: double revenue versus the same period last year within 3 months, or the agency works 90 days free. Competing quotes were $4–6k with “generic… aggressive discounts.”
- The final terms became a $5k/month base, 3 free months if targets were missed, plus 5% of the month-over-month sales increase.
What it optimizes: Revenue growth over whatever baseline the contract names. Note what’s missing: cost. Revenue can be bought with spend and discounts. The founder spotted it himself: “if it’s a sales target, why would you ever turn off ads?”
Where it breaks: The baseline. A month-over-month baseline is brutal for DTC brands with a Q4 peak. Here’s how it played out:
- January: sales “went off a cliff.” The agency’s explanation was “after the holidays sales are slow.” The founder called that “not analysis.”
- Under a month-over-month bonus, the agency earns zero growth fee in January whatever it does. The incentive to fight the drop disappears exactly when the brand needs help.
- Spring: the natural recovery from January’s low point shows up as month-over-month “growth,” and the agency gets paid for seasonality.
The same agency also killed the best-performing ad over a typo, without telling the founder. A growth share doesn’t prevent operational mistakes. It just changes who notices them. Client results are specific outcomes, not typical or guaranteed.
The fix: Use a year-over-year baseline, or a trailing 3-month average adjusted for last year’s seasonal shape. Pay on growth in new customers or contribution margin, not gross sales. And put a discount ceiling in writing, so “growth” can’t come from training customers to wait for 30% off (we covered why in discount depth and cohort quality).
4. Revenue share: paid on attributed revenue
How it works: The agency takes a percentage of the revenue it’s credited with, sometimes on top of a base.
Real deal terms from our calls:
- A TikTok Shop agency quoted the history-subscription brand $6,500/month plus 10% of revenue.
- A retention consultant described charging on extra profit instead of extra revenue, so his fee only grew when LTV did, not when the brand discounted its way to volume.
What it optimizes: Attributed revenue. Two words do a lot of work there. “Revenue” ignores margin, so a 40%-off promo counts the same as a full-price order. “Attributed” means someone’s model decides who gets credit, and it’s rarely yours.
Platform credit routinely overstates reality. One beauty brand told us platform-reported revenue ran about 3x what it could verify: “Zuckerberg says he does three times as well for us as we actually think.” If an agency’s share is calculated on that number, you’re paying a commission on revenue that partly never happened. We walked through how to check this in platform revenue vs. Shopify reconciliation.
Where it breaks: Discounting and attribution creep. Rev share also tends to cover only one channel, so the agency has every reason to claim orders that email or organic search would have closed anyway.
The fix: Define the revenue source in the contract: Shopify net sales, after discounts and refunds, from new customers only, or from a holdout-tested lift. If you can, move from revenue to margin. A share of incremental contribution margin is the hardest to measure and the best aligned.
What does each fee model actually reward?
Put side by side, the pattern is clear. Each model pays on something adjacent to profit, never profit itself.
| Fee model | Agency earns more when… | Quietly optimizes | Typical failure we’ve seen | Clause that fixes it |
|---|---|---|---|---|
| % of spend | You spend more | Budget size | 0.71 ROAS weeks, no monthly report | Spend-approval threshold + Shopify-based MER floor |
| Flat retainer | Work takes fewer hours | Scope protection | $12k/mo for 2 orders; win-back “out of scope” | Named staff + one outcome metric at review |
| Base + % of growth | Top-line beats baseline | Gross sales, seasonality | Zero January incentive; paid for spring rebound | YoY baseline; pay on new customers or margin |
| Revenue share | Attributed revenue rises | Credit claiming, discounts | Commission on platform-inflated revenue | Define revenue as Shopify net, new customers or tested lift |
Notice what no common model pays on: contribution margin, new-customer count, or payback period. Those are the numbers in our E-commerce Scaling Scorecard, and they’re the ones that tell you whether spend is building the business or renting revenue.
Which fee model should you choose?
There’s no aligned model, only aligned clauses. A % of spend deal with a margin floor and an approval threshold can beat a “performance” deal with a month-over-month baseline. Pick the structure that fits your spend level, then patch its blind spot.
A rough guide from what we’ve seen:
- Under ~$30k/month in spend: % of spend is small in dollars, so a flat fee with a named operator often works better. Watch for minimum terms longer than 3 months.
- $30k–$300k/month: % of spend gets expensive fast (10% of $250k is $25k a month). Cap the percentage fee or move to base plus a bonus tied to new customers at a target CAC.
- Any size, with seasonality: never accept a month-over-month growth baseline.
- Any size: if the agency resists measuring on Shopify numbers, that tells you which number it expects to win on.
One more check: who decides when to stop? Under every model above, the agency is the party least rewarded for recommending less spend. Make that recommendation someone’s explicit job, yours or an advisor’s who isn’t paid on volume.
What to do this week
- Pull your last 6 agency invoices. Calculate fees as a share of ad spend and as a share of contribution margin after ad spend. If fees exceed 20% of that margin, the contract needs work.
- Run the cut test. Find your worst-performing 20% of spend by Shopify-verified new-customer CPA. Calculate what cutting it saves you and what it costs your agency. If those point in opposite directions, you’ve found the incentive gap.
- Read the baseline clause. If any bonus uses month-over-month growth, rewrite it to year-over-year before your next seasonal dip.
- Add three clauses at renewal. Written approval for any week more than 20% over plan. Revenue defined as Shopify net sales. A named account lead, with an exit right if that person changes.
- Ask one question in your next call: “What would you cut this month if you were paid on our margin?” The quality of the answer tells you more than the monthly deck.
If you want a framework for what to put in front of the agency each week, start with two priorities instead of twenty dashboards.
The contract is the strategy
An agency paid on spend will optimize spend. One paid on scope will defend scope. One paid on growth will find the cheapest growth to claim. None of that requires bad intent, which is why firing the agency rarely fixes it. The next agency signs the same contract.
Change what you pay for, and you change what you get. Write the incentive you want, in numbers you can check, before you sign.
