Wash Job Generation

Wash Job Generation

Once a subscription is active, the system walks forward day by day and creates a wash job for every occurrence of the customer’s preferred days, stopping the instant the plan’s wash quota is reached — not necessarily at the last matching day in the 30-day window.

Worked example

A 12-wash/month plan, preferred days Saturday / Tuesday / Thursday, starting 1 Jan 2027 (a Friday — no wash that day):

There are 13 matching dates in the window, but the plan only grants 12 washes — so the 12th occurrence (Thu 28) is where generation stops. Sat 30 — a real preferred day, still inside the subscription’s own window — gets no wash job at all.

Why this matters

Nothing is technically broken here — the quota math is working exactly as designed. But a customer tracking “my wash days are Sat/Tue/Thu” has no way to know in advance that this particular Saturday falls outside this cycle’s quota — it just looks like a missed wash. See Known Gaps for the proposed fix (make the cutoff visible, rather than changing how periods or pricing work).

What doesn’t change to fix this

The subscription’s 30-day, flat-price period is a deliberate, load-bearing design choice — tying period length to “however long it takes to deliver N washes” instead would ripple into renewal, auto-expire, auto-pause, and grace period math across the whole system, to fix what is really a visibility problem, not an architecture problem.