I think the clue is in the name, as @PrHyfEz-sok mentioned. You cannot "expect" a bonus and it should not be considered a definite and remins totally at the company's discretion whether you should get one or not. Now if base pay is not reaching market levels then that is an entirely seperate problem.
Yes and no. I agree 100% that a "bonus" is above & beyond and should not be expected. However, HR tells you, at least in the US, that your offer is based on the "total compensation package". That total compensation package is made up of, for non-sales staff:
base pay
benefits (health:medical/vision/dental and 401(k) / ESPP)
bonus (some percentage of base pay)
You can't tell me that I'm being compensated at or above the industry average based on the total compensation package and then withhold the "bonus" part for when the company fails to meet it's performance goals. The "bonus" is supposed to be what puts the Cisco total compensation package above the industry average, not gets the TCP to the industry average.
I can honestly say that my Cisco base pay plus 100% of my bonus percentage was only "at" the industry average. Every recruiter I talk with says they can get me $1-5K more annually as base pay than I made at Cisco with my bonus. I'm currently making more--base pay/no bonus--now than I did at Cisco. I think I'd rather have no bonus & a higher base pay. That way, if leadership fails, I still get the same wages at the end of the year for a bad year as I do for a good year. Why should only leadership get the higher pay in bad years?