pacman::p_load(tidyverse, lubridate, janitor, DT, pander, plotly, scales)# Loading in datasetfs_data <-read_csv("C:/Users/felix/OneDrive/Documents/Family Search BI Analyst Interview/April_2025_Case_Study_Data.csv") %>%clean_names() %>%mutate(across(contains("_date"), ymd))
Executive Summary
This case study explores how new users interact with FamilySearch’s core features and redefines user segments based on depth and type of engagement. We segmented users into four behavior-based profiles based on what they actually did inside the platform - from browsing to building.
By rethinking our segmentation model, we gain sharper insight into where users thrive, where they stall, and how we might turn intention into lasting contribution.
Engagement Activity Summary Across Key Features (continued below)
total_days_logging_in
total_days_viewing_records
Min. : 0.000
Min. : 0.0000
1st Qu.: 1.000
1st Qu.: 0.0000
Median : 1.000
Median : 0.0000
Mean : 2.594
Mean : 0.7469
3rd Qu.: 2.000
3rd Qu.: 1.0000
Max. :272.000
Max. :254.0000
Table continues below
total_days_adding_names_to_tree
names_added_to_tree
Min. : 0.0000
Min. : 0.000
1st Qu.: 0.0000
1st Qu.: 0.000
Median : 1.0000
Median : 2.000
Mean : 0.7737
Mean : 4.571
3rd Qu.: 1.0000
3rd Qu.: 5.000
Max. :255.0000
Max. :25432.000
Table continues below
total_days_editing_tree
total_days_uploading_memories
memories_uploaded
Min. : 0.0000
Min. : 0.00000
Min. : 0.000
1st Qu.: 0.0000
1st Qu.: 0.00000
1st Qu.: 0.000
Median : 0.0000
Median : 0.00000
Median : 0.000
Mean : 0.7738
Mean : 0.05084
Mean : 0.246
3rd Qu.: 1.0000
3rd Qu.: 0.00000
3rd Qu.: 0.000
Max. :262.0000
Max. :166.00000
Max. :5813.000
Table continues below
total_days_attaching_sources_to_tree
sources_attached_to_tree
Min. : 0.0000
Min. : 0.00
1st Qu.: 0.0000
1st Qu.: 0.00
Median : 0.0000
Median : 0.00
Mean : 0.1961
Mean : 7.47
3rd Qu.: 0.0000
3rd Qu.: 0.00
Max. :255.0000
Max. :235901.00
total_days_using_get_involved
Min. : 0.00000
1st Qu.: 0.00000
Median : 0.00000
Mean : 0.01648
3rd Qu.: 0.00000
Max. :176.00000
The engagement snapshot shows us that while many users explore or browse the platform, only a smaller portion actively contribute - and even fewer become power users. It highlights a clear drop-off between passive interest and active participation, pointing to a big opportunity to turn more browsers into creators. That gap between browsers and creators suggests high interest but low activation - meaning users arrive curious but don’t always know how to contribute.
We categorized users into four behavioral segments to reflect how they engage with FamilySearch. Power Users are highly active, using at least three core features like adding names, editing trees, uploading memories, or attaching sources. Creators contribute by adding names to the tree but use fewer advanced features. Browser Only users explore the site (logins, record views) without making contributions. Dormant users registered but never engaged. These segments help us understand where users drop off, who drives value, and where we can focus efforts to guide behavior and boost retention.
Insight: Most users fall into Dormant or Browser-Only segments. These users log in but don’t contribute - yet. There’s untapped potential in converting these passive users with guided nudges and quick wins. Meanwhile, Power Users are rare but influential - we should amplify their impact.
Segment vs. Age Group
Show the code
age_seg_summary <- fs_data %>%count(age_group, behavior_segment) %>%drop_na() %>%ggplot(aes(x = age_group, y = n, fill = behavior_segment)) +geom_col(position ="stack") +scale_y_continuous(labels = comma) +labs(title ="Behavior Segment Breakdown by Age Group",x ="Age Group", y ="User Count", fill ="Segment" ) +theme_minimal(base_size =13) +theme(axis.text.x =element_text(angle =45, hjust =1))age_seg_summary
Insight: The 18–35 age group is driving most platform activity, including Creator and Power User roles. But Browser-Only users are present across all age groups - especially 50+. These users may benefit from simplified interfaces and value-focused onboarding.
Top Countries by User Count
Show the code
country_counts <- fs_data %>%count(country, sort =TRUE) %>%slice_max(order_by = n, n =10)ggplot(country_counts, aes(x =reorder(country, n), y = n)) +geom_col(fill ="seagreen") +geom_text(aes(label = scales::comma(n)), hjust =-0.1) +coord_flip() +scale_y_continuous(labels = scales::comma) +labs(title ="Top 10 Countries by User Count",x ="Country", y ="User Count") +theme_minimal()
Insight: Brazil and the U.S. are your largest user bases. Tailor re-engagement and onboarding flows in those countries first - they offer the most leverage.
Segment Breakdown by Country
Show the code
top_country_names <- country_counts$countrycountry_seg <- fs_data %>%filter(country %in% top_country_names) %>%count(country, behavior_segment)ggplot(country_seg, aes(x = behavior_segment, y = n, fill = country)) +geom_col(position ="dodge") +scale_y_continuous(labels = comma) +labs(title ="Behavior Segments Across Top Countries",x ="Behavior Segment", y ="User Count") +theme_minimal(base_size =12) +theme(axis.text.x =element_text(angle =20, hjust =1))
Insight: Power Users cluster heavily in Brazil and the U.S. Localization matters here - even small regional adaptations may turn “Creators” into “Champions.”
Recommendations
1. Activate Dormants with Personalized Nudges
Prompt dormant users 3–5 days post sign-up with quick-start actions.
Use messaging like: “Just 1 name can start your family story.”
2. Guide Browsers to First Contribution
Trigger a soft CTA: “Click here to validate a fact.”
Offer mobile-first suggestions or 1-click tips.
3. Celebrate Supportive Contributors
Highlight users who uploaded photos or linked sources.
Reward their effort - even if they didn’t build trees.
4. Spotlight Power Users
Offer badges, contributor stats, or “monthly spotlight.”
Invite them to beta test new features.
5. Age-Sensitive Design
18–35: Quick, mobile-first, gamified tasks.
50+: Clear, accessible walkthroughs with legacy framing.