Nowcast-It: A Practical Toolbox for Real-Time Adjustment of Reporting Delays in Epidemic Surveillance
Bibliographic record
Abstract
One difficulty that arises in tracking and forecasting real-time epidemics is reporting delays, which are defined as the inherent delay between the time of symptom onset and the time a case is reported. Reporting delays can be caused by delays in case detection, symptom onset after infection, seeking medical care, or diagnostics, and they distort the accurate forecasting of diseases during epidemics and pandemics. To address this, we introduce a practical nowcasting approach grounded in survival analysis and actuarial science, explicitly allowing for non-stationarity in reporting delay patterns to better capture real-world variability. Despite its relevance, no flexible and accessible toolbox currently exists for non-stationary delay adjustment. Here, we present Nowcast-It, a tutorial-based toolbox that includes two components: (1) an R code base for delay adjustment and (2) a user-friendly R-Shiny application to enable interactive visualization and reporting delay correction without prior coding expertise. The toolbox supports daily, weekly, or monthly resolution data and enables model performance assessment using metrics such as mean absolute error, mean squared error, and 95% prediction interval coverage. We demonstrate the utility of Nowcast-It toolbox using publicly available weekly Ebola case data from the Democratic Republic of Congo. We and others have adjusted for reporting delays in real-time analyses (e.g., Singapore) and produced early COVID-19 forecasts; here, we package those delay adjustment routines into an accessible toolbox. It is designed for researchers, students, and policymakers alike, offering a scalable and accessible solution for addressing reporting delays during outbreaks.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.005 | 0.036 |
| Meta-epidemiology (narrow) | 0.002 | 0.002 |
| Meta-epidemiology (broad) | 0.001 | 0.002 |
| Bibliometrics | 0.002 | 0.001 |
| Science and technology studies | 0.000 | 0.001 |
| Scholarly communication | 0.002 | 0.002 |
| Open science | 0.003 | 0.003 |
| Research integrity | 0.002 | 0.003 |
| Insufficient payload (model declined to judge) | 0.061 | 0.029 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".