Part of the plan-limit upgrade lifecycle epic (#4635). This is the detect + notify half (its sibling #4634 is the upgrade mechanism).
Problem
When an API customer approaches or exceeds their plan caps (per-minute burst / daily allowance), we currently do nothing customer-facing — they'd be silently throttled once #3199 enforcement flips on, or (worse) surprised. We must notify them first and point them at a self-serve upgrade, so they can choose to upgrade or reduce traffic. No auto-charge, no silent throttle.
Scope
Relationships
Open product decisions (resolve in planning)
Thresholds & sustained-vs-spike logic; channels (email / in-app / both); cadence & anti-spam; copy; and sequencing vs #3199 enforce and #4560 overage billing.
Part of the plan-limit upgrade lifecycle epic (#4635). This is the detect + notify half (its sibling #4634 is the upgrade mechanism).
Problem
When an API customer approaches or exceeds their plan caps (per-minute burst / daily allowance), we currently do nothing customer-facing — they'd be silently throttled once #3199 enforcement flips on, or (worse) surprised. We must notify them first and point them at a self-serve upgrade, so they can choose to upgrade or reduce traffic. No auto-charge, no silent throttle.
Scope
wm_api_usage/ the fix(api): P1 — enforce per-tier API limits (Phase 1: per-account burst + usage meter + safety ceiling) #3199 daily meter). Thresholds TBD in planning (e.g., 80% and 100% of allowance; sustained burst over cap).convex/payments/subscriptionEmails.tspatterns) and/or in-app banner — with a clear upgrade CTA linking to the gap: no self-serve plan upgrade/change flow for existing subscribers (Starter→Business; blocks #3199 enforce + misses revenue) #4634 flow.Relationships
Open product decisions (resolve in planning)
Thresholds & sustained-vs-spike logic; channels (email / in-app / both); cadence & anti-spam; copy; and sequencing vs #3199 enforce and #4560 overage billing.