# PLACEHOLDER: simulated data. Replace with your CRM export, e.g. read_csv("crm.csv")
set.seed(2026)
n_members <- 120
members <- tibble(member_id = 1:n_members)
nov <- tibble(member_id = sample(members$member_id, 30), gave_nov = TRUE)
gt <- tibble(member_id = sample(members$member_id, 22), gave_gt = TRUE)
rsvp <- tibble(member_id = sample(members$member_id, 18), rsvp = TRUE,
attended = rbinom(18, 1, 0.7) == 1)
cohort <- members |>
left_join(nov, by = "member_id") |>
left_join(gt, by = "member_id") |>
left_join(rsvp, by = "member_id") |>
mutate(across(c(gave_nov, gave_gt, rsvp, attended), ~ replace_na(.x, FALSE)),
repeat_donor = gave_nov | gave_gt)