Studies¶
One piece of work that produced insight: a mini report.
Reading the stamps¶
Fit drift and corrections from the record time stamps themselves, against the number of samples each record holds. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| When each device's clock is corrected, in every recording | 2026-10-19 | draft | From the steps between records in all 6,388 recordings: the BIS is corrected every 8,192 s and the Primus every 7,230 s, on their own timers (the first correction comes at any time after the device starts); the SNUADC is reset when 0.49 s of drift has built up. With the full rerun of the correction fit, it gives each device's drift against the recorder PC in 4,728 BIS and 2,728 SNUADC recordings, and shows that the Primus's 20–23 s AWP pauses belong to its correction cycle. Every rate here is relative to the recorder PC, whose own clock drifts and is corrected. |
| Identifying the recording setup of every case | 2026-10-18 | open | Recognising which equipment made each recording, from its serial ports and, where those fall short, from clock fingerprints, so that per-setup values can be used for every case. |
| How often each device is corrected | 2026-10-17 | current | The devices re-synchronise in different ways: SNUADC when its drift reaches about half a second, BIS on a fixed 8,192 s timer, and the Primus by small steps about every two hours that do not keep up with its drift (+104 ppm, measured later by breath matching). |
| Recorder PC clock steps and recording pauses | 2026-10-17 | current | A step of the recorder PC clock would move every device's stamps at once. Searching all 6,388 files for such simultaneous jumps found none of 0.5 s or more; what moves everything together is recording pauses. |
| Records out of order at SNUADC resets, and where the lost time goes | 2026-10-17 | current | At every SNUADC reset the five records after it are written out of order: two continue the old timing and three start the new. Put back in order, the waveform runs on with no samples missing; the 18–20 ms lost at each reset goes missing inside the last old-timing record, and an extra zero sample follows. |
| SNUADC stamp arithmetic | 2026-10-17 | current | Between corrections the SNUADC block stamps run −0.95 ppm against the sample count: each 0.2 s increment is about 0.19 µs short. This, not clock drift, is the "about −1 ppm" seen in frequent-correction mode. |
| The vitaldb package's loading conventions | 2026-10-17 | current | The vitaldb Python package sets time zero from the tracks loaded, places waveform blocks by rounding their stamps up to a sample, and lets overlapping blocks overwrite each other. Each choice moves or loses samples. |
| Time zeros and loaded subsets | 2026-10-16 | current | A VitalDB time "from the start" depends on which tracks were loaded: loading a subset moves the zero to that subset's first record, seconds or hours later. The arrhythmia database's annotations count from the full file's zero. |
| The stamp sawtooth model for SNUADC and BIS | 2026-10-12 | current | Fitting each track's record stamps against its sample count as a drift with corrections (a sawtooth) puts SNUADC and BIS on one timeline without any artefact. Checked against shared bursts, the EEG–ECG timing error falls from about 790 ms on the recorded stamps to 33 ms with one constant per SNUADC mode in the pilot, and 42 ms over the whole release. |
| Clock corrections in every file | 2026-10-11 | current | A scan of all 6,388 files for the jumps where the recorder re-synchronises a device's stamps. Each device type has its own correction signature; only SNUADC and BIS correct clearly enough to measure their drift. |
| Physical units, shared drift and time order | 2026-10-11 | current | Device drift rates cluster into units: about 8 SNUADC boards and 8–18 BIS monitors. Part of the drift is shared by both devices of a case and changes between cases: the recorder PC's own rate. Case order carries no time information. |
One event, two clocks¶
Find an event that two independently clocked signals both record, and read the offset between their clocks from where each puts it. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| The heartbeat in the Primus airway signals | 2026-10-19 | current | A pilot in 30 recordings for a heartbeat-locked route from the Primus to the SNUADC. Airway pressure shows the heartbeat in 9% of windows only. CO₂ shows a heartbeat-locked trace in 60% of windows, tight to 20 ms, but its lag does not follow the Primus drift, so it cannot time the Primus. Closed as a clock route. |
| The Primus stamp step at each airway-pressure pause | 2026-10-19 | current | Measured directly at 2,491 pauses in 1,021 recordings: where CO₂ carries on through the AWP pause (74%), the Primus stamps barely step (median −1 ms, p10–p90 −164 to +187 ms, close to the no-pause controls); where CO₂ stops too (26%), they step by up to seconds. No step undoes the drift built up since the last pause. |
| The SNUADC clock through the Solar8000 numerics, whole release | 2026-10-19 | current | On the SNUADC's own sample count, the delay from the waveform to the PC-stamped Solar8000 heart rate and mean arterial pressure ramps at the SNUADC's drift against the PC, measured without its stamps or resets. In recordings with whole reset intervals it agrees with them (−63 ppm; median difference +1.5 ppm, 581 recordings). It is too noisy per recording, and in recordings under about 4 h its rate is biased toward zero, so it cannot yet speak for recordings without resets. |
| SNUADC against the PC-stamped heart rate | 2026-10-17 | current | The Solar8000 heart rate is stamped by the recorder on arrival, so the delay from the ECG to it, on the ECG's raw sample count, ramps at the SNUADC clock's rate: −65.3 ppm, against −66.7 ppm from the stamp model. Two independent routes agree. |
| Drug effects as a clock check | 2026-10-13 | current | Infusion pumps, the rapid infuser and the cerebral oximeter share no waveform with the reference. Drug effects that follow infusions at plausible delays (propofol to BIS in about 2 minutes, fluid to CVP in about 30 s) bound their clocks to well within a minute of the recorder. |
| Closing loops in the timing graph | 2026-10-13 | current | Where two independent routes reach the same clock, the offsets around the loop must sum to zero. Three measured loops close within their noise; the BIS loop closes up to a constant latency; the proposed EMR loop is not a loop at all. |
| Rare devices against SNUADC | 2026-10-13 | current | CardioQ, EV1000, Vigileo and Vigilance each get a link to the SNUADC timeline: beat matching for the CardioQ, mean arterial pressure alignment for the EV1000 and Vigileo, and a long-window fit for Vigilance's averaged heart rate. |
| The cardiac artefact in the BIS EEG | 2026-10-12 | current | The BIS EEG carries a weak electrical trace of every heartbeat. Too weak for beat-by-beat matching, it shows clearly when averaged on the ECG's R peaks, and gives a second SNUADC–BIS timing reference that agrees with the bursts to about 16 ms. |
| Shared bursts between the ECG and the EEG | 2026-10-12 | current | Electrocautery and muscle bursts appear in both the SNUADC ECG and the BIS EEG. Cross-correlating their envelopes gives the offset between the two devices' stamps every 10 minutes: about −0.8 s, in a sawtooth that follows both clocks' corrections. |
| The stamp sawtooth model for SNUADC and BIS | 2026-10-12 | current | Fitting each track's record stamps against its sample count as a drift with corrections (a sawtooth) puts SNUADC and BIS on one timeline without any artefact. Checked against shared bursts, the EEG–ECG timing error falls from about 790 ms on the recorded stamps to 33 ms with one constant per SNUADC mode in the pilot, and 42 ms over the whole release. |
| The Primus ventilator against SNUADC, by breaths | 2026-10-12 | open | Each breath shows in the Primus airway pressure and, through the chest, in SNUADC's central venous pressure. Tracking that lag puts the Primus on the SNUADC timeline to about 55 ms over the whole release, with a line per stretch between its AWP pauses (49 ms in the pilot). At scale it measures the Primus drifting a median +104 ppm against the recorder PC between its AWP pauses, with steps at the pauses that do not reset it. |
| Arterial pressure as a check on the PPG correction | 2026-10-11 | current | Arterial pressure is sampled by the same converter but has no frame and no sawtooth, so every PPG slip leaves ECG→ABP unchanged. Against it, detected slips are 97–100% real and tier A leaves about 2 ms of drift mid-tooth. |
Clocks carried in the signal¶
Use a regular rhythm inside the recorded signal (a pacemaker, a monitor's frame clock, an output or mains line) as a third clock, independent of the clocks being tested. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| One device delay for the PLETH across the release | 2026-10-18 | current | The stored ECG-to-PLETH delay was measured in 5,536 recordings, to the foot and to the steepest upstroke of each pulse. It has one peak (655 ms to the foot, 715 ms to the upstroke, in the median recording), no clusters by recording setup or SNUADC port, and no shift along the case order: one global device delay, 385 ms with an adopted R-to-foot finger PAT of 270 ms, fits the whole release, as Ruffolo et al. found in their own data. |
| Identifying the recording setup of every case | 2026-10-18 | open | Recognising which equipment made each recording, from its serial ports and, where those fall short, from clock fingerprints, so that per-setup values can be used for every case. |
| Monitor clocks in the waveforms' spectral lines | 2026-10-17 | open | Differences of the raw converter counts show lines from the monitor's analogue outputs: 240 Hz in arterial pressure and plethysmogram, and a 30 Hz family in the plethysmogram alone. Each measures a monitor clock against SNUADC. |
| Paced ECG as an independent clock | 2026-10-17 | current | Fixed-rate pacing gives a clock the recording chain cannot touch. Timing paced beats on three timelines shows that each SNUADC step-mode correction loses about 18 ms of signal, and that nothing else breaks the sample stream. |
| The SNUADC firmware | 2026-10-13 | current | The public SNUADC firmware explains the board's timing: it sends no time stamps, samples on its 16 MHz crystal, loses time rather than bunching samples after a stall, reads its channels one after another, and truncates its values. A predicted fault at the microsecond counter's wrap was not found in the data. |
| Arterial pressure as a check on the PPG correction | 2026-10-11 | current | Arterial pressure is sampled by the same converter but has no frame and no sawtooth, so every PPG slip leaves ECG→ABP unchanged. Against it, detected slips are 97–100% real and tier A leaves about 2 ms of drift mid-tooth. |
| Where the PPG sawtooth stops | 2026-10-11 | current | In some stretches no slip comes although several were due. The PPG delay there is flat, not hidden: the monitor keeps framing, and only the content's drift against the frames has stopped. |
| The PPG's 30 Hz frame clock | 2026-10-10 | current | ECG and PPG fiducials resolve to one 2 ms sample, but PPG fiducials taken on raw samples lock to a hidden 33.3 ms frame grid. Scanning for it finds the oximeter's frame clock to about 1 ppm, a fixed fingerprint of each recording setup. |
| The PPG sawtooth and its correction | 2026-10-10 | current | The ECG→PPG delay creeps at 18–52 ppm and jumps up by one 33.3 ms frame at each slip, every 11–31 minutes. A tooth-by-tooth model removes it; where the correction is confident it is essentially exact on injected test data. |
Does the waveform run on?¶
Test whether a waveform continues smoothly across a boundary (a record junction, a reset, a gap) to tell lost samples from lost time, and to find samples written out of order. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| What each break in the stamps is | 2026-10-19 | draft | Every step between waveform records in the release, sorted by mechanism: written twice, a SNUADC clock reset, interleaved streams, a pause shared by every device, whole messages, less than a message, or a fraction of a message beyond whole ones. A continuity test with controls shows which classes lose data: shared pauses and most longer SNUADC gaps do; steps under one message, and SNUADC's lone one-message steps, mostly do not. |
| Records out of order at SNUADC resets, and where the lost time goes | 2026-10-17 | current | At every SNUADC reset the five records after it are written out of order: two continue the old timing and three start the new. Put back in order, the waveform runs on with no samples missing; the 18–20 ms lost at each reset goes missing inside the last old-timing record, and an extra zero sample follows. |
| Arterial line accesses in the pressure waveform | 2026-10-11 | current | Flushes, zeroing and blood draws leave clear signatures in the arterial pressure. A detector finds them in the waveform alone (about one access per hour) and matches 77% of lab draws to an access within 15 minutes, against 26% for random times. |
| Clock corrections in every file | 2026-10-11 | current | A scan of all 6,388 files for the jumps where the recorder re-synchronises a device's stamps. Each device type has its own correction signature; only SNUADC and BIS correct clearly enough to measure their drift. |
Data continuity¶
How completely each signal was recorded: where its gaps are, how long its unbroken stretches run, how it was packaged into messages, and whether a break in the stamps lost data or only moved the clock. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| Gaps and unbroken segments in every waveform | 2026-10-19 | draft | Every gap and every unbroken segment in the 6,388 recordings, per waveform. The curves are not smooth: a cliff at about 18 s in every device marks the recorder's pauses, SNUADC segments stop at 5 hours, Primus segments at about 2.0 hours and BIS segments at about 2.3 hours (each device's correction cycle), and BIS's short gaps grow with the time since the last one (clock resynchronisations, not lost data). |
| When each device's clock is corrected, in every recording | 2026-10-19 | draft | From the steps between records in all 6,388 recordings: the BIS is corrected every 8,192 s and the Primus every 7,230 s, on their own timers (the first correction comes at any time after the device starts); the SNUADC is reset when 0.49 s of drift has built up. With the full rerun of the correction fit, it gives each device's drift against the recorder PC in 4,728 BIS and 2,728 SNUADC recordings, and shows that the Primus's 20–23 s AWP pauses belong to its correction cycle. Every rate here is relative to the recorder PC, whose own clock drifts and is corrected. |
| Message sizes and the steps between records | 2026-10-19 | draft | Every record in every waveform: SNUADC writes messages of 100 samples (0.2 s), Primus 30 (0.48 s), BIS 16 (0.125 s), CardioQ no fixed size. Backward steps outnumber gaps by about a hundred to one and come from a few recordings with duplicated or interleaved records. Primus gaps are whole lost messages; most SNUADC and BIS gaps are not. |
| What each break in the stamps is | 2026-10-19 | draft | Every step between waveform records in the release, sorted by mechanism: written twice, a SNUADC clock reset, interleaved streams, a pause shared by every device, whole messages, less than a message, or a fraction of a message beyond whole ones. A continuity test with controls shows which classes lose data: shared pauses and most longer SNUADC gaps do; steps under one message, and SNUADC's lone one-message steps, mostly do not. |
Delays and averaging windows¶
Work out how long after the event a value is stamped, and what span of signal it summarises, by recomputing monitor numbers from the waveforms they come from. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| The SNUADC clock through the Solar8000 numerics, whole release | 2026-10-19 | current | On the SNUADC's own sample count, the delay from the waveform to the PC-stamped Solar8000 heart rate and mean arterial pressure ramps at the SNUADC's drift against the PC, measured without its stamps or resets. In recordings with whole reset intervals it agrees with them (−63 ppm; median difference +1.5 ppm, 581 recordings). It is too noisy per recording, and in recordings under about 4 h its rate is biased toward zero, so it cannot yet speak for recordings without resets. |
| One device delay for the PLETH across the release | 2026-10-18 | current | The stored ECG-to-PLETH delay was measured in 5,536 recordings, to the foot and to the steepest upstroke of each pulse. It has one peak (655 ms to the foot, 715 ms to the upstroke, in the median recording), no clusters by recording setup or SNUADC port, and no shift along the case order: one global device delay, 385 ms with an adopted R-to-foot finger PAT of 270 ms, fits the whole release, as Ruffolo et al. found in their own data. |
| How the BIS index trails its EEG | 2026-10-13 | current | Modelling the BIS index as a lagged mix of EEG features shows a trailing average starting about 3 s after its EEG window ends: about 16 s long in half the cases (the 15 s smoothing setting) and 32–61 s in most others. Half the response weight is older than 30 s. |
| Two heart-rate delay groups, one poll apart | 2026-10-13 | current | Solar8000 heart rate reaches the recorder either about 1.9 s or about 4.2 s after its window ends: one 2 s poll apart. The group belongs to the recording PC, stays fixed through a case, and on some PCs varies from case to case. |
| What a BIS-mimic project says about the index's smoothing | 2026-10-13 | current | The openeeg project reproduces the BIS index from the raw EEG and infers each case's smoothing setting: about 80% of its cases come out at 15 s. Its alignment cannot serve as a timing reference. |
| Rare devices against SNUADC | 2026-10-13 | current | CardioQ, EV1000, Vigileo and Vigilance each get a link to the SNUADC timeline: beat matching for the CardioQ, mean arterial pressure alignment for the EV1000 and Vigileo, and a long-window fit for Vigilance's averaged heart rate. |
| Numeric delays are fixed within a case, different between cases | 2026-10-12 | current | With each numeric's algorithm held fixed, delays were fitted for every case and every 30-minute block. They do not drift within a case, but 40–70% of their variance lies between cases, so a single population delay is wrong by up to 2 s for HR and 1 s for the others. Each case gets its own delay label. |
| How the monitors compute their numbers | 2026-10-12 | current | Recomputing each monitor numeric from its own waveform finds a short, simple algorithm for every one (a median, an exponential average or a time mean over 3–30 s) and a delay of 2–9 s behind the newest data it uses. No value is stamped before its data exist. |
| The PPG hardware delay and the adopted pulse arrival time | 2026-10-12 | current | VitalDB's raw ECG→PPG pulse arrival time is about 0.4 s longer than physiology. Splitting it into a hardware delay (one value for the release; One device delay for the PLETH across the release) and a physiological part needs an adopted value from studies that sampled ECG and PPG on one clock: about 270 ms for anaesthetised adults. |
| SpO₂ and pulse rate latency from step events | 2026-10-12 | current | SpO₂ cannot be recomputed from one plethysmogram, so its timing comes from events that change the PLETH abruptly. SpO₂ lags the recorded PLETH by about 4 s and then smooths over roughly 10–20 s. |
Clinical and laboratory times¶
Find out what a time in the clinical and lab tables marks (an event, its documentation, a rounding), using signatures the event leaves in the signals. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| How the anesthesia end time was charted | 2026-10-18 | current | The charted anesthesia end time is a mixture of 4 ways of writing a clock time (ceiling_30min, ceiling_10min, ceiling_5min, clock_minute), modelled as an offset from a device time. |
| How the anesthesia start time was charted | 2026-10-18 | current | The charted anesthesia start time is a mixture of 5 ways of writing a clock time (nominal_0740, nominal_0730, nearest_10min, nearest_5min, clock_minute), modelled as an offset from a device time. |
| How the operation end time was charted | 2026-10-18 | current | The charted operation end time is a mixture of 4 ways of writing a clock time (floor_30min, floor_10min, floor_5min, clock_minute), modelled as an offset from a device time. |
| How the operation start time was charted | 2026-10-18 | current | The charted operation start time is a mixture of 3 ways of writing a clock time (nearest_10min, nearest_5min, clock_minute), modelled as an offset from a device time. |
| Admission, discharge and length of stay | 2026-10-13 | current | Admission and discharge are dates at 1-day resolution, so length of stay is a derived triangular distribution, and discharge days show a weekly pattern rather than rounding. |
| What the lab timestamp marks | 2026-10-13 | current | VitalDB's lab time is a per-specimen timestamp: not the draw, and not the result. Blood gases are stamped 3–12 minutes after the draw, central-lab panels about 8–24 minutes after it, and the result follows a turnaround the release does not record. |
| Charted-time clock reconstruction | 2026-10-13 | current | The absolute clock time of every event can be recovered from the admission date, which makes minute-of-hour distributions possible despite de-identification. |
| Bias in charted intervals | 2026-10-13 | current | Charted intervals are biased because each end is rounded with a different anchor, and their per-case uncertainty is large relative to short intervals. |
| Imputed times, conformance failures and exclusion rules | 2026-10-13 | current | About one in twelve op ends was set from the recording rather than charted, and a small set of times fail basic conformance checks; all are encoded as exclusion rules. |
| What lab timestamps mark | 2026-10-13 | superseded | Merged into "What the lab timestamp marks" on 18 October 2026; kept so old links still work. The original finding: central-lab timestamps most likely mark specimen receipt in the lab, about 10 minutes after the draw. |
| Recovering the time of day | 2026-10-12 | current | The release shifts every case to start at 2100-01-01 00:00 UTC, removing the date and the time of day. The time of day (Korean local time) can be recovered to the minute from the admission date and the seconds of the EMR times. |
| Anaesthesia record times are rounded up | 2026-10-12 | current | Anaesthesia start and end entered on a 5-minute mark sit 90–290 s later, against device markers, than entries typed to the minute. Rounding up to the next 5 minutes fits every one of 11 markers better than rounding to the nearest or down. |
| Arterial line accesses in the pressure waveform | 2026-10-11 | current | Flushes, zeroing and blood draws leave clear signatures in the arterial pressure. A detector finds them in the waveform alone (about one access per hour) and matches 77% of lab draws to an access within 15 minutes, against 26% for random times. |
Reading the source¶
Read firmware, manuals and loader code to explain a timing behaviour seen in the data, or to predict one to test. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| The vitaldb package's loading conventions | 2026-10-17 | current | The vitaldb Python package sets time zero from the tracks loaded, places waveform blocks by rounding their stamps up to a sample, and lets overlapping blocks overwrite each other. Each choice moves or loses samples. |
| Time zeros and loaded subsets | 2026-10-16 | current | A VitalDB time "from the start" depends on which tracks were loaded: loading a subset moves the zero to that subset's first record, seconds or hours later. The arrhythmia database's annotations count from the full file's zero. |
| What a BIS-mimic project says about the index's smoothing | 2026-10-13 | current | The openeeg project reproduces the BIS index from the raw EEG and infers each case's smoothing setting: about 80% of its cases come out at 15 s. Its alignment cannot serve as a timing reference. |
| The SNUADC firmware | 2026-10-13 | current | The public SNUADC firmware explains the board's timing: it sends no time stamps, samples on its 16 MHz crystal, loses time rather than bunching samples after a stall, reads its channels one after another, and truncates its values. A predicted fault at the microsecond counter's wrap was not found in the data. |
| The PPG hardware delay and the adopted pulse arrival time | 2026-10-12 | current | VitalDB's raw ECG→PPG pulse arrival time is about 0.4 s longer than physiology. Splitting it into a hardware delay (one value for the release; One device delay for the PLETH across the release) and a physiological part needs an adopted value from studies that sampled ECG and PPG on one clock: about 270 ms for anaesthetised adults. |
Rounding, heaping and value resolution¶
How far a recorded number is from the true one because of how it was written down: the resolution it was recorded at, and the coarser values people round to. About this method
| Study | Date | Status | Summary |
|---|---|---|---|
| Value resolution of every signal | 2026-10-19 | draft | How finely every waveform and numeric track in the release records its values. The SNUADC waveforms are 10-bit codes, though VitalRecorder's documentation describes the SNUADC as 12-bit; Primus waveforms use about 10 bits of 12; BIS EEG is a 16-bit grid of 0.05 µV. Numerics are 32-bit floats on decimal grids of 1, 0.1, 0.01 or 0.001, one per track; settings sit on coarser grids of 10 or 100. |
| How the anesthesia end time was charted | 2026-10-18 | current | The charted anesthesia end time is a mixture of 4 ways of writing a clock time (ceiling_30min, ceiling_10min, ceiling_5min, clock_minute), modelled as an offset from a device time. |
| How the anesthesia start time was charted | 2026-10-18 | current | The charted anesthesia start time is a mixture of 5 ways of writing a clock time (nominal_0740, nominal_0730, nearest_10min, nearest_5min, clock_minute), modelled as an offset from a device time. |
| Body mass index, derived from its inputs | 2026-10-18 | current | Body mass index computed from the posteriors of height, weight. |
| Rounding and heaping of intraoperative crystalloid | 2026-10-18 | current | Recorded intraoperative crystalloid is a mixture of 3 rounding modes (100 mL, 50 mL, 10 mL (base)); the model gives the true value's distribution for each record. |
| Rounding and heaping of estimated blood loss | 2026-10-18 | current | Recorded estimated blood loss is a mixture of 5 rounding modes (preferred small values, 500 mL, 100 mL, 50 mL, 10 mL (base)); the model gives the true value's distribution for each record. |
| Rounding and heaping of intraoperative urine output | 2026-10-18 | current | Recorded intraoperative urine output is a mixture of 4 rounding modes (100 mL, 50 mL, 10 mL, 5 mL (base)); the model gives the true value's distribution for each record. |
| How the operation end time was charted | 2026-10-18 | current | The charted operation end time is a mixture of 4 ways of writing a clock time (floor_30min, floor_10min, floor_5min, clock_minute), modelled as an offset from a device time. |
| How the operation start time was charted | 2026-10-18 | current | The charted operation start time is a mixture of 3 ways of writing a clock time (nearest_10min, nearest_5min, clock_minute), modelled as an offset from a device time. |
| Instrument accuracy and calibration | 2026-10-18 | open | The atlas describes how each value was recorded, but not yet how accurate the instrument behind it was. That needs the calibration and quality-control records of every device, which are not in the release. |
| Rounding and heaping of height | 2026-10-13 | current | Recorded height is a mixture of 5 rounding modes (tens, whole_cm, half_cm, round_up_from_x9, measured_0.1); the model gives the true value's distribution for each record. |
| Rounding and heaping of propofol bolus | 2026-10-13 | current | Recorded propofol bolus is a mixture of 3 rounding modes (preferred values, 50 mg, 10 mg (base)); the model gives the true value's distribution for each record. |
| Rounding and heaping of weight | 2026-10-13 | current | Recorded weight is a mixture of 3 rounding modes (whole_kg, scale_0.1, scale_0.05); the model gives the true value's distribution for each record. |
| Admission, discharge and length of stay | 2026-10-13 | current | Admission and discharge are dates at 1-day resolution, so length of stay is a derived triangular distribution, and discharge days show a weekly pattern rather than rounding. |
| Package validation and Monte Carlo cache | 2026-10-13 | current | The vitaldb_resolution package returns a status for every value in the dataset, reproduces each fitted likelihood, and can precompute every posterior for fast Monte Carlo draws. |
| Heaping screen of all variables | 2026-10-13 | current | Every hand-entered clinical value and every lab analyte was screened for mixed resolution and heaping, to decide which need a rounding model and which need only a registry entry. |
| Computed lab values on reachable grids | 2026-10-13 | current | PT %, INR and fibrinogen are computed from a finer measurement, so some integers are unreachable and a heaping screen misreads the comb as heaping. |
| Haematocrit from two analysers | 2026-10-13 | current | Apparent heaping in haematocrit is two analysers with different resolutions, identifiable record by record from the co-timestamped panel. |
| Pre-operative PaO₂ decimal rule | 2026-10-13 | current | Pre-operative PaO₂ in the clinical table mixes 0.1 and 1 mmHg records, so its resolution is set per record by whether a decimal is present. |
| What the lab timestamp marks | 2026-10-13 | current | VitalDB's lab time is a per-specimen timestamp: not the draw, and not the result. Blood gases are stamped 3–12 minutes after the draw, central-lab panels about 8–24 minutes after it, and the result follows a turnaround the release does not record. |
| Charted-time clock reconstruction | 2026-10-13 | current | The absolute clock time of every event can be recovered from the admission date, which makes minute-of-hour distributions possible despite de-identification. |
| Bias in charted intervals | 2026-10-13 | current | Charted intervals are biased because each end is rounded with a different anchor, and their per-case uncertainty is large relative to short intervals. |
| Imputed times, conformance failures and exclusion rules | 2026-10-13 | current | About one in twelve op ends was set from the recording rather than charted, and a small set of times fail basic conformance checks; all are encoded as exclusion rules. |
| What lab timestamps mark | 2026-10-13 | superseded | Merged into "What the lab timestamp marks" on 18 October 2026; kept so old links still work. The original finding: central-lab timestamps most likely mark specimen receipt in the lab, about 10 minutes after the draw. |
| Bolus drugs as unit-dose counts | 2026-10-13 | current | Most bolus drug totals are exact counts of standard doses, not rounded estimates; propofol is the exception, and zeros are ambiguous. |
| Colloid container rules | 2026-10-13 | current | Colloid is a mix of products given in whole containers that depend on the operation, so values are treated as container counts rather than rounded volumes. |
| Blood products, age and ICU days | 2026-10-13 | current | Red-cell and plasma units, age and ICU days are not heaped and get registry entries with a few flags rather than rounding models. |