A free, no-code survey analysis tool built with Streamlit. A live version of this tool is available at https://surveygrove.streamlit.app/
Survey Grove helps you quickly analyze survey results directly from a CSV file — no coding required. Upload your data, define attributes and question types, and view clean visualizations with automatic statistical tests.
Upload any survey CSV (one row per participant, one column per question)
Select up to three grouping attributes (e.g., Region, Location, Role)
Classify question columns as numeric or categorical
Define “positive” responses for categorical questions (e.g., Agree, Yes)
Automatically visualize results with:
- Boxplots for numeric questions
- Bar charts for categorical questions (% positive)
- Run statistical tests:
- ANOVA for numeric questions
- Chi-square for categorical questions
- Interactive app interface powered by Streamlit and Plotly
Load your survey CSV file — each row should represent one respondent, and each column should be a question or attribute.
Choose up to three columns that define your groups (e.g., region, gender, department).
The app automatically detects numeric and categorical columns, but you can manually override each question’s type.
For each categorical question, select which responses should count as “positive” (for example, Agree or Strongly Agree).
Click 🚀 Run Survey Analysis to view:
- Interactive boxplots or bar charts
- Statistical tests (ANOVA or Chi²)
- Group-level summaries (% positive or mean differences)
Suppose you run a staff survey with columns like:
region role satisfaction workload recommend
North Teacher 4 High Yes
South Admin 3 Medium No
You could:
- Select region as an attribute,
- Mark satisfaction as numeric,
- Mark recommend as categorical (positive = “Yes”),
- Then visualize satisfaction and recommendation rates by region — complete with p-values for group differences.
Clone this repository and install dependencies:
git clone https://github.com/kevinverhoff/survey_grove.git
cd survey-grove
pip install -r requirements.txt
Run the app locally:
streamlit run app.py
The app uses the following Python libraries:
streamlit pandas numpy scipy plotly
Numeric questions: Boxplot + ANOVA results
Categorical questions: Percent-positive bar chart + Chi² test
Statistical feedback: Clear messages about significance thresholds (p < 0.05)
The app includes reset buttons:
🔄 Reset App: Clears session state and restarts the workflow
🔄 Reset All: Clears all selections and data for a fresh start
Survey Grove was created by Kevin Verhoff to make data-driven survey analysis accessible for educators, nonprofits, and small organizations.
This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.
You are free to use, modify, and distribute this software under the terms of the AGPL-3.0 license.
If you modify or run this application on a server and allow users to interact with it over a network,
you must make the source code of your modified version available to those users.
See the [LICENSE](LICENSE) file for the full text.