Well, first you have to realize that when calculating times like these, its always an approximation. If can vary based on quite a few factors.
Given that, you also have to remember the bytes/bits conversion. If you have a T1 for instance, that is 1.544 Megabits per second, or 1544 kilobits per second. Divide by 8 to get Kilobytes per second, or 192Kbytes/second. So, if your file was 3Mb large, that would be: 3000/193 = 15.54 seconds. You migth also need to adjust for "real" megabytes. ie: 1K = 1024 bytes. 1Mb = 1024K = 1024 * 1024 bytes. So, 3Mb is actually = 3145.728Kbytes, which would adjust your figures to 16.30 seconds. These fractions can add up quickly.
Onto this you would have to add your "overhead" figure. If you have compression on the line, that will really screw things up since the compression rate will usually vary with what data is passing through it.
Of course this would only apply if you are running a clean point-to-point circuit. If your trying to accomplish this via the internet, or with a VPN, or via Frame-Relay or MPLS, your results will probably vary much further!!
Good luck on getting alot of accuracy, I would probably recommend just sticking to estimates you can get by raw bandwidth figures...