Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languageen

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.

Warning
  • 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 calculated when the report is generated by rounding the microseconds value divided by 1000000 (the number of microseconds in one second)
  • The sums at the bottom are calculated in the report, 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 sums are numerically correct.

Info

So where did it go?

  • 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 to get the sum of the number of seconds from the sum of the microseconds (which is correct) and display 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

However, astute readers will note that 41570 + 162 + 68 + 259 + 314 + 44026 does not in fact equal 86400.

Info

This is called the rounding paradox.

So what to do?

Unfortunately,

this is called the rounding paradox.The simple fact of the matter is there is no

 there is no simple or nice way to deal with this.

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

We here at jtel have decided

just

to

live with it - so

go with the first method.

So sometimes the sums in

our reports, when they involve times,

jtel reports may not add up exactly as you would expect.

Now, at least you know why!

We ask that you consider this circumstance before opening a service ticket. Simply put: This mathematical fact can not be changed.



Sv translation
languagede

Das jtel System nimmt Zeitstempel, wenn ein bestimmtes Ereignis eintritt, bis auf die Mikrosekunde genau, sofern verfügbar.

Dies kann zu einigen Paradoxien führen, wenn die Werte in Berichten verwendet werden.

Warning
  • Beachten Sie, dass aufgrund des Echtzeitcharakters des Systems, insbesondere bei der Bearbeitung von Anrufen, eine hohe Genauigkeit der Zeitstempel erforderlich ist, um sicherzustellen, dass die Ereignisse in der gleichen Reihenfolge geordnet werden, wie sie tatsächlich eingetreten sind.
  • Dies ist besonders wichtig für Systeme, die zu Abrechnungszwecken zertifiziert werden müssen.

Im folgenden Beispiel könnte es sich beispielsweise um die Zeiten handeln, die ein Bearbeiter während eines Tages in einem bestimmten Agentenstatus verbracht hat.

  • Die tatsächlichen Werte, die in den Rohdaten gespeichert sind, sind die Zeiten in Mikrosekunden.
  • Die Zeit in Sekunden wird verwendet, um einen Stunden:Minuten:Sekunden-Wert in einem Bericht anzuzeigen
    • Dieser Wert wird bei der Erstellung des Berichts durch Aufrunden des Mikrosekundenwerts geteilt durch 1000000 (die Anzahl der Mikrosekunden in einer Sekunde) berechnet.
  • Die Summen am unteren Rand werden im Bericht durch Aufsummieren der entsprechenden Spalte berechnet.
StatusZeit in Status in MikrosekundenZeit im Status in Sekunden
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

Wie Sie sehen können, fehlt eine Sekunde, obwohl die Summen numerisch korrekt sind.

Info

Wo ist sie also geblieben?

  • Dies ist darauf zurückzuführen, dass eine kumulative Anzahl von Mikrosekunden, die größer als eine halbe Sekunde ist, bei der Berechnung der Anzahl von Sekunden für jede Zeile abgerundet wird.

Eine Alternative könnte darin bestehen, die Summe der Sekunden aus der Summe der Mikrosekunden zu ermitteln (was korrekt ist) und Folgendes anzuzeigen:

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

Aufmerksame Leser werden jedoch feststellen, dass 41570 + 162 + 68 + 259 + 314 + 44026 nicht gleich 86400 ist.

Info

Dies wird als Rundungsparadoxon bezeichnet.

Was ist also zu tun? Leider gibt es keinen einfachen oder schönen Weg, damit umzugehen.

  • Entweder Sie leben mit der/den fehlenden Sekunde(n) in den Summen
  • Oder man zeigt irgendwo in den einzelnen Datenzeilen falsche Werte an, indem man die fehlenden Sekunden aus der Summe dieser Zeilen addiert

Wir hier bei jtel haben uns für die erste Methode entschieden.

Daher kann es vorkommen, dass die Summen in den jtel-Berichten nicht genau das ergeben, was Sie erwarten würden.

Jetzt wissen Sie wenigstens, warum!

Wir bitten um Verständnis für diesen Umstand und um entsprechende Berücksichtigung, bevor Sie einen Service-Fall bei uns eröffnen. Einfach gesagt, kann man gegen diesen mathematischen Fakt nichts unternehmen.