Firstly, you have to check the mempool to know the right fee to use for your transaction fee.
https://mempool.space/a. Network congestion
When the network is congested that's spammers are spamming the network with their garbage. You should use ViaBTC accelerator for low transaction fees or wait till when the fee is lesser.
b. The type of transaction
It's good that you don't have too many small small UTXO so that it doesn't consume high transaction fee when you want to spend from 3-4 input. For instance, have $50, $50 in ten different transaction input. If you want to send $400, you transaction fee will be higher than having just one input with $500. This is why when transaction fees are very low, you have consolidate your small inputs into one output.
c. How fast you want it confirmed
when you have checked the mempool to know the actual amount of transaction fee needed for high priority, you can use it. But if you are not in a hurry, you use low priority and wait till it gets confirmed.
d. The wallet you're using.
Yea, this is also important because if you are using a wallet without RBF, it becomes a problem if you transaction is stucked in the mempool or dropped by the node that your wallet is connected to.
This is why you must use a wallet that is open source, noncustodial and has RBF features. Wallet like Electrum wallet and blue wallet are good wallets because they have RBF.