First, tell me that I understand you correctly. Viking provides your flights for the cruise and for $1998 additional, Viking will change your flight to Prague instead of Budapest. Then after 3 nights and three meals (plus breakfast??) in Prague Viking will get you to Budapest. Will Viking get you to Budapest by plane or by train or by bus? So far am I correct?
So, a 4-star hotel in Prague, a darn good 4-star hotel will cost you $500 for 3 nights (Hotel Ventana in Old Town in October, including breakfast). The most expensive option to reach Budapest is flying on Ryanair non-stop and with all the upgrades and luggage and extra fees that will cost no more than $175 a ticket, so $350 for the couple (or $100 on the train). 1 meal a day for three days for two people is worth no more than $35 x 2 x 3 = $210 then you will have to buy your own airport transfer in Prague so another $60 for a taxi x one each way. Total cost at the very high end is $1,120 (check my math) now add your $150 penalty and you are at $1,270. [vs $1,998 ?????]
I am assuming that you are doing this on top of an extension in Budapest? Don’t go all the way to Budapest, get on a ship, spend one night, and then sail away. You will want not less than 3 full days in Budapest. All the folks that I have met that bought extensions in Budapest, only got 2 nights and at that they ended up rushing. Doing the same sort of math on those Viking provided extensions showed the Viking extensions cost several hundred dollars more than the actual cost.