I'd say the bitcoinfees.earn.com site is fairly accurate in estimating. The api from there shows me the fastest fee and a 1 hour fee. If the 1 hour fee is close to 20 or 10 sats or even lower, then it's just a matter of a few hours more for 1 sat fee.
My 1 sat fee transactions have usually confirmed in 24 hours, but sometimes could take as long as 48.
I just checked the API and it's more accurate than i expected (compared with their website which tends to give overly high fee recommendation)
It's not as good as recommendation from other website or reading the chart manually though.
1 sat/byte purely depends on how many pending transaction and how many user who're not in hurry