Here’s the report you asked for.
Data extracted directly from ODK central and cleaned.
form_tables <- ruODK::odata_service_get()
data <- ruODK::odata_submission_get()
data<-
data%>%
select(-c(1,3,4:7,130:131))%>%
pivot_longer(c(2:123),"Questions")%>%
separate(Questions, into = c("Status","State","group_1","group_2","sub_group_1","sub_group_2","sub_group_3",
"sub_group_4","sub_group_5","question"), sep="_")%>%
mutate(question=NA)%>%
mutate(question=ifelse(grepl("[Q*]",sub_group_5, ignore.case = T),sub_group_5,question))%>%
mutate(question=ifelse(grepl("[Q*]",sub_group_4, ignore.case = T),sub_group_4,question))%>%
mutate(question=ifelse(grepl("[Q*]",sub_group_3, ignore.case = T),sub_group_3,question))%>%
mutate(question=ifelse(grepl("[Q*]",sub_group_2, ignore.case = T),sub_group_2,question))%>%
mutate(sub_group_5=ifelse(sub_group_5==question,NA,sub_group_5))%>%
mutate(sub_group_4=ifelse(sub_group_4==question,NA,sub_group_4))%>%
mutate(sub_group_3=ifelse(sub_group_3==question,NA,sub_group_3))%>%
mutate(sub_group_2=ifelse(sub_group_2==question,NA,sub_group_2))%>%
mutate(sub_group=paste(sub_group_1,sub_group_2,sub_group_3,sub_group_4,sub_group_5), group=paste(group_1,group_2))%>%
select(c(1,2,14,13,11,12))
data<-
data%>%
mutate(sub_group=ifelse(grepl("corporate performance", sub_group,fixed=T),"corporate_performance",sub_group))%>%
mutate(sub_group=ifelse(grepl("strategy roadmap", sub_group,fixed=T),"strategy_roadmap",sub_group))%>%
mutate(sub_group=ifelse(grepl("investments", sub_group,fixed=T),"investments",sub_group))%>%
mutate(sub_group=ifelse(grepl("treasury tax management", sub_group,fixed=T),"treasury_tax_management",sub_group))%>%
mutate(sub_group=ifelse(grepl("budgeting planning forecasting", sub_group,fixed=T),"budgeting_planning_forecasting",sub_group))%>%
mutate(sub_group=ifelse(grepl("risk management", sub_group,fixed=T),"risk_management",sub_group))%>%
mutate(sub_group=ifelse(grepl("law regulation compliance", sub_group,fixed=T),"law_regulation_compliance",sub_group))%>%
mutate(sub_group=ifelse(grepl("leadership change cooperation", sub_group,fixed=T),"leadership_change_cooperation",sub_group))%>%
mutate(sub_group=ifelse(grepl("readiness to change", sub_group,fixed=T),"readiness_to_change",sub_group))%>%
mutate(sub_group=ifelse(grepl("organizational culture", sub_group,fixed=T),"organizational_culture",sub_group))%>%
mutate(sub_group=ifelse(grepl("communication structure abilities", sub_group,fixed=T),"comunication_structure_abilities",sub_group))%>%
mutate(sub_group=ifelse(grepl("policies procedures", sub_group,fixed=T),"policies_procedures",sub_group))%>%
mutate(sub_group=ifelse(grepl("roles responsibilities", sub_group,fixed=T),"roles_responsibilities",sub_group))%>%
mutate(sub_group=ifelse(grepl("process kp", sub_group,fixed=T),"process_KPI",sub_group))%>%
mutate(sub_group=ifelse(grepl("process flows bottlenecks", sub_group,fixed=T),"process_flow_bottlenecks",sub_group))%>%
mutate(sub_group=ifelse(grepl("workflow optimization level", sub_group,fixed=T),"workflow_optimization_level",sub_group))%>%
mutate(sub_group=ifelse(grepl("it infrastructure", sub_group,fixed=T),"it_infrastructure",sub_group))%>%
mutate(sub_group=ifelse(grepl("system integration matrix", sub_group,fixed=T),"system_integration_matrix",sub_group))%>%
mutate(sub_group=ifelse(grepl("cloud strategy", sub_group,fixed=T),"cloud_strategy",sub_group))%>%
mutate(sub_group=ifelse(grepl("system security monitoring", sub_group,fixed=T),"system_security_monitoring",sub_group))%>%
mutate(sub_group=ifelse(grepl("data governance", sub_group,fixed=T),"data_governance",sub_group))%>%
mutate(sub_group=ifelse(grepl("data sources", sub_group,fixed=T),"data_sources",sub_group))%>%
mutate(sub_group=ifelse(grepl("data integration aggregation", sub_group,fixed=T),"data_integration_aggregation",sub_group))%>%
mutate(sub_group=ifelse(grepl("reporting visualization", sub_group,fixed=T),"reporting_vizualitation",sub_group))%>%
mutate(sub_group=ifelse(grepl("process standardization automation", sub_group,fixed=T),"process_standardization_automation",sub_group))%>%
mutate(sub_group=ifelse(grepl("data science capability", sub_group,fixed=T),"data_science_capability",sub_group))%>%
mutate(group=ifelse(grepl("strategic management", group,fixed=T),"strategic management",group))%>%
mutate(group=ifelse(grepl("change management", group,fixed=T),"change management",group))%>%
mutate(group=ifelse(grepl("process management", group,fixed=T),"process management",group))%>%
mutate(group=ifelse(grepl("technology management", group,fixed=T),"technology management",group))%>%
mutate(group=ifelse(grepl("data science", group,fixed=T),"data science",group))
head(data)## # A tibble: 6 x 6
## qi Status group sub_group question value
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 3 desired strategic management corporate_performance q1 2
## 2 3 desired strategic management strategy_roadmap q2 5
## 3 3 desired strategic management investments q3 5
## 4 3 desired strategic management treasury_tax_management q4 2
## 5 3 desired strategic management budgeting_planning_forecast… q5 1
## 6 3 desired strategic management risk_management q6 2
data%>%
mutate(value=as.integer(value))%>%
group_by(Status,group)%>%
summarise(value=round(mean(value, na.rm=T)))%>%
ggplot(aes(x=group, y=value, fill= Status, label=value))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Financial Gap Analysis",
subtitle = "Desire vs Current",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Current","Goal"), values= c("dodgerblue4","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Change \n Managment", "Data \n Science", "Process \n Management",
"Strategic \n Management", "Technology \n Management"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)Strategic Management
data%>%
mutate(value=as.integer(value))%>%
rename(empty=qi)%>%
mutate(empty= case_when(
empty=="1" ~ "Board",
empty=="2" ~ "Management",
empty=="3" ~ "Business Manager",
empty=="4" ~ "Line Employee"
))%>%
filter(Status=="desired", group=="strategic management")%>%
group_by(sub_group,empty)%>%
summarise(value=round(mean(value, na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=empty))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Strategic Management",
subtitle = "Desired",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Board","Business Manager","Line Employee","Management"), values= c("cadetblue","dodgerblue4","deepskyblue","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Budget \n Planning \n Forecasting", "Corporate \n Performance", "Investments",
"Law \n Regulation \n Compliance", "Risk \n Management", "Strategy \n Roadmap", "Treasury \n Tax \n Management"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)Technology Management
data%>%
mutate(value=as.integer(value))%>%
rename(empty=qi)%>%
mutate(empty= case_when(
empty=="1" ~ "Board",
empty=="2" ~ "Management",
empty=="3" ~ "Business Manager",
empty=="4" ~ "Line Employee"
))%>%
filter(Status=="desired", group=="technology management")%>% #select(sub_group)%>%unique()%>%arrange(sub_group)
group_by(sub_group,empty)%>%
summarise(value=round(mean(value, na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=empty))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Technology Management",
subtitle = "Desired",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Board","Business Manager","Line Employee","Management"), values= c("cadetblue","dodgerblue4","deepskyblue","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Cloud \n Strategy", "IT \n Infrastructure", "System \n Integration \n Matrix",
"System \n Security \n Monitoring"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)Process Management
data%>%
mutate(value=as.integer(value))%>%
rename(empty=qi)%>%
mutate(empty= case_when(
empty=="1" ~ "Board",
empty=="2" ~ "Management",
empty=="3" ~ "Business Manager",
empty=="4" ~ "Line Employee"
))%>%
filter(Status=="desired", group=="process management")%>% #select(sub_group)%>%unique()%>%arrange(sub_group)
group_by(sub_group,empty)%>%
summarise(value=round(mean(value, na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=empty))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Process Management",
subtitle = "Desired",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Board","Business Manager","Line Employee","Management"), values= c("cadetblue","dodgerblue4","deepskyblue","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Policies \n Procedures", "Process \n Flow \n Bottlenecks", "Process \n KPIs",
"Roles \n Responsibilities", "Workflow \n Optimization \n Level"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)Change Management
data%>%
mutate(value=as.integer(value))%>%
rename(empty=qi)%>%
mutate(empty= case_when(
empty=="1" ~ "Board",
empty=="2" ~ "Management",
empty=="3" ~ "Business Manager",
empty=="4" ~ "Line Employee"
))%>%
filter(Status=="desired", group=="change management")%>% #select(sub_group)%>%unique()%>%arrange(sub_group)
group_by(sub_group,empty)%>%
summarise(value=round(mean(value, na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=empty))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Change Management",
subtitle = "Desired",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Board","Business Manager","Line Employee","Management"), values= c("cadetblue","dodgerblue4","deepskyblue","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Communication \n Structure \n Abilities", "Leadership \n Change \n Cooperation", "Organizational \n Culture","Readiness \n to \n Change"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)Data Science
data%>%
mutate(value=as.integer(value))%>%
rename(empty=qi)%>%
mutate(empty= case_when(
empty=="1" ~ "Board",
empty=="2" ~ "Management",
empty=="3" ~ "Business Manager",
empty=="4" ~ "Line Employee"
))%>%
filter(Status=="desired", group=="data science")%>% #select(sub_group)%>%unique()%>%arrange(sub_group)
group_by(sub_group,empty)%>%
summarise(value=round(mean(value, na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=empty))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Data Science",
subtitle = "Desired",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Board","Business Manager","Line Employee","Management"), values= c("cadetblue","dodgerblue4","deepskyblue","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Data \n Governance", "Data \n Integration \n Aggregation", "Data \n Science \n Capability",
"Data \n Sources", "Process \n Standardization \n Automation", "Reporting \n Visualization"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)Not requested currently
data%>%
mutate(value=as.integer(value))%>%
filter(group=="strategic management")%>%
group_by(Status,sub_group)%>%
summarise(value=round(mean(value,na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=Status))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Strategic Management",
subtitle = "Desire vs Current",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Current","Goal"), values= c("dodgerblue4","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Budget \n Planning \n Forecasting", "Corporate \n Performance", "Investments",
"Law \n Regulation \n Compliance", "Risk \n Management", "Strategy \n Roadmap", "Treasury \n Tax \n Management"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)data%>%
mutate(value=as.integer(value))%>%
filter(group=="technology management")%>%
group_by(Status,sub_group)%>%
summarise(value=round(mean(value,na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=Status))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Technology Management",
subtitle = "Desire vs Current",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Current","Goal"), values= c("dodgerblue4","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Cloud \n Strategy", "IT \n Infrastructure", "System \n Integration \n Matrix",
"System \n Security \n Monitoring"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)data%>%
mutate(value=as.integer(value))%>%
filter(group=="process management")%>%
group_by(Status,sub_group)%>%
summarise(value=round(mean(value,na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=Status))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Process Management",
subtitle = "Desire vs Current",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Current","Goal"), values= c("dodgerblue4","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Policies \n Procedures", "Process \n Flow \n Bottlenecks", "Process \n KPIs",
"Roles \n Responsibilities", "Workflow \n Optimization \n Level"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)data%>%
mutate(value=as.integer(value))%>%
filter(group=="change management")%>%
group_by(Status,sub_group)%>%
summarise(value=round(mean(value,na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=Status))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Change Management",
subtitle = "Desire vs Current",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Current","Goal"), values= c("dodgerblue4","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Communication \n Structure \n Abilities", "Leadership \n Change \n Cooperation", "Organizational \n Culture","Readiness \n to \n Change"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)data%>%
mutate(value=as.integer(value))%>%
filter(group=="data science")%>%
group_by(Status,sub_group)%>%
summarise(value=round(mean(value,na.rm = T)))%>%
ggplot(aes(x=sub_group,y=value,fill=Status))+geom_col(position = "dodge2")+
labs(fill = "",
y="",
x="",
title = "Data Science",
subtitle = "Desire vs Current",
caption = "Source: LaNubia Finance Transformation Survey"
)+
scale_fill_manual(name = "", labels = c("Current","Goal"), values= c("dodgerblue4","aquamarine4"))+
scale_y_continuous(name = "", breaks=c(1,2,3,4,5), labels=c("Oblivious","Explorer","Enlightened","Vanguard","Empowered"), limits = c(0,5))+
scale_x_discrete(labels=c("Data \n Governance", "Data \n Integration \n Aggregation", "Data \n Science \n Capability",
"Data \n Sources", "Process \n Standardization \n Automation", "Reporting \n Visualization"))+
theme_linedraw() +
theme(legend.position = "bottom",
plot.title = element_text(color="black", size=14, face="bold"))+
coord_cartesian(clip = "off")+
annotation_custom(l, xmin = -0.5, xmax = 1, ymin=-1,ymax=-2.25)