FAILURE MAP
← Case archive

FA-59594 / Subscription proration billing / Member archive

Dunning retry schedule and status: future event cutoff · case 04

Status ignores a payment or failure that happened today.

Member previewVariant 4 · 3 implementations · 8 checks per implementation

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 fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression 0["active", null]["past_due", 11]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 ↗