
Calculate reporting metrics based on facility date ranges
Source:R/reporting_rate.R
calculate_reporting_metrics_dates.RdCalculates reporting rates by determining if facilities were active during each record period based on opening and closing dates. Facilities are considered active if the record date falls within their operating window.
Usage
calculate_reporting_metrics_dates(
data,
start_col,
end_col,
record_col = "date",
group_cols = "adm2",
ref_date = NULL
)Arguments
- data
Data frame with facility records
- start_col
Character. Name of column with facility opening/start dates
- end_col
Character. Name of column with facility closing/end dates
- record_col
Character. Name of column with record dates (default: "date")
- group_cols
Character vector. Column names to group by when aggregating (default: "adm2"). Can include administrative levels (adm0, adm1, adm2) or custom columns
- ref_date
Date. Optional reference date (currently unused, reserved for future functionality)
Value
Data frame with original columns plus:
- activity_status
Character. "Active" or "Inactive" for each facility-record
- reprate
Numeric. Proportion of active facilities in each group-record combination (0-1 scale)
Details
Activity classification:
Active: record date is between start_col and end_col
Inactive: record date is before start or after end
NA: missing start or end date
The reporting rate is calculated as the proportion of facilities that are active in each group-record combination.
Examples
# Sample facility data with operating dates
facilities <- data.frame(
hf_uid = rep(1:10, each = 12),
date = rep(seq.Date(
as.Date("2024-01-01"),
by = "month",
length.out = 12
), times = 10),
district = rep(c("North", "South"), each = 60),
opening_date = as.Date("2023-01-01"),
closing_date = as.Date("2024-12-31")
)
# Calculate with default grouping (adm2)
facilities$adm2 <- facilities$district
result <- calculate_reporting_metrics_dates(
data = facilities,
start_col = "opening_date",
end_col = "closing_date"
)
# Calculate with multiple grouping levels
facilities$country <- "Example"
result2 <- calculate_reporting_metrics_dates(
data = facilities,
start_col = "opening_date",
end_col = "closing_date",
group_cols = c("country", "district")
)
# Use custom record column
facilities$report_period <- facilities$date
result3 <- calculate_reporting_metrics_dates(
data = facilities,
start_col = "opening_date",
end_col = "closing_date",
record_col = "report_period",
group_cols = "district"
)