Example delivery

What you get back from an analysis

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.

The request

Northside Community Café ran a one-month survey and sent the export as one CSV file: 412 responses, 7 columns. They asked:

  1. Are weekday or weekend visitors more satisfied?
  2. Does waiting time change satisfaction?
  3. What do comments mention most?

Purpose: deciding whether to add weekend staff.

The agreed scope

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.

Not included
New data collection, forecasts, or claims that waiting causes lower ratings.
Acceptance check
Running the script on the supplied file reproduces Tables 1–3 exactly, and every change to the data is logged.
Effort
7 hours: 1 cleaning, 3.5 analysis, 1 reporting and 1.5 independent review, delivered within 7 days.

The answers

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).

Longer waits went with lower ratings

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.

Comments were mostly about coffee and staff

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%.

The package

Six files, all yours to keep
  • Findings report

    Short answers, Tables 1–3, methods, assumptions and limitations.

    findings.md, 4 KB
    Download findings.md
  • Checked data

    400 responses after the logged changes, ready to reuse.

    cafe-survey-checked.csv, 26 KB
    Download cafe-survey-checked.csv
  • The file as supplied

    All 412 rows exactly as the café sent them. Never changed.

    cafe-survey-original.csv, 26 KB
    Download cafe-survey-original.csv
  • Analysis script

    Reproduces every table from the original file. Needs only Python.

    analysis.py, 7 KB
    Download analysis.py
  • Change log

    Every change to the data, how many rows it touched, and why.

    changes.md, 1 KB
    Download changes.md
  • Independent review record

    What the reviewer reran and checked, the correction asked for, and the sign-off.

    review.md, 1 KB
    Download review.md

Inside the files

Every change to the data, with a reason

Changes made to the supplied data
ChangeRowsRule
Removed exact duplicate submissions12Every field identical. The first copy is kept.
Converted waiting time to whole minutes311"10 mins" becomes 10 in a new column. The original answer is kept.
Left blank waiting times as missing18Not estimated or filled in.
Left blank ratings as missing30Not estimated or filled in.
Set ratings outside 1–5 to missing20 and 6 are not on the scale.
Trimmed spaces around comments55Wording unchanged.

Results tables, as in the report

Table 1. Satisfaction by day of visit (satisfied means a rating of 4 or 5)
DayRatedMeanSatisfiedMedian wait
Weekday2633.7966.2%7 min
Weekend1053.1933.3%12 min
Table 2. Satisfaction by waiting time
WaitRatedMeanSatisfied
0–5 minutes884.1180.7%
6–10 minutes1483.7059.5%
11–15 minutes983.1634.7%
16 minutes or more162.6918.8%

One command reproduces it all

$ 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

Limitations, stated up front

  • A survey of people who chose to answer, with waiting times as they remembered them.
  • It shows an association, not a cause: busy periods may differ in other ways too.
  • Some groups are small, such as 16 ratings at 16 minutes or more, so those figures are rough.
  • Keyword coding misses comments that use other words and does not capture tone.

How the week went

  1. Payment securedDay 0

    The analyst acknowledged within the hour and the delivery date was fixed.

  2. Data checkedDay 1

    Duplicates, waiting-time formats and out-of-range ratings were found and logged.

  3. Answers draftedDay 3

    Tables 1–3 and the comment coding were done.

  4. Sent for independent reviewDay 4

    A second approved specialist reran the script on the original file. Every table matched.

  5. Correction requestedDay 5

    The reviewer asked for the weekend gap to be shown alongside waiting time, so it would not be read as being about weekends alone.

  6. Cleared and deliveredDay 6

    The reviewer reran everything on version 2 and cleared it. The café checked the package against the scope and accepted it.

Ready to ask your own data a question?

You get the same package for every analysis: answers, checked data, a script or workbook, a change log and an independent review.