Transaction-fee prediction is awful

Is the fee-prediction mechanism of wallets an API call against the chain mempool, or is it something created in-house by each wallet?

I ask because my ETH, SOL, ATOM, LUNA, and MATIC wallets all predict fees within 3% of actual. ZilPay, and before that Atomic, predictions are wildly, GROSSLY, inaccurate. So inaccurate, I refused to try to claim my stake-rewards until the reward amount exceeded the predicted (60ZIL!!!) fee amount. That meant waiting a long, long time.

How can this be improved, and is the core dev team already working on it?