Renewal Flows

Renewal Flows

There isn’t one renewal mechanism — there are three, each triggered differently, and each landing in a different starting state.

Every renewal — any path — links the new period back to the one it renews, so a customer’s full history reads as one continuous chain instead of disconnected rows. This is what lets the Admin Experience show “renews into …” instead of a flat list of unrelated subscriptions.

Why auto-renew no longer checks payment first

Auto-renewal used to skip a customer whose ending period wasn’t paid — that period would simply expire instead. That meant a customer’s preferred wash days could silently stop being scheduled purely because an invoice hadn’t been settled yet, even though grace period enforcement already exists to handle exactly that.

Auto-renewal now always creates the next period, regardless of the ending period’s payment status. Payment enforcement still happens — it just happens on the new period, the same way it does for every other period (grace period, reminders, and now an admin decision to pause if it goes overdue). When the period that just ended wasn’t paid, the admin is notified so they can follow up directly, but the customer’s schedule doesn’t stop for it.

A period can still fail to get a successor — a vehicle that’s been removed, a subscription with no preferred days left, or an unresolved scheduling conflict — but “the last invoice wasn’t paid yet” is no longer one of those reasons on its own.