DEV Community

Revenue Search
Revenue Search

Posted on

I Automated Everything About My Rental Except the One Thing That Actually Broke

I bought a condo in Richmond Hill in 2023 and put it on Airbnb. I am a backend developer by trade, so my instinct was to treat it like a service.

Within two months I had a small stack running. Calendar sync pulling bookings into a Postgres table. A cron job firing a check in message four hours before arrival. Smart lock codes generated per reservation and expiring automatically at checkout. A Slack webhook that pinged me if a booking came in under 24 hours notice.

It worked. All of it. I have never had a guest locked out.

What I did not automate was the turnover, because you cannot automate a person scrubbing a shower.

Here is where the interesting failure happened. My system had a beautiful model of the world. Booking ends at 11, next booking starts at 4, therefore five hours of turnover capacity. Plenty. The calendar was green.

The calendar was lying, and it was lying in a way that took me four months to see.

The cleaner did not have five hours. She had five hours minus travel, minus the time to find parking in an underground garage where visitor spots require a call to the front desk, minus the time to discover the previous guest had run the dishwasher but not emptied it, minus the twenty minutes of laundry that should have started the second she walked in but did not, because she started in the bathroom like every cleaner does.

My model had one variable. Reality had nine.

The bug was not in the code. The bug was that I had modelled turnover as a duration when it is actually a dependency graph with a critical path, and the critical path runs through the laundry.

Linens take ninety minutes to wash and dry. Nothing else in the unit takes ninety minutes. So laundry is the long pole, and if it does not start in the first two minutes, nothing you do afterwards recovers the time. Every other task parallelises around it. That one does not.

Once I understood that, the fix was embarrassingly small. I stopped writing software and wrote a checklist with laundry on line one, above everything, in bold. Turnovers went from routinely overrunning to finishing with forty minutes to spare.

The second thing I changed was giving up on the idea that anyone could absorb this from a paragraph of instructions. I ended up working with a company that does Airbnb cleaning in Richmond Hill and handing them the dependency graph rather than a task list, which sounds pretentious until you realise a task list implies order does not matter and it absolutely does.

If you run a rental and you are technical, the temptation is to build. Resist it a little longer than feels comfortable. Go stand in the unit during a turnover and watch where the person waits. The waiting is the bug. Everything else is just work.

I still run the cron jobs. They were never the problem.

Top comments (0)