FA-59597 / Subscription proration billing / Member archive
Dunning retry schedule and status: payment settles invoice · case 02
Failures logged after a successful payment put a paid subscription back into dunning.
Case contract
Input {events: [[day, fail|pay]], due, retry: offsets from due for retries, final canceled|unpaid, today}. Events up to today are processed by day (stable). Payment settles: status active, no retry, stop. Each failure increments a counter; after more failures than scheduled retries the status becomes final and processing stops; otherwise past_due with next retry at due + retry[failures-1]. Return [status, next_retry].
Why this case matters
Payment retries drive subscription status; off-by-one retry counting cancels customers early or never.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression 0 | ["unpaid", null] | ["active", null] | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗