I have to disagree with the OP. If it works for your group and adds to the excitement, great, but that would not be the case IME. It would take too much of the challenge out of the game if players knew what they were up against.
Here is an example: We recently finished our high-level campaign (went levels 1-20 over 18 months) and the final BBEG was an Archmage who was extremely powerful. So, I decided to give him a couple boons from the DMG to make him more interesting. My favorite was Irresistible Offense (IIRC) which allowed him to bypass damage reduction! Boy, was the player with the Dragonborn (fire) and Barbarian (bear totem) surprised when his PCs got hit by his Fireball and ended up taking NORMAL damage, not halved! LOL, the player was pissed off, "Like, WTF! Why am I taking regular damage?!" I told him, there were reasons and he didn't know so just play. The other players got a kick out of it, too, and in the end (after they won) I was free to tell him why he was taking regular damage.
If they had known this Archmage could do that, would it have changed things? Certainly, they would have had to worry about how to deal with the tanks not being as tanky. But, the surprise and shock in the moment was worth more. It created a MUCH greater concern and challenge because they didn't know what they were dealing with.
For mechanical things, such as AC, I only tell them the AC when someone hits it exactly, then I'll say "You just hit, so the AC is 17," etc. Up until then, it is easy enough for the players to call out what AC they hit. Usually after a handful of attacks, they know the ballpack anyway. Often I won't tell them otherwise because there are other factors that might contribute to the AC (or whatever) that they are unaware of and I want them to discover or learn about later on.