Weekday visitors were more satisfied
66.2% weekday against 33.3% weekend
Share rating their visit 4 or 5 out of 5. The gap is 32.8 percentage points (95% confidence interval 22.1 to 43.5).
Example delivery
A café asked what its customer survey says about weekends, waiting and what people mention. This page shows everything that came back: the answers, the checked data, the script that produces every number, the log of each change made to the data, and the independent reviewer's record.
Invented example. The café, its customers and the survey are made up. Every figure here comes from running the script in the package on the data file in the package, so you can check it yourself.
Northside Community Café ran a one-month survey and sent the export as one CSV file: 412 responses, 7 columns. They asked:
Purpose: deciding whether to add weekend staff.
Check and clean the export, answer the three questions with summary tables and suitable statistics, code the comments by agreed keywords, and deliver a reproducible script, a change log and a findings report.
66.2% weekday against 33.3% weekend
Share rating their visit 4 or 5 out of 5. The gap is 32.8 percentage points (95% confidence interval 22.1 to 43.5).
80.7% at 0–5 minutes falling to 18.8% at 16+
Spearman correlation −0.48 (n = 350). Weekend visitors waited longer (median 12 minutes against 7), which explains much of the weekend gap.
37.4% coffee and food and 32.6% friendly staff
Share of the 334 comments. Seating came up in 19.8%, price in 14.4%, and waiting or queues in 9.3%.
Short answers, Tables 1–3, methods, assumptions and limitations.
findings.md, 4 KB400 responses after the logged changes, ready to reuse.
cafe-survey-checked.csv, 26 KBAll 412 rows exactly as the café sent them. Never changed.
cafe-survey-original.csv, 26 KBReproduces every table from the original file. Needs only Python.
analysis.py, 7 KBEvery change to the data, how many rows it touched, and why.
changes.md, 1 KBWhat the reviewer reran and checked, the correction asked for, and the sign-off.
review.md, 1 KB| Change | Rows | Rule |
|---|---|---|
| Removed exact duplicate submissions | 12 | Every field identical. The first copy is kept. |
| Converted waiting time to whole minutes | 311 | "10 mins" becomes 10 in a new column. The original answer is kept. |
| Left blank waiting times as missing | 18 | Not estimated or filled in. |
| Left blank ratings as missing | 30 | Not estimated or filled in. |
| Set ratings outside 1–5 to missing | 2 | 0 and 6 are not on the scale. |
| Trimmed spaces around comments | 55 | Wording unchanged. |
| Day | Rated | Mean | Satisfied | Median wait |
|---|---|---|---|---|
| Weekday | 263 | 3.79 | 66.2% | 7 min |
| Weekend | 105 | 3.19 | 33.3% | 12 min |
| Wait | Rated | Mean | Satisfied |
|---|---|---|---|
| 0–5 minutes | 88 | 4.11 | 80.7% |
| 6–10 minutes | 148 | 3.70 | 59.5% |
| 11–15 minutes | 98 | 3.16 | 34.7% |
| 16 minutes or more | 16 | 2.69 | 18.8% |
$ python analysis.py cafe-survey-original.csv
Responses supplied: 412; after checks: 400
Responses with a usable rating: 368
Table 1. Satisfaction by day of visit
Day Rated Mean Median Satisfied Median wait
Weekday 263 3.79 4.0 66.2% 7.0 min
Weekend 105 3.19 3.0 33.3% 12.0 min
The analyst acknowledged within the hour and the delivery date was fixed.
Duplicates, waiting-time formats and out-of-range ratings were found and logged.
Tables 1–3 and the comment coding were done.
A second approved specialist reran the script on the original file. Every table matched.
The reviewer asked for the weekend gap to be shown alongside waiting time, so it would not be read as being about weekends alone.
The reviewer reran everything on version 2 and cleared it. The café checked the package against the scope and accepted it.
You get the same package for every analysis: answers, checked data, a script or workbook, a change log and an independent review.
Add a shortcut to your support workspace. Installation is optional.