I’m in the “watch the water, not the calendar” camp, but one thing I’d add that hasn’t really been mentioned is consistency.
A single cold night doesn’t mean it’s time to close. I’ve made that mistake before. The water dipped under 60°F for a day, I rushed to close, then we had a warm stretch and the water sat in the mid-60s under the cover for weeks. That’s the only year I opened to early algae even though I thought I’d done everything right.
What’s worked best for me is waiting until the water is staying around 60°F or lower for several days in a row and the forecast looks like fall is actually settling in. At that point algae growth really slows down and whatever sanitizer you leave behind isn’t fighting an uphill battle.
I also make sure the pool is as clean as possible right before closing. Brushed, vacuumed, no visible debris. Closing a week later with clean, cold water has always been easier on spring opening than closing early with warm water, even if it means swimming one less weekend.
So late September to October ends up being right for a lot of people, but the real trigger is stable water temps, not a date on the calendar.