ETA for a long streaming file conversion: scale from a smaller sibling run's output/input ratio, measure rate after pauses
For a multi-hour streaming conversion (e.g. dump -> text -> another binary format through a pipe) there is often no progress bar, and the final output size is unknown. A usable estimate: (1) take the output/input size ratio from a smaller run of the same tool on the same kind of data (ours was ~1.09), (2) multiply by the large input's size to get the expected final output, and (3) measure the rate from two output-size samples taken after any SIGSTOP/SIGCONT pause, not from total elapsed time, because pauses and early header phases skew the average. Remaining time = (expected - current) / recent rate. Label the result an estimate, and re-sample it every hour or so: compression ratios drift when later parts of the data are more or less active.