Cost cap vs frequency cap: budget guard vs message-count guard

Cost cap vs frequency cap: definitions, table, Iran SMS panel example, FAQ, Leadara mapping.

Reza Ahmadi

SEO and content strategy for organic traffic and brand visibility in search results.

September 23, 2026 · 7 min read

Also available in فارسی

سقف هزینه در برابر سقف فرکانس: نگهبان بودجه در برابر نگهبان تعداد پیام

What is the difference between a cost cap and a frequency cap?

A frequency cap limits how many messages one person may receive in a rolling window. A cost cap limits spend on expensive channels (SMS / WhatsApp) so journeys fire paid channels only when predicted conversion justifies the cost.

One-line for eCRM teams: FC protects the person; cost cap protects the wallet and the SMS panel. You need both; neither replaces the other.

In Iran SMS cost is real. A team with only “3 SMS / person / 7 days” can still torch the monthly budget in one Friday blast — every person was under the per-person cap, but the sum was not. See channel framing in SMS flow vs SMS campaign.

How does each one work?

Frequency cap

Per-person counter: e.g. max 2 promo SMS per 24 hours, or 5 marketing emails per 7 days. When full, the next touch skips or defers. Transactional traffic is usually separate.

Cost cap

Budget or panel credits: a daily/weekly toman ceiling for promo SMS, or a rule “SMS only if predicted value > estimated cost.” The system may fall back to email/push when budget is gone.

DimensionFrequency capCost cap
UnitMessages / person / windowMoney or channel credits
ProtectsFatigue and STOPBudget and burn rate
Can still breakHuge blast under per-person FCMany low-value messages under FC
Right homeAll channelsExpensive channels
Companion metricSTOP, complaintsCost per conversion, RPR

Iran example: home-appliances shop with SMS panel

FC = 3 SMS / person / week. Friday “vacuum sale” blasts 80k consented numbers — one SMS each, so FC is fine. Monthly budget dies; Saturday cart flow has no SMS left. Fix: daily cost cap for promo + SMS priority for cart and tracking codes; sale blast email-first, SMS only to high-intent segments with a separate budget pool.

Diagnosis

ProblemEffect
FC onlyBudget burns overnight
Cost cap onlyPeople still get 5 SMS/day under budget
Transactional inside promo capsReceipts delay
No flow vs blast splitCart and sale drain one credit pool

Practical fix

  1. Global per-person FC for promo channels.
  2. Separate daily/weekly cost cap for promo SMS.
  3. Exempt transactional from both promo caps (watch abuse).
  4. Big blasts email-first; SMS limited to high intent.
  5. Read cost per conversion and revenue per recipient beside STOP.

For transactional vs promo boundaries: Transactional vs promotional email/SMS.

When which?

  1. Worried about STOP and fatigue? → FC.
  2. Worried about the panel bill? → Cost cap.
  3. AI picks the channel? → Both; otherwise SMS becomes the default burn path.
  4. Email only? → FC is enough; cost cap matters less.
  5. Is panel credit reporting wired into automation?

Leadara mapping: events, segments, journeys, email/SMS

  1. SMS-consent segment separate from email.
  2. Cart journey: email first, SMS behind FC + remaining budget guards.
  3. Blast campaigns: estimate cost before send; if over cap, shrink segment or change channel.
  4. Events: sms_sent and delivery status feed FC counters and cost.
  5. Goal: conversion closes the path so the next SMS is not wasted — saves both FC and budget.

Common mistakes

  • Treating one cap as “enough”
  • Per-person-FC-safe blasts with no total cost estimate
  • Mixing transactional and promo credit pools
  • Judging success by SMS send count
  • Disabling FC for an “important” campaign

FAQ

What is the difference between cost cap and frequency cap?

One limits money/credits; the other limits messages per person.

FC full but budget left?

Skip/defer the promo touch; keep budget for other people or tomorrow.

Budget gone but FC free?

Do not fire the expensive channel; fall back to email/push or wait for reset.

Should cart SMS sit under the promo cost cap?

Better a separate pool or higher priority than sale blasts; otherwise the sale starves the cart.

Is rate limiting the same as FC?

No. Rate limiting throttles the system pipe; FC protects the person; cost cap protects budget.

How do we set the cost threshold?

From average SMS cost × last week’s volume and a target cost-per-order; stay conservative month one.

Where in Leadara?

With blast segment sizing, channel order in journeys, and send-time counter/budget guards — write the team contract down.

Bottom line and next step

FC ≠ budget. This week, put a daily cost cap on promo SMS, email-first the Friday blast, and reserve SMS for cart — then read cost-per-conversion beside STOP.

14-day test pattern

Days 1–2: split current credit reporting from FC.
Days 3–5: daily promo cap + transactional exemption.
Days 6–10: run one blast dual-channel under a budget ceiling.
Days 11–14: compare cost/order and STOP vs the prior blast.

VersionModelRisk
AFC onlyBudget burn
BFC + cost capControlled

Team language: count or toman?

If someone says “we have a cap,” ask: per-person count or money? Both need distinct names.

SayMeans
Frequency capCount / person / window
Cost capToman or channel credits
Transactional exemptOutside promo caps
Channel fallbackEmail when SMS is expensive

Go-live checklist

  1. Per-person FC on?
  2. Separate promo cost cap?
  3. Transactional exempt with abuse watch?
  4. Cost estimate before blast?
  5. Cart prioritized over sale in budget?
  6. Dashboard: cost, conversion, STOP, SMS/person?

Boundary with rate limiting

Pipe throttles (messages per minute from the system) protect neither person fatigue nor the monthly bill. Name all three layers so a Friday incident is diagnosed correctly.

Healthy dual-cap signals

SignalMeans
Friday blast does not zero the monthCost cap works
STOP flat after adding a touchFC works
Cart still has SMS the day after a saleBudget priority correct
Transactional not delayedExemption healthy

30-minute whiteboard drill

Two columns: count and money. Drop every current rule. If a column is empty, write at least one guard for it this sprint.

Worked budget math (Iran SMS panel)

Suppose promo SMS costs ~500 toman effective per segment and you have 40M toman/month for promo SMS. That is roughly 80k promo SMS/month, not “unlimited under FC.” If a Friday blast wants 50k and cart flows need ~2k/day, the blast must be capped or moved to email — FC alone will not tell you that. Write the monthly SMS budget on the same wiki page as the FC numbers so operators see both dials before they hit send.

Operator runbook: dual dials before send

Write two numbers at the top of every SMS promo brief:

  • FC dial: max promo SMS per person in the window (e.g. 2 / 7 days)
  • Cost dial: remaining promo SMS budget for today and for the week

The send is allowed only if (a) the estimated audience × cost per SMS fits the cost dial and (b) the expected touches per person fit the FC dial. If the audience is too big for the cost dial, shrink the segment or move the channel to email — do not “temporarily” disable FC. Temporary disables become permanent culture.

After send, log spent budget, SMS delivered, STOP, and orders attributed in 48 hours. That is how you retune both dials next month instead of arguing from memory.

Remember: a blast that is safe under per-person FC can still be unsafe under the weekly cost dial. Always estimate total SMS before you admire the creative.

Keep reading