How the operation start time was charted¶
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.
| Date | 2026-10-18 |
| Status | current |
| Methods | Rounding, heaping and value resolution, Clinical and laboratory times |
| Variables | Operation start time |
Background¶
- Op start is a charted event time with a 1-minute chronon.
- Op start, op end and anaesthesia end share a 5-minute grid. Op start falls on a 5-minute clock mark in 92% of cases.
Data¶
- 6,387 op starts.
- One op start does not share the sub-minute offset of the other charted times in its case and is flagged
clock_offset_mismatch.
Method¶
- The same approach as the anaesthesia times: the true op start is placed a log-spline offset after the recording start (K = 10).
- First cases get a clock-time prior, as for anaesthesia start.
- Nearest, floor and ceiling anchors were compared. 30- and 60-minute modes and effects of time of day and emergency status were tested.
Results¶
- There is no 30- or 60-minute rounding, and no effect of time of day or emergency status.
- The anchor is nearest (floor is 14 BIC points worse, ceiling 101).
- First-case incisions cluster at 08:20–08:50; the clock-time prior is 1,120 BIC points better.
- Unlike anaesthesia start, there is no scheduled or nominal op start time.
- Op start is well centred: a rounded value is uncertain by ±2.5 min.
- Since vitaldb-resolution v0.6.0 (18 October; model version 2): the log-likelihood gap is explained. The old fitter worked out the time-of-day prior on its own 0.1-minute grid; refitted with the library's likelihood the model gains 33.2 in log-likelihood and the posteriors move by less than 0.03 minutes.
Discussion¶
- Before v0.6.0 the package's log-likelihood differed from the stored one by −10.6. The cause was the fitter integrating the first-case clock prior on its own 0.1-min grid; model version 2 is fitted with the library's likelihood.
Model¶
Model file: …/models/opstart.model.json. Read from the pinned snapshot of vitaldb-resolution at commit bb03ddfc8a (2026-10-18).
How a true value becomes the recorded one. The rules are tried in order: a record not taken by an earlier rule is taken by this one with the probability shown (where its condition holds); the last rule takes the rest. With no conditions, the shares follow directly.
| Order | Rule | Rounds to | Probability if reached | Share of records |
|---|---|---|---|---|
| 1 | nearest_10min | 10 clock minute (nearest) | 5.6 % | 5.6 % |
| 2 | nearest_5min | 5 clock minute (nearest) | 89.6 % | 84.6 % |
| 3 | clock_minute | 1 clock minute (floor) | the rest | 9.8 % |
| Recorded resolution | 1 min (chronon) (modelled at 1) |
| True-value density | reference_offset_spline |
| Covariates | ref |
| Fitted on | 6,387 records (clinical_data.csv) |
| BIC | 36,239 |
| Fitted | 2026-10-18 |
Code¶
Tags: generated, vitaldb-resolution