A little more typing, but I find dd present on most systems already, so I tend to do this:
tar ... | dd status=progress | ...
That's slowish, bottlenecking disk based IO. (yes you can improve it with dd options, if you are versed in the language...)
One problem I've noticed with status=progress is that systems can sometimes have gigabytes of buffer space waiting to be filled, so the transfer spends most of its time in a "nearly done" state while (for instance) the SD card gets slowly filled at its real speed.
dd conv=swab is a cool and useful option. swab stands for swap bytes, iirc. guess what it is used for, those who don't already know.
I've used pv longer than dd had this option for, but that's fair! I also don't use find options, for example, since find piped into the tool everyone already knows anyway - grep - is much easier
Sadly, dd will not give you an estimated time or allow you to limit the transfer rate, which are two features I use a lot in pv