2. The transaction fee % for smaller transaction amounts which are the majority of transactions (as transaction size does not impact the fee, so larger transactions skew the % down).
Which is, as you can see, heavily correlated with changes to the bitcoin price.
There's also not a %, but rather, a sat/b where the amount of bytes really determines your fee, not the amount you're trying to send.
As hossein already said; the amount of bytes a transaction contains is heavily influenced by 2 factors: A. the kind of adress you use (1xxxx legacy (worst) 3xxxx nested segwit (better) bc1.... native segwit (best))
and B. the amount of inputs you're either using or creating.
To calculate the amount of bytes you can check some of the documentation below:
https://bitcoin.stackexchange.com/questions/1195/how-to-calculate-transaction-size-before-sending-legacy-non-segwit-p2pkh-p2sh
Edit: I believe that those formula's given above are quite old now, and with the introduction of segwit it might not be *completely* accurate anymore (only for the transactions using segwit).
(For segwit, see https://bitcoin.stackexchange.com/questions/87275/how-to-calculate-segwit-transaction-fee-in-bytes/87276#87276 , but i think might be getting too difficult to understand at first glance.. However, if you're interested, further explanation of the weight units and vbytes can be found here; https://en.bitcoin.it/wiki/Weight_units ... )