Rate is a simple little program I wrote that copies data from stdin to stdout while outputting status information about the transfer rate to stderr.

You can download the code and the man page if you happen to want someting similar. Here's the man page (from man2html) :

     NAME
          rate - passes data from stdin to stdout outputing status
          information on stderr.

     SYNOPSIS
          rate [-b blocksize] [-o output size]

     DESCRIPTION
          rate

          Simple passes data from stdin to stdout while outputting
          status information on stderr.

          The status information is of the form X Y (Z) where X is the
          number of bytes passed through so far, Y is the average
          transfer rate, and Z is the transfer rate of the 'output
          size' chunk most recently processed.

          This exists because I use "dd | nc" and "nc | dd" to
          transfer disk image chunks between PCs in preperation for
          games nights. It's annoying not to be able to see how far
          the transfer is, so now I can by using "dd | rate | nc" and
          "nc | rate | dd".


     OPTIONS
          -b blocksize Specifies the size of the buffer used to store
          reads from stdin before writing to stdout. Is the size of
          the read(2) call the result of which is then written to
          stdout using multuple write(2) calls if necessary. Defaults
          to 8192 bytes.

          -o output size Specifies the number of bytes to read between
          making status outputs to stdout (note, that more bytes may
          actually be read due to the relative sizes of blocksize and
          output size as well the amount of data actually read by each
          read call).  Defaults to 10 times the blocksize.


     BUGS
          I'm sure there are many, but I haven't come across them yet.