I will be surprised if there is a macro-pattern. Every voyage will be unique. Inventory (supply) will sell at a different pace. And then there is group space to consider...big operators put dibs on suites/staterooms far in advance and then proceed to sell into their allocated space. As time ticks away travel sellers release space if demand isn’t as expected. As upper category space is released then inventory control may fill some of it with upgrades, and keep some for much closer-in bookings.
Overlay all this with the number of booked guests willing to upgrade, and the bids they’ve submitted.
The snapshot of supply, demand (both normal expected demand + upgrade demand), and days out from sailing would give you the “pattern” but really these three variables differ at any point of time. Other variables, if you were building an algorithm, would be the season, the destination of voyage and the length of voyage, because these affect how demand flows in, eg different historical booking patterns.
Sorry to ramble on...maybe too much coffee this morning!
I guess I’d say an upgrade is like playing the lottery, it’s a game of chance but you can’t win if you don’t play.