I have not found formulas to be accurate. I had a test done a few years ago to help me set zones, and while it's a few years later now, they still seem applicable. I haven't had max tested for quite a while and see no reason to do so. It's better to set zones based on LT or other metric points anyway.
I have a Polar HRM with a feature called OwnZone. It does not determine the breaks between the zones, but it seems to get the bottom of Z1 and the top of Z4 (out of 5) correct, at least a rough match to my test-based zones. I have gone and will continue to go with it, it's too much hassle to always worry about zone shift.