| Literature DB >> 20375037 |
Harold Thimbleby1, Paul Cairns.
Abstract
Number entry is ubiquitous: it is required in many fields including science, healthcare, education, government, mathematics and finance. People entering numbers are to be expected to make errors, but shockingly few systems make any effort to detect, block or otherwise manage errors. Worse, errors may be ignored but processed in arbitrary ways, with unintended results. A standard class of error (defined in the paper) is an 'out by 10 error', which is easily made by miskeying a decimal point or a zero. In safety-critical domains, such as drug delivery, out by 10 errors generally have adverse consequences. Here, we expose the extent of the problem of numeric errors in a very wide range of systems. An analysis of better error management is presented: under reasonable assumptions, we show that the probability of out by 10 errors can be halved by better user interface design. We provide a demonstration user interface to show that the approach is practical.To kill an error is as good a service as, and sometimes even better than, the establishing of a new truth or fact. (Charles Darwin 1879 [2008], p. 229).Entities:
Mesh:
Year: 2010 PMID: 20375037 PMCID: PMC2935596 DOI: 10.1098/rsif.2010.0112
Source DB: PubMed Journal: J R Soc Interface ISSN: 1742-5662 Impact factor: 4.118
Figure 1.Errors in adding numbers in Microsoft Excel. Excel's SUM() function, which is used to total all columns in this figure, ignores values that are not numbers. No errors are reported in any of the examples. (a) Two apparently identical sums giving different results. The erroneous sum in the right-hand column is caused by 3.1. having a final decimal point/full stop, and hence being treated as text, and thus processed as zero by SUM. The difference between the column sums may not be noticed by a user, particularly since in normal use they are unlikely to double-check the ‘same’ columns, as used here for illustrative purposes. (b) The ‘show precedents’ feature is one way to help check calculations. It highlights the operands of a cell, but here the precedents for the incorrect total are shown as including the value that has been ignored. Evidently, Excel's notion of ‘precedents’ is the range of possible operands, rather than the actual operands, and therefore the feature is misleading. (c) Through innocent error or intentional mischief, even more unusual column sums can be produced. In the left column, the cell ‘3.1’ is generated by the formula ='3.1', which turns the apparently correct number 3.1 into a string, with value zero as before. In the right column, the cell ‘23’ is actually the number 995, but formatted as ‘23’ using a custom format.
Illustrative results from keying on various systems and devices. Note how different rules can produce the same result (e.g. iPhone Drug Infusion and Graseby 500) that for other input (e.g. ) would give different results.
| system | example | value | rationale |
|---|---|---|---|
| creatinine clearance calculator | Xeloda 71CRCL | 123 | despite the decimal point on the keypad, |
| search engine | Wolfram Alpha | 6 | treated as 1 × 2 × 3 |
| office software | Microsoft Word tools calculate | 1 • 5 | treated as 1 • 2 + 0 • 3 |
| infusion pump | Graseby 3400 | 1 • 3 | dot zeros the decimal part, so |
| handheld calculator | Casio HS-8V ( | 1 • 23 | second and subsequent decimal points are ignored |
| mobile phone | iPhone DrugInfusion | 1 • 2 | second decimal point terminates number |
| infusion pump | Graseby 500 | 1 • 2 | discards everything after first decimal digit |
| maths package | Wolfram M | 0 • 36 | treated as 1 • 2 × • 3 |
| spreadsheet | Microsoft Excel | 0 | converted to a string, which may be treated as zero |
| spreadsheet | Sun OpenOffice | 01/02/03 | converted to a date—ambiguously, 1 February, 2 January, 3 February, 1901, 2001 … , etc. |
The Abbott Aimplus infusion pump illustrates two common problems of number entry with its varied response to the single key sequence . Pressing on the Abbot (or pressing or equivalent on other devices) immediately before entering a number is crucial to the outcome. (a) When has just been pressed, the display is cleared, and can only mean one thing, although exactly what depends on which mode the pump is in. (b) If has not been pressed, the behaviour is almost arbitrary, and many values are possible depending on the user's prior keystrokes. Although the behaviour described in this table is specific to the Abbott Aimplus, like very many devices a display of ‘0 • ’ or ‘0 • 0’ is ambiguous, as it may be the result of pressing , which resets the display, or it may be the result of previous keystrokes (such as , say, which produce exactly the same display but has a different effect on subsequent number entry).
| ( | value | rationale |
|---|---|---|
| 123 | decimal points are ignored | |
| mL hr−1 | 1 • 2 | ignores anything after one decimal digit |
| time | 1.23 AM or 1.23 PM | in |
| ( | possible value | rationale |
| mgm mL−1 | 9999 • 9 | anything ignored unless |
| mL hr−1 | 0 • 1 | a user previously pressed, e.g. |
| mL hr−1 | 0 • 0 | a user previously pressed, e.g. |
| time | 0.00 AM or 0.00 PM | it looks like |
Selected entries from the Institute for Safe Medication Practices (2006) List of error-prone abbreviations, symbols and dose designations. Example errors that ‘… should NEVER be used when communicating medical information’ [their emphasis]. Reproduced with permission. Copyright © ISMP 2009.
| dose designations | intended meaning | misinterpretation | correction |
|---|---|---|---|
| trailing zero after decimal point (e.g. 1 • 0 mg) | 1 mg | mistaken as 10 mg if the decimal point is not seen | do not use trailing zeros for doses expressed in whole numbers |
| ‘Naked’ decimal point (e.g. • 5 mg) | 0 • 5 mg | mistaken as 5 mg if the decimal point is not seen | use zero before a decimal point when the dose is less than a whole unit |
| large doses without properly placed commas (e.g. 100000 units; 1000000 units) | 100, 000 units 1, 000, 000 units | 100000 has been mistaken as 10, 000 or 1, 000, 000; 1000000 has been mistaken as 100, 000 | use commas for dosing units at or above 1, 000, or use words such as 100 ‘thousand’ or 1 ‘million’ to improve readability |
Figure 2.Snapshot of the error-blocking user interface after an error has occurred. The snapshot of the demonstration user interface shows handling a slip where the user has just entered a number with two decimal points (in our design, the device beeps and the screen also goes red to make the error more salient). An interactive demonstration is available.
Calculators make decimal points inconspicuous and ignore over-long number entry. The table shows the results of calculating the 2009 US population as a proportion of world population on a typical handheld calculator, here a Canon LS-270H, compared with values correctly rounded for an eight-digit display. In all cases, the calculator displays an incorrect result, only in one case reporting an error, and then with a relatively inconspicuous marker. (Many calculators display a small ‘E’ instead of the full word.) Compare the standard inconspicuous seven-segment decimal point in the calculator results column against its clear presentation in the column of correct values.
| calculation | keystrokes | result | correct value |
|---|---|---|---|
| percentage | 4 • 575 816 3 | ||
| percentage | 4 • 575 816 3 | ||
| fraction | 0 • 045 758 2 |
Figure 3.A plot of the probabilities of an out by 10 error and a blocked out by 10 error as found in a 5000 sample Monte Carlo method as a function of e for k = 10. The solid line shows the behaviour of a calculator-type device (all but the first decimal point is ignored); the dashed line shows the reduction in out by 10 errors by blocking syntax errors. Note that at certainty of error (e = 1), out by 10 errors are not certain; this is because e measures keying error rates, not out by 10 rates. (Some keying errors create numbers that are out by less than 10.)
Out by 10 probabilities for selected values of e and k. The table shows the probabilities of out by 10 errors blocked by syntactic checking, generated from an exhaustive analysis of errors when keying target numbers in the range 0 • 01–99 • 99 in steps of 0 • 01. The table shows clearly that even with very conservative assumptions, over 30% of out by 10 errors are blocked.
| 0 · 5 | 1 · 5 | 2 · 0 | 5 · 0 | 10 · 0 | |
|---|---|---|---|---|---|
| 0 · 005 | 0 · 327 | 0 · 429 | 0 · 451 | 0 · 504 | 0 · 526 |
| 0 · 01 | 0 · 328 | 0 · 431 | 0 · 453 | 0 · 505 | 0 · 527 |
| 0 · 02 | 0 · 330 | 0 · 433 | 0 · 456 | 0 · 508 | 0 · 530 |
| 0 · 05 | 0 · 336 | 0 · 443 | 0 · 465 | 0 · 517 | 0 · 538 |
| 0 · 1 | 0 · 348 | 0 · 458 | 0 · 480 | 0 · 531 | 0 · 552 |
Figure 4.Plot of probability of an out by 10 error against probability of single key errors. As in figure 3, the solid line shows the behaviour of a simulated real device, and the dashed line shows the reduction in out by 10 errors by blocking syntax errors. The plot illustrates specifically how users with a given e (here 0 • 1) have their effective error rate approximately halved; since the graph is approximately linear for small e, this improvement in out by 10 rate would otherwise have to have been achieved by halving the user's keying error rate. The range of numbers covered in this plot is 0 • 1 to 99 • 9 with k = 10.