Been there done that, in fact this year on Sunshine. I was in one of the last rooms on deck 1 at the far aft of the ship. Every time we came into or left port, let's just say my wife and I were first to know. At least we had no problems getting up on time to get off the ship on debarkation day...
Back on topic though - Carnival seems to be implementing pricing similar to airlines and other industries where the price you see depends on an algorithm. Your onboard spend, how many times you've visited the site without booking, casino status, moon cycle - who knows what all feeds into the offers you receive. But it's something my wife and I are cognizant of, we always check both of our accounts before booking to see who has the better offer.