H5.10.1per-category frequency capsdesignresearch

Caps should be per type, not one shared budget

Aliases: separate budgets · quota isolation · per-channel cap

What it is

Frequency caps should be counted per type, not against one app-wide total. After chat burns a shared budget, security alerts and pickup codes must still be able to send; after marketing burns it, order updates must not stall. A shared total ties high- and low-consequence items to one meter; whoever arrives first writes the fate of whoever arrives later.

This is how quotas are sliced. It is not "too much volume trips whole-app disable"—that is the disable funnel—and not how timezone and sleep choose an hour.

Why it happens

A total assumes arrivals are interchangeable. Loss functions are not: missing a code is not missing a pitch, and extra idle chat is not extra fraud-control. On a shared meter, high-frequency low-consequence types crowd out low-frequency high-consequence types, and the product then blocks the latter with "already pushed today." Independent caps give each type its own saturation point; crowding is isolated.

Independent is not infinite. Each type still has a cap; overflow stops only that type, and other meters do not move. Security can have a very high cap or none, marketing a very low one—that is the shape of the quota, not another master switch.

Studying it

Give mixed arrivals a "N per day total" versus "n per type." Watch whether high-consequence types are dropped on chat-heavy days, and whether marketing can still fill a shared total under a transactional cap.

Independent variables: shared vs per-type quota, shape of each cap, whether high-consequence may exceed. Dependent variables: high-consequence items dropped by quota, share of a shared budget eaten by marketing, later type-off and master-off.

Uniform lab traffic will not show crowding. Use a real burst (group chat) and then inject a security event. Total arrival count is not compliance—a shared total can be "in budget" while dropping the wrong type.

Where it stops holding

A one-type app's independent cap collapses to a total; do not invent categories for the sake of it. Cross-type digests ("you have 3 things") sent as one item need a predeclared type so the digest cannot dodge a marketing cap. Legally required delivery must not be dropped by any product quota; when a budget is spent, drop deferrable types.

Applying it

  • Give each type its own counter; overflow silences or defers only that type.
  • Do not share a meter between security/time-critical transactions and marketing/achievements.
  • Dashboards should show used/cap per type, not one household number.
  • Verify by filling the chat cap, then sending a pickup code and a promotion. The code should arrive; the promotion should hit its own cap or already be low. If the code is missing too, the budget is shared.

Related

  • Within the group: H5.10.2 Quiet hours must still let high-urgency items through · H5.10.3 Queue pending items into one send window instead of dripping them · H5.10.4 The cap's reset period must be visible
  • Adjacent: H5.07 Push frequency · H5.09 Category subscriptions · H5.01 Urgency grading
  • Search terms: per-category cap · frequency budget · quota isolation

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/H5.10.1