Precision vs Instrument Mismatch
Checks whether the number of decimal places in each measured variable matches what the measuring instrument actually produces. A hematology analyser reports haemoglobin to one decimal, so a column of haemoglobin values written to two decimals (13.14 instead of 13.1) did not come from that instrument. Machine-generated data often gets this wrong. The indicator matches each column to a dictionary of instrument precisions and flags columns whose decimal precision does not fit.
Technical description
A deterministic screen comparing reported decimal precision against the precision an instrument is known to produce. It loads an instrument-precision dictionary mapping variables and aliases to expected decimals and a source, matches each numeric column (normalising the name to strip unit decorations such as a trailing parenthetical or comma-qualifier so 'haemoglobin (g/dL)' still matches), counts the decimals of every value, and takes the mode as the column's actual precision. A mismatch is recorded when the actual precision exceeds the expected (always suspicious) or falls below it for an instrument source (which should report a fixed number of decimals). The rate of mismatched columns among matched columns sets the score.
How it works
Layer 1 (deterministic): each numeric column whose normalised name matches the dictionary is examined. The decimal count of each value comes from a fixed-point string, and the mode is the column's actual precision. Too many decimals is always a mismatch; too few is a mismatch only for instrument sources (a hand-derived quantity may legitimately have fewer); and a matched column whose modal precision matches expectation but whose values mix decimal counts, fewer than sixty percent sharing the mode, is an inconsistent_precision mismatch (from the precision consistency and the normalised Shannon entropy of the decimal-count distribution). The mismatch rate (mismatched over matched, at least one match) maps to score: above 0.60 gives 4.0, above 0.40 gives 3.0, above 0.25 gives 2.0, above 0.10 gives 1.0, else 0. Each mismatch yields a finding naming the column, actual and expected precision, and type. Metadata records n_matched_cols, n_mismatch_cols, the too-many, too-few, and inconsistent-precision breakdown, mismatch_rate, mean_precision_consistency, and per-column details.
Why this matters
Measuring instruments report values at a fixed precision determined by their design, so the number of decimal places in genuine data is a fingerprint of the device, not a free choice; a value at the wrong precision could not have come from the stated instrument. This is a useful tell for machine-generated data: Taloni and colleagues showed a model fabricating a clinical dataset produces values whose form does not respect real measurement conventions. The principle that the granularity of reported numbers must be consistent with how they were produced underlies the GRIM family of tests, and the forensic study of terminal digits reads the fine structure of measured numbers as evidence of origin. Precision mismatch is a deterministic, hard-edged version of the same idea: it checks a value against the fixed precision its source must yield.
Score thresholds
- 0
- Reported precision matches the instruments for the recognised variables.
- 1-2
- A minority of recognised variables have a precision the instrument would not produce.
- 3-5
- Most recognised variables are reported at the wrong precision, a strong fabrication signal.
Limitations
Can only assess variables in its instrument-precision dictionary whose column name it matches after normalisation, so an unrecognised variable, unusual alias, or non-English header is skipped. It uses the mode of decimal counts, so a mixed-precision column, or one dominated by trailing-zero values the counter normalises away, can be mischaracterised. Reported data is sometimes legitimately rounded or rescaled after measurement (unit conversion, summarising), which changes precision without indicating fabrication, so the too-few-decimals rule is restricted to instrument sources. Floating-point storage can carry artefactual digits, which the fixed-point conversion mitigates. The mismatch-rate thresholds are directional. Reported-statistic granularity tests are S3 and S4, and terminal-digit checks are S8 and D34.
References
- Taloni A, Scorcia V, Giannaccare G. (2023). Large Language Model Advanced Data Analysis Abuse to Create a Fake Data Set in Medical Research. JAMA Ophthalmology 141(12):1174-1175
- Brown NJL, Heathers JAJ. (2017). The GRIM Test: A Simple Technique Detects Numerous Anomalies in the Reporting of Results in Psychology. Social Psychological and Personality Science 8(4):363-369
- Mosimann JE, Dahlberg JE, Davidian NM, Krueger JW. (2002). Terminal digits and the examination of questioned data. Accountability in Research 9(2):75-92
- Carlisle JB. (2017). Data fabrication and other reasons for non-random sampling in 5087 randomised, controlled trials in anaesthetic and general medical journals. Anaesthesia 72(8):944-952
- Crone G, Green CD. (2025). Tools of the data detective: A review of statistical methods to detect data and result anomalies in psychology. Theory & Psychology 35(3):359-380
- Carlisle JB. (2021). False individual patient data and zombie randomised controlled trials submitted to Anaesthesia. Anaesthesia 76(4):472-479
- Bordewijk EM, Li W, van Eekelen R, Wang R, Showell M, Mol BW, van Wely M. (2021). Methods to assess research misconduct in health-related research: A scoping review. Journal of Clinical Epidemiology 136:189-202
- Wilkinson J, Heal C, Antoniou GA, et al.. (2024). A survey of experts to identify methods to detect problematic studies: stage 1 of the INveStigating ProblEmatic Clinical Trials in Systematic Reviews project. Journal of Clinical Epidemiology 175:111512