# Cascade assignment

Source: https://lemon.cy/glossary/cascade-assignment/  
Publisher: Lemon.cy (Red Tribe Media Ltd, Limassol, Cyprus)  
Updated: 2026-09-10 · Verified against production: 2026-09-10

**Short answer:** Offering a cleaning job to one cleaner at a time in the property's priority order. Each offer expires after 60 minutes (10 for urgent jobs) or on a decline, then passes to the next cleaner; when the list is exhausted the host is alerted.

Cascade is the default because it is predictable: the cleaner who knows the property gets the first offer, and the host can see exactly who was asked, when, and what they said. Each offer is a row (`job_assignment_attempts`) with its token, expiry and response, so the history of a job is a list, not a memory. Assignment starts through a compare-and-swap in the database so two servers cannot both begin offering the same job.

The cascade respects each cleaner's availability rules (weekdays, date ranges, blocked windows) and their simultaneous-jobs capacity before making an offer, and skips a cleaner who has cancelled the same job. When the list is exhausted the job moves to `waiting_for_cleaners` and the host is alerted; adding a cleaner or restarting the cascade from the dashboard picks up where it stopped.

## Related

- [Broadcast assignment](https://lemon.cy/glossary/broadcast-assignment/)
- [How does automatic cleaner assignment work in Lemon.cy?](https://lemon.cy/learn/how-automatic-cleaner-assignment-works/)
- [What happens when a cleaner declines a job or doesn't answer?](https://lemon.cy/learn/what-happens-when-a-cleaner-declines-or-does-not-answer/)
