Bitcoin is made up of blocks. Blocks are a set of transactions, and currently restricted to be less than or equal to 1,000,000 bytes and designed so that on average only 1 block per ~10 minutes can be created. The groups the create blocks are known as bitcoin miners. These miners can pick which ever transactions they want in the block they create.
Bitcoin miners get paid all the transaction fees in the block they mine. So as such, it is in their interests to maximize the amount of money they make when they create a block. So what they do is pick the 1,000,000 bytes of transactions that results them getting paid the most money.
From a bitcoin miner perspective, they don't care of the value of a transaction, but just the size (amount of bytes), because they are only allowed to create blocks of 1,000,000 bytes or less. So miners don't consider the absolute fee a transaction has, but rather, the fee per byte.
Eye-balling it, sometimes it looks like the fee estimates are super high. The reason that is, is because they use 95% confidence. If a block was found now maybe you'd only need 20 satoshi/byte, but it might be an hour before the next block and in the subsequent time a large amount of new transactions come in.
Sometimes you don't need such high confidence (e.g. it's not important, or you have a way of fee bumping), so you can get away with much lower fees.
Politics. There's actually a pretty neat solution that offers some minor, but immediate relief. But at this stage looks like it's being held hostage to some political agenda that I'm not privy to.
It's because a high-fee paying transaction depends on it, and reprioritizes it. i.e. the only way for the miner to get the money from the "good" transaction, is include a "bad" one first. It's known as Child-Pays-For-Parent (CPFP), but note that some old versions of bitcoin core, and bitcoin unlimited don't support it (and leave those transactions for smarter miner software).
Nope. But I https://bitcoinfees.github.io/ does
The fee estimates are simply generated by calling calling estimatesmartfee $n
on bitcoin core (0.16.0). The
chart is generated by dumping the mempool and doing some smart sorting.
https://estimatefee.com/n/$CONFS
where $CONFS can anything from 2 to 1008. We directly proxy the results
from bitcoin core using `estimatesmartfee` (with a 30 second cache), so the value is in bitcoin per 1000 bytes. If you're using this, make sure to put a fallback. If it
works, it'll be accurate. But don't expect five 9s of reliability -- because, really, I really only made the API to look cool.