You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

The jtel System takes timestamps, when a particular event happens, down to the microsecond level of accuracy, if available.

This can result in some paradoxes, when the values are used in reporting.

  • Note, because of the real-time nature of the system particularly when dealing with calls, it is necessary to have timestamps of a high accuracy, to ensure that events are ordered correctly in the same order as they actually happened.
  • This is particularly important for systems which need to be certified for billing purposes.

Consider the following example, which could, for example, be the times an agent spent in a particular agent status during a day.

  • The actual values stored in the raw data are the times in microseconds.
  • The time in seconds is used to display a hours:minutes:seconds value in a report
    • This is determined by rounding the microseconds value divided by 1000000 (the number of microseconds in one second)
  • The sums at the bottom are calculated by summing up the relevant column.
StatusTime in Status in MicrosecondsTime in Status in Seconds
Status 141,570,259,03341570
Status 2162,338,287162
Status 368,047,41068
Status 4258,951,950259
Status 5314,248,890314
Status 644,026,154,43044026
SUM86,400,000,00086399

As you can see, one second has gone missing, although the sum is correct.

  • This is due to a cumulative number of microseconds which is greater than half a second, being rounded off when the number of seconds is calculated for each row.

An alternative could be displaying the following:

StatusTime in Status in MicrosecondsTime in Status in Seconds
Status 141,570,259,03341570
Status 2162,338,287162
Status 368,047,41068
Status 4258,951,950259
Status 5314,248,890314
Status 644,026,154,43044026
SUM86,400,000,00086400
  • Astute readers will note that 41570 + 162 + 68 + 259 + 314 + 44026 does not in fact equal 86400.

So what to do?

Unfortunately, this is called the rounding paradox.

The simple fact of the matter is there is no nice way to deal with this.

  • You either live with the missing second(s) in the output
  • Or you display an incorrect value somewhere in the data, by adding the missing seconds to the individual data rows

We here at jtel have decided just to live with it - so sometimes the sums in our reports, when they involve times, may not add up as you would expect. Now, at least you know why!

  • No labels