Given that the mempool has been holding steady at 100,000+ unconfirmed for over a week (and currently 130k+), this last assumption is, in my opinion, very dangerous.
A lot of users see, 6-12 hours and think, yeah I can wait that long... And then wonder why their transaction is still unconfirmed 3 DAYS later...
![Undecided](https://bitcointalk.org/Smileys/default/undecided.gif)
Go check the "Tech Support" (and "Dev and Tech Discussion") and have a look at how many "stuck transaction for X days, HELP!" type threads their are at the moment... Sure a lot are paying like 10 sats/byte or 50 sats/byte... But I've seen a few that were like 300+
As for calculating transaction size, the important thing to realise is that it has NOTHING to do with the amount of BTC being sent...
A transaction of $1,000,000 can be smaller than one of $10... It all depends on the number of inputs and (to a lesser extent) the number of outputs.
SegWit has changed things a little... But when dealing with non-segwit, the "rule of thumb" measurement was basically:
Transaction size (bytes) = (Number of inputs * 148) + (number of outputs * 34) + 10
NOTE: When using Electrum, you can just click "preview" and it will give you a pretty good estimate of the size (it could be off by about 2 bytes at most)