System Workflows
Subscriptions
The subscription engine — trials, dunning on days 1-3-5-7, the 7-day grace window, scheduled downgrades and monthly counter resets.
Plans renew themselves, chase their own payment, and schedule their own demotions. Failed charges retry on days 1, 3, 5 and 7 with an email each time; a seven-day grace period follows; downgrades wait for the cycle end and can be cancelled until then. This is the engine view of state machine 7.6 (Subscription); the traveler surface is UF-TRV-10 and the shared plan-limit prompt is UF-SHR-06.
Delivery phase: P5 Monetization and Gulf launch.
Trigger and actors
- Trigger: a subscription charge attempt, a plan change, or the monthly counter reset.
- Actors: the billing product at the gateway; the dunning schedule; the reset job; admin overrides.
Diagram
Timers and rules
| Step | Timer (verbatim) | Rule trace |
|---|---|---|
| Dunning | "Failed charges shall retry on days 1, 3, 5 and 7, with an email at each attempt" | FR-SUB-08, FR-PAY-06, D-09 |
| Grace | Grace lasts 7 days with features kept | BRL-14, FR-SUB-03 |
| After grace | Post-grace behavior is [OPEN: OD-29] (current rule D-08: drop to the basic tier, block new bookings and deals) | OD-29, D-08 |
| Upgrades | "A plan upgrade takes effect at once with proration" | BRL-13, FR-SUB-04 |
| Downgrades | "a downgrade takes effect at the end of the cycle", cancellable before then | BRL-13, FR-SUB-04, D-219, D-232 |
| Cancellation | "Cancellation keeps access to the end of the paid period. Cancelling during grace ends the plan at once with no refund" | FR-SUB-04, D-223 |
| Trials | "A trial-start notice goes on day 0 and reminders 3 days and 1 day before the end"; trial lengths are [OPEN: OD-28] | FR-SUB-07, D-231, OD-28 |
| Counter reset | "at 00:00 on the 1st of each month in the owner's time zone" | FR-SUB-10, D-218 |
| After downgrade | Over-limit items keep working; new actions hit the limit gate | FR-SUB-09, D-144 |
| Admin override | Second admin plus end date required; owner emailed; auto-reverts at the end date | FR-SUB-05, D-227, D-230 |
| Limit gate | Server-side gate returns the plan, the limit and the next tier; the plan service fails closed | FR-SUB-02, FR-SUB-11, D-224 |
Stories
- As a plan owner, I want four spaced retries with an email each, so that one empty card does not end my service. (FR-SUB-08, D-09)
- As a plan owner, I want a downgrade to wait for the cycle I paid for, so that I keep what I bought until it ends. (BRL-13, D-219)
- As an admin, I want overrides to carry an end date and a second approver, so that a favor never becomes a leak. (FR-SUB-05, D-227)
- As an organization owner, I want counters to reset on my calendar's first of the month, so that quota math matches my books. (FR-SUB-10, D-218)