prod %>%drop_na(swai3) %>%count(swai3) %>%mutate(pct =prop.table(n),label = scales::percent(pct, accuracy =0.1)) %>%ggplot(aes(x ="", y = pct, fill = swai3)) +geom_bar(stat ="identity", width =1) +coord_polar(theta ="y") +theme_void() +labs(fill ="swai3", title ="Use of AI Meeting Notes Tools") +theme(legend.position ="right") +geom_text(aes(label = label), position =position_stack(vjust =0.5), size =3)
At this point, you’ll probably want to follow up with Figure 4.45 and Figure 4.46 in the study and note that while generic tools are more widely adopted, the most highly rated tool is an industry solution (Jump)
Time Allocation by Use of AI Notes and Clients Per Advisor
Note
Please note that while you asked me to examine both time spent doing meeting preparation AND client service, the results for the latter were consistently inconsistent and super messy. There is no story there. So I’m focusing on meeting preparation where, as you’ll see, we do get a cool story, although it diverges a bit from what we’d expect.
Because in the report we only found that the impact of AI notes was visible when looking at advisors with established client bases, I’m segmenting this by clients x advisor.
When you have 50+ clients per advisor, you do spend less time on meeting preparation, but this is only when using generic tools!
When you have <50 clients per advisor, there is a minuscule lift when using generic tools, but spend MORE time when using industry tools. In practice, this may be because the sample is smaller for the <50 groups.
MY RECOMMENDATION: For your article, I’d just show the right-hand graphic, but you can just briefly note that you restrict your sample to advisors with enough clients to actually have a good about of meeting preparation to be reduced in the first place.
Show the code
prod %>%filter(swai3 !='', swai3 !='Unable to Classify') %>%mutate(clxadv2 =ifelse(clxadv >=50, '50+ Clients Per Advisor', '<50 Clients Per Advisor')) %>%drop_na(swai3, clxadv2) %>%group_by(clxadv2, swai3) %>%summarize(`Meeting Preparation`=mean(hrshrprep, na.rm =TRUE)) %>%mutate(useai =ifelse(swai3 =='No', 'No', 'Yes')) %>%ggplot(aes(x =factor(swai3, levels =c('No', 'Industry', 'Generic')), y =`Meeting Preparation`,fill = useai)) +geom_col(color ='black') +geom_text(aes(label = scales::percent(`Meeting Preparation`, accuracy =0.1)), vjust =-0.5, size =5) +# Add labels above barsfacet_wrap(~clxadv2) +labs(x ='Use of AI Notes', y ='Share of Workweek Preparing for Client Meetings') +scale_y_continuous(labels = scales::percent,limits =c(0, .15)) +theme_minimal()
`summarise()` has grouped output by 'clxadv2'. You can override using the
`.groups` argument.
Time Allocation by Use of AI Notes and Practice Structure (50+ clients/advisor)
While here you asked for “unsupported solos versus all others,” I’m including all four structures here because, as you’ll see, that is where most of the lift is. I’m presenting two versions of this chart.
Breaking out AI notes between industry and generic
Grouping all use of AI notes together
#1 is cool, but we get a funky number for unsupported solos for “industry tools.”
Show the code
prod %>%filter(swai3 !='', clxadv >=50, swai3 !='Unable to Classify' ) %>%drop_na(swai3, pstructure) %>%group_by(pstructure, swai3) %>%summarize(`Meeting Preparation`=mean(hrshrprep, na.rm =TRUE)) %>%mutate(useai =ifelse(swai3 =='No', 'No', 'Yes')) %>%ggplot(aes(x =factor(swai3, levels =c('No', 'Industry', 'Generic')), y =`Meeting Preparation`,fill = useai)) +geom_col(color ='black') +geom_text(aes(label = scales::percent(`Meeting Preparation`, accuracy =0.1)), vjust =-0.5, size =5) +# Add labels above barsfacet_wrap(~clxadv2) +labs(x ='Use of AI Notes', y ='Share of Workweek Preparing for Client Meetings') +scale_y_continuous(labels = scales::percent) +theme_minimal() +facet_wrap(~pstructure)
Show the code
prod %>%filter(swai !='', clxadv >=50) %>%drop_na(swai, pstructure) %>%group_by(pstructure, swai) %>%summarize(`Meeting Preparation`=mean(hrshrprep, na.rm =TRUE)) %>%ggplot(aes(x =factor(swai), y =`Meeting Preparation`,fill = swai)) +geom_col(color ='black') +geom_text(aes(label = scales::percent(`Meeting Preparation`, accuracy =0.1)), vjust =-0.5, size =5) +facet_wrap(~clxadv2) +labs(x ='Use of AI Notes', y ='Share of Workweek Preparing for Client Meetings') +scale_y_continuous(labels = scales::percent) +theme_minimal() +facet_wrap(~pstructure)
Revenue Per Advisor By Use of AI Meeting Notes (50+ Clients/Advisor)
`summarise()` has grouped output by 'pstructure3'. You can override using the
`.groups` argument.
# A tibble: 9 × 3
# Groups: pstructure3 [3]
pstructure3 swai3 `Revenue Per Advisor`
<chr> <fct> <dbl>
1 Silo/Ensemble No 723810.
2 Silo/Ensemble Generic 681121.
3 Silo/Ensemble Industry 875000
4 Supported Solo No 600000
5 Supported Solo Generic 462500
6 Supported Solo Industry 597727.
7 Unsupported Solo No 300000
8 Unsupported Solo Generic 335000
9 Unsupported Solo Industry 225000