The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

nowcastr

Lifecycle: experimental License: MIT R version

R package for nowcasting with non-cumulative chain-ladder method.

Installation

## install from GitHub
pak::pak("whocov/nowcastr") # recommended, more up to date versions

## install from CRAN
install.packages("nowcastr")

Quick Start

library(nowcastr)

## Get your data
nc_data <- nowcast_demo

## Plot input data
nc_data %>%
  plot_nc_input(
    option = "triangle", # or "millipede"
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group"
  )

## Run nowcast with built-in demo data
nc_obj <- nc_data %>% 
  nowcast_cl(
    max_delay = 5, # optional
    max_reportunits = 8, # optional
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group",
    time_units = "weeks",
    do_model_fitting = TRUE
  )

## Plot nowcasted time series
plot(nc_obj, which = "results")
print(nc_obj@results) # inspect data frame

## Plot delay distribution
plot(nc_obj, which = "delays")
print(nc_obj@delays) # inspect data frame

More detailed examples are available in the Getting started vignette.

Data Requirements

Dataset with at least 2 date columns and a value column. The dataset can also have multiple group-by columns for batch processing.

Note that the delays (difference between the 2 dates) should have constant intervals, i.e., multiples of 1 day or 7 days.

dplyr::glimpse(nowcast_demo, 70)

# Rows: 1,624
# Columns: 4
# $ value           <dbl> 251563, 219818, 219815, 253451, 253454, 3116…
# $ date_occurrence <date> 2024-12-16, 2024-12-23, 2024-12-23, 2024-12…
# $ date_report     <date> 2025-05-26, 2025-05-26, 2025-06-02, 2025-05…
# $ group           <chr> "Syndromic ARI", "Syndromic ARI", "Syndromic…

Output Object

nowcast_cl() returns an S7 object of class nowcast_results with the following slots (access with @):

Slot Type Description
@name character Timestamp identifier for the run
@params list Parameters used for nowcasting (unevaluated call)
@time_start POSIXct Sys time when function started
@time_end POSIXct Sys time when function ended
@n_groups numeric Number of groups processed
@max_delay numeric Maximum delay used
@data data.frame Original input data (required columns only)
@completeness data.frame Input data with delays and completeness columns
@delays data.frame Aggregated completeness per delay (+ modelled column if fitted)
@models data.frame Fitted models (empty if do_model_fitting = FALSE)
@results data.frame Final nowcasting predictions

Methods Summary

  1. Input Data: Ensure three core columns: observed_value / date_of_reporting / date_of_occurrence (e.g. date_of_event / date_of_onset) data has 3 cols
  2. Calculate the reporting_delay (= date_of_reporting - date_of_occurrence) calculate reporting delay
  3. Compute the completeness (= observed_value / true_value (approximated by last_reported_value)) calculate completeness
  4. Aggregate the avg_completeness for each reporting_delay aggregate average completeness
  5. Optional: Fit a curve through that fit model curve
  6. Apply Nowcast: nowcast = observed_value / avg_completeness apply nowcast factor

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.