A mix of both, there is a consensus in some things,
lets look at the sample teams for a second
https://pokepast.es/89cb7b0d786f965b this one is HO, it has a hazard setter and 5 set up sweepers
https://pokepast.es/a3399f21acc19b5a same concept here
https://pokepast.es/c6f068bef8b3acf3 this one is BO because it has offensive mons, but with enough defensive investment to tank hits and retalaite back
https://pokepast.es/8584dd8c9f72d1ab this is also BO, we have 2 semi defensive mons (heatran and tusk) aand 4 offensive mons
https://pokepast.es/297addca543a26d9 this one is fat balance, it has 5 defensive mons but not passive enough to be full stall, and it has 1 offensive mon, dragapult, skeledirge can also be a wincon
and while this is not from the samples,
https://www.smogon.com/forums/threads/dlc-stall-peaked-1-2075-elo.3727969/ this is clearly stall
Now, like I said, the consensus is not enforced
https://pokepast.es/925681e8b19c8773 while this is called alomomola balance, I do think it could be considered a BO due to having 2 walls and 4 offensive mons that can have some sort of defensive utility
The more you play and analyze teams, the more you'll get into team structure