In my opinion, overstocked is a matter of 2 things. Physical space and parameter control.
The first is obvious and not much needs to be said on it. Do your fish have enough room to swim without hitting each other? If not, then you’re wayyy overstocked.
The second one is also pretty straightforward, but a little more analysis is required. How are your nitrate and phosphate levels? Are they low/high enough to sustain the corals/inverts you want to keep (for example, tanks with acropora and other SPS will likely be easier to manage with a lower bioload, while softy/LPS tanks may have more heavier loads). Also, how are your ammonia levels? If it’s anything above zero, you either 1. Stocked too fast or 2. Stocked too much.
However, I am very liberal with stocking, especially with bigger tanks. In my opinion, as long as there’s physical space for swimming and your tank isn’t a toxic wasteland, you can stock as many fish as you want. Heck I plan to keep 6 tangs, a fox-face, a Quoyi parrotfish, and a niger trigger in my 180 gallon system with an additional 90 gallons or so of water. My tank will also have a variety of corals like acropora and montipora. The key? Keeping those parameters under control. I will have to do more water changes and maintenance than if I stocked lighter, however, that’s what I’m willing to put up with. The question really is, what are you able to put up with maintenance wise...?
PS - Though a highly controversial topic, I have nothing against buying fish that will outgrow your tank (for me, a naso tang) as long as you have plans to rehome it as it grows. So if you want to keep a kole tang in a 55, just plan to have a home for it to go to in the future! For example, when my blonde naso outgrows my display, it’ll be going into my LFS’s 5,000 gallon system!