I chased this exact thing last winter and it made me feel like I was losing my mind. Chlorine looked perfect at night, then absolutely nothing by morning, even though the water stayed clear. In my case it wasnt one big smoking gun, it was the water quietly chewing through sanitizer faster than I realized. High heat, cover on tight, and a decent bather load after workouts meant the chlorine demand was way higher overnight than I expected.
What finally stopped the zero reading was resetting the basics instead of dumping more chlorine. I realized my alkalinity was sitting low, so pH kept creeping up, and chlorine just wasnt staying effective. Once I bumped alkalinity into range and got pH to settle, the sanitizer stopped vanishing. I also did a proper oxidizing shock to burn off whatever invisible gunk was in there. After that, I switched to using aquadoc chlorine granules post-soak instead of guessing, and made sure the pumps ran long enough to mix everything before closing the cover.
One small thing that mattered more than I thought was circulation. If I add chlorine and close the cover right away, it disappears way faster. Now I leave the jets running 15 minutes so it actually distributes and off-gasses a bit. Since doing that, I wake up with a reading instead of zero. Water still looks the same, but chemistry finally behaves. Anyone else notice overnight loss gets way worse when the tub has been quiet all day and then gets hit with one heavy soak?