# What units does curl use for bandwidth?

`curl` on the command-line displays progress like this:

``````  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
8 1000M    8 85.2M    0     0    57k      0  1:06:13  0:05:38  1:00:35   47k
``````

The speed displayed in this example is `47k`. But what does this mean? Is this:

• 47kiB, that is 47 * 1024 bytes
• 47kB, that is, 47 * 1000 bytes
• 47kb, that is, 47 * 1000 bits (bits are often used to measure speed)

And is it:

• per second
• or per minute?

### What units does curl use for bandwidth?

According to the source code it is `kiB per second`.

Here you can see the definition uses `1024` and not `1000`

``````/* The point of this function would be to return a string of the input data,
but never longer than 5 columns (+ one zero byte).
Add suffix k, M, G when suitable... */
static char *max5data(curl_off_t bytes, char *max5)
{
#define ONE_KILOBYTE  CURL_OFF_T_C(1024)
#define ONE_MEGABYTE (CURL_OFF_T_C(1024) * ONE_KILOBYTE)
#define ONE_GIGABYTE (CURL_OFF_T_C(1024) * ONE_MEGABYTE)
#define ONE_TERABYTE (CURL_OFF_T_C(1024) * ONE_GIGABYTE)
#define ONE_PETABYTE (CURL_OFF_T_C(1024) * ONE_TERABYTE)

...

}
``````

Here you can see the calculation is done in ms and then divided by `1000` to get seconds.

``````  /* Calculate the average speed the last 'span_ms' milliseconds */
{
curl_off_t amount = data->progress.speeder[nowindex]-
data->progress.speeder[checkindex];

if(amount > CURL_OFF_T_C(4294967) /* 0xffffffff/1000 */)
/* the 'amount' value is bigger than would fit in 32 bits if
multiplied with 1000, so we use the double math for this */
data->progress.current_speed = (curl_off_t)
((double)amount/((double)span_ms/1000.0));
else
/* the 'amount' value is small enough to fit within 32 bits even
when multiplied with 1000 */
data->progress.current_speed = amount*CURL_OFF_T_C(1000)/span_ms;
}
``````
• I had to look this up, so hopefully this saves someone the effort: kiB is a kibibyte and you can search sites like this one to convert it to other units. – SteveLambert Apr 18 '17 at 19:25