I think the "counter type" should be... I don't know. Clarified? Updated? Like, if a type resists the Gym's STAB, then it leans towards a counter type, but if that type isn't super-effective against that Gym type at the same time, I think they should cancel out. Like a x2 and x0.5 at the same time. You just get 1. Bringing Water to Steel would count Water as a counter type, since Water resists Steel, but Steel doesn't resist Water. Which would also mean that Dragon isn't a counter type to Dragon. You'd bring a type that's weak to that Gym type's STAB, while at the same time you brought a type that has STAB super-effectiveness against the Gym's type.
But then there are pokemon who despite having having the best type matchup don't actually do so well because of the sets it can run.If someone brings up a Magikarp I can hardly call that a counter to Steel.