Honestly being given anything under 2.5% is just insulting. Pay freeze or COL adjustment in line with inflation is for a few years in bad recessions imo, like 2009-10 or, probably the upcoming 12-18 months.
Being given 3% is in the neighborhood of "better than nothing", but nowhere near what it should be for an employee trying to get ahead and putting in the required effort.
The lucky team member gets a 5% raise, everyone else is usually ranked as "Meets standards" which merits a 2.5% raise. A few people who need time in the penalty box get a 1% raise.
So what happens is your actual performance doesn't matter unless you make the boss look great, or look terrible. He's a non-tech person, so he can't effectively evaluate you on any other criteria.
This leads to employees doing enough work to avoid being fired, or (as is usual with Stack Ranking) sabotaging other workers.
But then you’d have to run the interview gauntlet again, and frankly that’s just so distasteful that I don’t want to.
The weird thing about paying at the 50% line is that it means that your policy is, in effect, "we do not want any above average programmers."