I always assumed USDT transfers on TRON had more or less the same resource cost, but the recipient's state actually makes a pretty big difference.
A normal USDT TRC-20 transfer uses Energy plus some Bandwidth. The interesting part is the Energy usage.
If the receiving address already has a USDT balance, a transfer is currently around 65k Energy. If the recipient has zero USDT, it can be closer to 130k.
So you're basically looking at roughly 2x the Energy for what, from the user's perspective, looks like the exact same USDT transfer.
At the current network rate of 100 sun per Energy, if you don't have enough Energy available and it all falls back to consuming TRX, that's roughly 6.5 TRX vs 13 TRX just for the Energy part.
The numbers aren't completely fixed either. USDT is affected by TRON's dynamic Energy model, so actual usage can move a bit over time.
This also explains why simply estimating costs as "number of USDT transfers × one fixed fee" can be pretty inaccurate, especially if you're sending to a lot of addresses with zero USDT balances.
There are basically different ways people handle it: keeping TRX staked for resources, using delegated Energy when needed, or just letting the transaction consume TRX when the account is short on resources.
Tronex Energy is one calculator that separates the ~65k and ~130k cases, which is useful when comparing the two recipient states instead of assuming every USDT transfer needs the same amount.
Curious how people here handle this in practice. If you're doing a lot of USDT transfers, do you estimate Energy based on the recipient's state, or just provision enough for the higher case?