I've been a landlord for years. Most of my rentals are month to month. Other landlords think I'm crazy. I don't.
If a tenant wants to leave, I don't want to hold them hostage. If I'm not delivering what I promised, they should be able to hold me accountable.
SaaS should work the same way.
An annual discount benefits both sides. The company gets cash upfront and saves on processing fees. The customer gets a lower price. It shouldn't give the company permission to change the deal, lock the customer out, demand more money, and refuse a prorated refund.
That's not retention. It's a hostage situation.
Software gets easier to replace every day. Lock-in is getting dumber, not smarter.
Earn the customer. Keep them because they're delighted to stay.