From Survey Data to Charts: An App for Streamlining Data Visualization Workflows
- Status
- Team Selection
- Project Period
- May 2026 – February 2027 (planned)
- Partner
The main project language will be English - that's why this call for application is written in English. German skills are beneficial for understanding the data / UI but can be worked around with using LLMs/translation tools.
The Challenge
More in Common conducts data-driven research to better understand public attitudes and strengthen social cohesion. In collaboration with survey institutes, they regularly collect large-scale survey data. This data is stored and analyzed using Crunch, a platform specialized in survey analysis. While Crunch provides strong analytical capabilities (e.g. cross tables, breakdowns), its data visualization features are limited. This is why the team relies on Flourish to communicate findings.
Currently, creating visualizations in Flourish involves:
- Exporting aggregated data from Crunch to Excel
- Manually cleaning and reshaping the data in Excel, especially “longifying” data
- Uploading data into Flourish
- Creating, adjusting and customizing visualizations in Flourish
- Manually checking results for accuracy - accuracy is critical to More in Common and a lot of time is invested in this step
This manual process is very time consuming, error-prone and depends on the skills of a small number of individuals.
The Project
We aim to build a Shiny application that (partially/mostly) automates this workflow — from data extraction to the creation of visualizations.
The tool will:
- Connect directly to Crunch with the crunchy R package
- Automatically process and prepare data for Flourish
- Enable easy creation of high-quality visualizations within the app, using Flourish’s R package
- Support export to PowerPoint and other formats
The goal is to move from a manual workflow to a reproducible, semi-automated system.
We build on two existing prototypes built by More in Common staff members:
- Crunch Explorer is a Shiny app that allows users to browse and load datasets from Crunch. It already includes partially functional data preparation that allows them to be readily used for further data visualizations. Code quality is ok, but there are still some bugs with data processing that affect reliability and accuracy of results. Code for general data loading and some of the data wrangling can probably be reused but should be extended with rigorous tests.
- Chart Maker, a vibe-coded prototype for generating Flourish-style charts. While it offers strong ideas for features and user interface design, the current implementation is inefficient and prone to errors. Code can probably only be reused after critical evaluation.
In addition, More in Common has defined Flourish templates for various chart types that can be used as the default for charts in the Shiny application.
Project Areas
This project includes significant exploratory components, with open questions to be explored and addressed along the way. Instead of fixed work packages, we outline project areas with example tasks, open questions, and potential risks. This gives you the opportunity to explore and shape solutions – within the overall goals and technologies described here.
PA 1: App Design & User Experience
Goal: Design an intuitive tool that fits the research team’s workflows.
Example tasks:
- Acquire better understanding of data, requirements, needs, and workflows of the More in Common researchers
- Define interaction patterns and visual design (colors…)
- Optional: Develop user stories
- Optional: Create UI mockups (e.g. Figma)
Open questions:
- What are the most important user workflows?
- How do More in Common researchers think/work when generating insights/visualizations from data (visualisation-based/slide-based/question-based?)?
- What filtering options are needed in practice? → Risk: Important filters are missed or too many filters clutter the interface
PA 2: Data Ingestion, Data Processing, Accuracy
Goal: Enable loading of survey data via the Crunch API and ensure clean, accurate, and reproducible data transformations from Crunch data structure to Flourish data structure - each Flourish chart type requires data to be shaped in a specific way.
Example tasks:
- Evaluate, adapt/extend and integrate code of existing Crunch Explorer prototype
- Implement user interface
- Transform data loaded from Crunch into Flourish target shapes for different visualization types.
- Add statistical configuration options (e.g. survey weights)
- Ensure correctness of outputs → write tests for data wrangling functions, investigate edge cases.
Open questions and risks:
- How should large datasets be handled efficiently? → Risk: Poor Performance
- How complex are statistical configurations (e.g. survey weights)? → Risk: too complex to test for all edge cases and establish confidence in accuracy → researchers still need to check all results manually.
PA 3: Flourish Visualizations in Shiny
Goal: Enable users to create and configure high-quality Flourish visualizations within the app.
Example tasks:
- Recreate Flourish’ chart-building interface in Shiny
- Implement different Flourish chart types (~5-10) in Shiny, including defaults for common configurations from More in Common Flourish templates
- Implement visualization suggestions based on metadata from selected crunch data
- Implement user interface for adjustments to charts, with sensible / responsive defaults based on data and visualization type
Open questions and risks:
- Risk: configuration options may differ vastly between chart types → challenge for user interface to remain clean.
- Open question: in addition to visualization types (bar chart…) in Flourish, More in Common specific categories exist (e.g. based on survey question). How do we integrate them with the more technical view of chart types and represent this in the user interface?
- Open question: how do data types / survey question types map to visualizations and default configurations? How to best organize and store this information (JSON, Flourish templates, Excel sheet)?
- Risk: implement too much suggestion/default logic into the application, making it complex and hard to maintain/understand
PA 4: Export & Reproducibility
Goal: Allow users to export and reproduce their work easily.
Example tasks:
- Export to PowerPoint and other formats (e.g. JSON)
- Enable multi-slide / multi-visualization workflows
Open questions and risks:
- How should analyses be stored and shared? Do we need some sort of “state” / “memory” within the app or is this something that is handled outside the application (e.g. a save and reload configuration functionality would be sufficient)? → Risk: if it is necessary that the app has a “state”/”memory”: open how to implement this (database, some sort of Shiny mechanism?)
- Risk: performance of PowerPoint export (based on experience with prototype)
PA 5: Testing & Iteration
Goal: Continuously improve the tool through user feedback.
Example tasks:
- Conduct user testing sessions (with Falco and/or other researchers)
- Identify usability issues
- Iterate on workflows and features
Open questions and risks:
- Risk: only Falco as our main project partner regularly tests and sees the app. Less technical researchers only see the app at the end of the project and their needs/input cannot be considered.
- Open question: how to do this somewhat regularly but not cause too much overhead for volunteers/More in Common?
PA 6: Deployment & Handover
Goal: Ensure the tool can be used and maintained long-term.
Example tasks:
- Explore deployment options (e.g. Posit, Crunch) together with Falco from More in Common
- Prepare production setup
- Write documentation, clean up repository
- Conduct handover workshop
Open questions and risks:
- Can crunch hosting be used?
- If additional resources (see PA 6) are needed: is this something that crunch offers as well?
Impact
This project will:
- Save researchers significant time by automating manual workflows
- Reduce dependency on individual technical experts
- Increase confidence in data accuracy and reproducibility
- Enable clearer communication of research findings
By improving how data is analyzed and visualized, the tool supports More in Common to inspire better-informed discussions in society and policymaking with the goal of strengthening social cohesion.
Your Team and Your Role
In the Data4Good project with More in Common, you will become part of a team consisting of Falco from More in Common, as well as 3–5 other volunteers from CorrelAid. Together, you can use your skills and potential for a good cause, support a great nonprofit organization, and most importantly: have fun. Here’s what you can expect as a CorrelAid Data4Good volunteer:
- A place for learning: A CorrelAid project is a great place to share knowledge, learn new skills, or to deepen existing ones and apply them in practice.
- (Shared) responsibility: Together with your teammates, you take responsibility for the entire project. You are (co-)responsible for specific tasks and outputs, depending on your team role (see below).
- Support and collaboration: You support each other within the team, coordinate closely, and share knowledge. You can ask for advice in the CorrelAid Slack community. The full-time CorrelAid team is available in the background if problems arise.
- Flexibility: You can organize your time flexibly and work on the project whenever and wherever you want. You can work independently or meet with teammates for (online) co-working or collaboration.
- Online communication: You coordinate with other team members via Slack and regularly participate in meetings with your project partners (approximately every 1–3 weeks, depending on the project and phase). Occasionally, additional meetings or coordination with project partners or team members may be necessary.
- A supportive environment for everyone: CorrelAid’s goal is to ensure that everyone in the community—regardless of background, prior experience, gender, or other personal characteristics—can contribute and grow as a person. A respectful and safe environment is essential for this. Therefore, collaboration within the project team follows the values and principles outlined in the Code of Ethics and Code of Conduct. The Ethics Commission and Community Team provide concrete and enforceable processes to support you if you observe or experience violations of these rules and values during the project.
- Time commitment: You can expect a time commitment of approximately 4 hours per week.
To help you better assess where you can contribute most effectively with your skills and experience, we outline different team roles below. In the application form, you can select one or more roles that appeal to you.
There are two specific roles that do not require technical knowledge or prior experience:
Team Coordinator: As a team coordinator, you do not need technical skills, but you should be motivated to coordinate and organise teams.
Team Trainee: The team trainee role is for individuals who have little or no technical knowledge but would like to gain technical skills during the project. As a team trainee, you still share responsibility for the project’s success and are responsible for shaping your own learning experience - for example, by collaborating with one of the technical roles.
Role: Volunteer Statistical Integrity and Accuracy
Your responsibility & impact: As the “Statistical Integrity and Accuracy” volunteer, you are responsible for ensuring the accuracy of the data transformations. Thanks to your code and rigid testing of it, More in Common employees are confident in the reliability and accuracy of results and they don’t need to manually double-check individual calculations anymore - valuable time that can be spent on more meaningful and impactful tasks.
Your tasks:
- You’ll mainly work on project areas 1 (Product Design & User Experience) and 2 (Data Ingestion, Data Processing, Accuracy)
- Get familiar with typical survey configurations of More in Common (typical weights, cross-tabs etc.) and their statistical parameters
- Implement functions for loading data from Crunch and transforming them (Crunch format -> Flourish format)
- Work with More in Common researchers to identify test cases and implement a wide range of tests (e.g. using the testthat R package) to ensure correctness of functions
- Some Shiny coding: Integrate your functions into the Shiny backend, implement UI for parameters
What you’ll learn:
- How survey data are used in practice and (statistical) pitfalls when transforming them for analysis
- Implementing tests for data transformation functions
Your profile:
- At least beginner to intermediate R skills, particularly tidyverse (dplyr, tidyr) and writing functions
- Motivation to delve deep into concepts related to survey data (statistics) and think hard about data accuracy
- Motivation to come up and write a lot of good, meaningful tests to ensure data accuracy (and not simply outsource that to LLMs)
- Some experience with aggregating data in crosstabs, pivot tables etc. (in R or other languages) and data wrangling (particularly reshaping/pivoting data)
- Optional: advanced experience with/knowledge of survey data and/or survey statistics (e.g. survey weights)
- Optional: prior experience with Shiny, Crunch or Flourish
Role: Shiny Developer - Focus Flourish, UI & UX
Your responsibility & impact: As Shiny developer, you are responsible for implementing the vision of the Shiny app, in particular the chart maker. In addition, you are responsible for defining and elaborating the needs of More in Common together with their researchers and mapping that to the layout, design and general structure of the Shiny application (UI). Thanks to your effort, the resulting application is not just a more or less random collection of buttons, tabs and visualizations but is designed for the particular visualization needs & workflows of More in Common researchers (UX).
Your tasks:
- You develop Shiny code (functions, UI, …) in PA 2-4, depending on your preference and distribution of tasks within the team. You evaluate and adapt code from the prototypes if fit for use.
- Focus Flourish, UI & UX:
- Focus on PA3 within Shiny development
- Familiarise yourself with concepts of UX and associated methods
- Organize and facilitate workshops and discussions with Falco (and potentially other More in Common researchers) to get a better understanding of product design and user experience (PA 1: App Design & User Experience)
- Support More in Common to organize templates and information on defaults (“map” survey questions -> visualization types -> configuration defaults)
- Organise user testing a suitable manner (PA 4: Testing & Iteration)
- Theming of Shiny app (using themes and/or CSS)
What you’ll learn:
- How survey data is used in the real world by researchers
- Designing and developing an application with users in mind
- Facilitating discussions and workshops surrounding UX and organising user testing sessions
Your profile:
- You have intermediate (or higher) R skills (writing functions) (“user” & upwards on our scale)
- You have previous experience with Shiny or a high motivation to learn it
- You are motivated to look into Shiny themes and customize them with CSS
- You are motivated to research and delve deeper into topics surrounding UX and app design processes
- Optional:
- Experience with using APIs of visualization libraries (e.g. plotly)
- Experience with UX (research) and methods
- Experience with CSS
Role: Shiny Developer - Focus Code Quality & Data Flows
Your responsibility & impact: As Shiny developer, you are responsible for implementing the vision of the Shiny app, with a particular focus on the overall technical structure of the app and code quality. In addition, you are responsible for topics of deployment and export. Thanks to your effort and the technical quality of the app, the app can be deployed and maintained by More in Common long term and it contains the features that allows the researchers to create and export helpful outputs (e.g. slide decks) with visualizations.
Your tasks:
- You develop Shiny code (functions, UI, …) in PA 2-4, depending on your preference and distribution of tasks within the team. You evaluate and adapt code from the prototypes if fit for use.
- Focus Code Quality and Data Flows:
- Focus on PA2 and PA4 within Shiny development
- Research and implement what technical framework works best for the scope and size of the Shiny app (PA 1: App Design & User Experience), e.g. Golem
- Discuss open questions surrounding export & reproducibility with More in Common, research, explore and test technical approaches (PA 4: Export & Reproducibility)
- Implement needed export functionality (e.g. PowerPoint export, JSON export)
- If needed: implement database or other technical solution to give the app a “memory” across different users and sessions
- Consult More in Common on hosting solutions (e.g. Crunch, Posit) and ensure app can be easily deployed and maintained
- Work on performance of the app
What you’ll learn:
- How survey data is used in the real world by researchers
- Designing and developing an application with users in mind
- Frameworks and approaches to structuring mid-sized Shiny applications (e.g. Golem)
- How Shiny apps can store data across user sessions
- Deployment of Shiny apps
Your profile:
- You have intermediate (or higher) R skills (writing functions) (“user” & upwards on our scale)
- You have previous experience with Shiny or a high motivation to learn it
- You have an affinity for well-structured code and exploring and implementing technical frameworks
- You are motivated to research and delve deeper into technical details of Shiny such as state management, interface to databases and deployment
- Optional:
- Experience with developing larger Shiny applications using frameworks (i.e. more than app.R + R folder)
- Experience with deployment
- Experience with integrating R with databases
Role: Team Trainee
As an educational community, it is important to us to provide a space for people who have little or no prior technical knowledge. That is why the team trainee role exists. As a team trainee, you are still co-responsible for the project’s success. More importantly, you are responsible for seeking out your learning experiences. What exactly you do and learn in the project is decided together with the team. The team coordinator supports you in this.
If you belong to a group marginalized in data science (e.g. cis women, trans/nonbinary/inter people, queer people), we would like to encourage you to apply for a regular team role even if you may not meet all the requirements. CorrelAid projects are a great place to take on responsibility, expand your comfort zone, and grow – supported by others and as part of a community.
Role: Team Coordinator
If the “Team Coordinator” role cannot be filled, the tasks will be distributed within the team.
Your responsibility & your impact: You make sure that all project team members work together in a focused, aligned, and motivated way. You help create a space in which everyone can use their volunteer time effectively, have fun, learn, and at the same time bring the project’s vision to life. You will be supported by Leo from the full-time CorrelAid team – he will onboard you into your role before the project and be available as a point of contact throughout the project.
Your tasks:
- You support the team in distributing, prioritizing, and tackling tasks
- You keep an overview of project goals and the timeline
- You keep an eye on the other team members and project partners and act as a point of contact in case of challenges. You help the team trainee orient themselves in the project and find learning opportunities
- You act as an interface to the full-time CorrelAid team around Leo
- You co-moderate the project kickoff together with Leo from the full-time team and enable a strong project start. You work with the team to define how you want to collaborate and organize yourselves
- You plan and moderate regular check-ins – synchronously as meetings or asynchronously via Slack
- Optional: if you have time, motivation and capacities beyond filling your role as team coordinator, you are free to contribute to or take on project tasks yourself (e.g. writing code, creating visualizations, …). But this is not expected by any means!
What you will learn in the project:
- Enabling work in an interdisciplinary, volunteer team
- Finding the balance between structure, self-determination and volunteer work
- Collaboration with partners from nonprofit organizations
- Working with project management tools (e.g. GitHub Projects or Trello)
Your profile:
- You are motivated to organize and facilitate teams or projects
- You enjoy structuring and enabling collaboration, and you have a good understanding of people and their strengths and needs
- Optional: prior experience organizing teams, e.g. in other (volunteer) contexts or as an agile coach, scrum master, project manager, or similar
Next Steps & Timeline
- Until (incl.) Sunday, 26th of April: Apply using the application form
- Until Wednesday, 29th of April: we’ll let you know if you are part of the project.
- Starting April 30th: Onboarding
- Tuesday, May 5th, 18:00 - 20:00: Kickoff with More in Common. Please save the date if possible. The kickoff is important for everyone to have a good start to the project. If you can’t participate, you’ll get an individual onboarding by Leo or by the other team members.
- Project duration: until February 2027