November 2023, Melbourne
An insight into the Good Data Institute’s recently upgraded internal data analytics platform implemented using R Shiny and GitHub Actions.
The Good Data Institute is an organisation made up of a community of data science professionals who provide data and analytics solutions to charities and mission driven organisations. At the time of writing this we have 219 volunteers across Australia, New Zealand, and the World who have donated over 2,400 hours of service to charities and mission-driven organisations. Our volunteers each have their own unique specialties and interests which we have carefully matched to over 50 completed projects for our partner organisations. We currently have 6 active projects assisting organisations with diverse focuses including the arts, climate action, poverty, and indigenous outreach. And thanks to our recently updated data analytics platform, I was able to figure all of this out within two minutes.
For the past year, GDI co-founder Vivek Katial, GDI fellow Nick Twort, and myself have made it a priority to advance the organisation's internal analytics capabilities. Our goal was to have a platform integrating our various data sources that we use to track the organisation into one powerful, user friendly platform.
In this article I will take you through 1) some of the main features of this platform and how it’s used to enhance the organisation, and 2) some of the more technical details of how the platform works.
What do we use it for?
1) Diversity, Equity, and Inclusion
One of the main reasons for improving our internal analytic capacities was so that we could better understand the demographic makeup of our organisation. Certain demographics face systemic barriers within tech and the broader workforce and are therefore underrepresented, so we created a public diversity, equity and inclusion dashboard so that we could identify where we need to improve, and hold ourselves accountable for cultivating a diverse network of volunteers.
The dashboard we have created allows us to compare 8 demographic characteristics such as gender, ethnicity, indigenous status, and parental education. An important feature of this dashboard is the comparison view, which allows us to compare GDI’s demographics with the base rates of the Australia/New Zealand general population and the Australian/New Zealand tech industry to get a better idea of how GDI is performing relative to those markers.
2) Volunteer Skills and Interests
The main function of our organisation is to assign skilled data scientists to projects from our non-profit partners. The volunteer view on our new platform allows us to see the skills and interests of our volunteers so that we can match them to projects suited to them. This also helps us to identify which skills might be missing from our volunteer cohort which can inform the kinds of people we want to prioritise in recruitment. We have data on both our volunteers’ self-reported ability and interest in a range of areas such as programming languages, data management, presentation skills, and data visualisation software. We can also see projects that volunteers are currently working on and their project history which is important to ensure we are distributing projects evenly throughout the volunteers.
3) Project Impact
The last aspect of our new analytics platform that I will discuss is our project impact dashboard. Like any organisation, we want to be able to see the progress we are making to ensure that we are hitting targets and fulfilling our mission. As shown in the screenshot below, the project impact dashboard displays a number of key performance indicators including the total number of projects, revenue, volunteer hours and net promoter score. The project map shows our global reach, and we are able to look up specific projects as a function of their start date and their impact area (e.g., affordable clean energy, climate action, and education). We can also look more generally at the number of projects within different impact areas as well as the relative interest of our volunteers in each of those areas.
How did we build it?
Our platform has been built with two core principles in mind: automation and modularisation. As shown in the figure below, all of our volunteer data is stored in Airtable, which is automatically populated whenever someone fills out a relevant survey in Typeform. Some of our organisational data is also stored in Google Sheets, and we can easily integrate data from both sources using their fast and secure APIs.
The analytics platform itself was built using R Shiny. Shiny is a package for building interactive web apps directly from R. The app is controlled centrally with a “global” script that loads all relevant packages, loads and cleans the data, and sources all of the user interface and server scripts for each component or “module” of the app. The server scripts control the functions that power the data analytic features such as interactive figures and data tables. The user interface scripts control how each module is physically laid out. Each module corresponds to a different tab in the web application which includes a homepage, diversity and equity dashboard, volunteer view, and project impact dashboard.
The app is deployed and hosted online using Shiny’s own free servers. However, we use GitHub, not only for its standard version control purposes, but also as a tool for automatic deployment using GitHub Actions. There are three versions of the app: development, production, and public. Whenever someone wants to make changes to the app, they will do so in a separate git branch. Once they have finished their changes they submit a pull request at which point the edited branch is automatically deployed to the development server via GitHub Actions. Once the pull request is approved and the changes are merged with the “main” branch, the app is automatically deployed to the production version of the app which is the final version with all modules that is used by senior members of the organisation. Although much of our metrics cannot be shared with the public for privacy reasons, we have made a stand-alone, public version of the diversity, inclusion, and equity dashboard so that anyone can see the demographic makeup of our organisation. To make this version more suitable for public presentation (i.e., look nicer), we integrated the shiny app with custom css and html.
To summarise, with a small crew of part time volunteers and only using free tools, we have been able to build a user-friendly, automated, and powerful analytics application that allows GDI to maximise the use of its own data. We now have an improved capacity to track progress towards our goals, hold ourselves accountable to our mission, and improve our decision making as an organisation.
Do you work for a non-profit and would like to build something similar for your organisation? Get in touch!
Manikya Alister (GDI Volunteer)
The Good Data Institute (established 2019) is a registered not-for-profit organisation (ABN: 6664087941) that aims to give not-for-profits access to data analytics (D&A) support & tools. Our mission is to be the bridge between the not-for-profit world and the world of data analytics practitioners wishing to do social good. Using D&A, we identify, share, and help implement the most effective means for growing NFP people, organisations, and their impact.