I've tried Earn.com and the ones you mentioned before, and I found all of them to be overestimating fees. I suggest this one, it's far more accurate:
https://coinb.in/#feesThat's because some of these sites will only show estimations for transactions involving legacy Bitcoin addresses.