Yeah, that loop you’re stuck in is really common, and it’s less about doing something wrong and more about the pool getting overwhelmed all at once.
A big party dumps a ton of stuff into the water in a short window. Sunscreen, body oils, sweat, deodorant, even detergent residue from swimsuits. Chlorine can’t keep up in real time, so by the next morning you’re looking at cloudy water even though it eventually clears after a shock. The shock works, but like you said, you’re always chasing it after the fact.
What helped me was shifting everything forward a bit. The day of the party, I make sure pH is already dialed in before anyone gets in, because chlorine is way weaker if pH drifts up. I’ll bump chlorine slightly ahead of time instead of waiting until the damage is done. I also run the pump longer during the party and overnight after, not just on the normal timer. Filter pressure usually jumps a couple psi after these days, which tells me it’s actually catching all that fine junk.
If parties are frequent, enzymes made a big difference for me. I started using an enzyme from aquadoc the night before heavy swim days to break down oils before they turn into that dull haze. It doesn’t replace chlorine, but it takes a lot of load off so the water doesn’t fall apart overnight. Brushing before and after also helps keep that stuff from sticking to surfaces and re-clouding the water later.
You’ll probably still need to shock sometimes, but once the pool is better prepared going in, it feels more like maintenance instead of recovery mode every single time. I stopped dreading mornings after parties once I made those changes.