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 inside the 30-day window — the plan’s nominal wash count (e.g. “12 washes/month”) is the number shown to the customer, not a cap on how many actually get generated.
Worked example
Preferred days Saturday / Tuesday / Thursday, starting 1 Jan 2027 (a Friday — no wash that day), on a plan nominally sold as 12 washes/month:
There are 13 matching dates in this particular window. All 13 get a wash job — including Sat 30, the 13th occurrence, which used to be silently dropped for exceeding the plan’s nominal count. The price for the period doesn’t change either way; only the number of washes actually delivered does.
Why this matters
A customer tracking “my wash days are Sat/Tue/Thu” should always get a wash on every one of those days that falls in their period — no date should look like a missed wash just because a particular cycle happened to contain more occurrences than the plan’s headline number. This closed what used to be a visible gap between “my preferred days” and “what actually got scheduled.”
The one direction this doesn’t change: a shorter cycle (fewer matching days than the nominal count) still delivers fewer washes for the same flat price — see Known Gaps for that still-open question, which is a pricing decision, not a scheduling one.
What doesn’t change
The subscription’s 30-day, flat-price period is unchanged — this fix only touches how many wash jobs get generated inside that fixed window, not the window’s length or the price. Renewal, auto-expire, and grace period math are unaffected.