carsDF.head(10)| observation | shopID | boss | carsFixed | |
|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 8 |
| 1 | 2 | 2 | 0 | 22 |
| 2 | 3 | 3 | 0 | 32 |
| 3 | 4 | 4 | 1 | 64 |
| 4 | 5 | 5 | 0 | 53 |
| 5 | 6 | 1 | 1 | 21 |
| 6 | 7 | 2 | 0 | 20 |
| 7 | 8 | 3 | 0 | 42 |
| 8 | 9 | 4 | 0 | 31 |
| 9 | 10 | 5 | 0 | 55 |
Data-Driven Scheduling for Maximum Productivity
Your Mission: Create a concise, punchy Quarto document (aim for 1-5 printed pages) that analyzes historical productivity data from Patrickās auto shop network. Your report should give Patrick clear, actionable recommendations he can understand and use. Write it so an auto-mechanic can follow itāno jargon, no confusion, no boredom. Then render the document to HTML and deploy it via GitHub Pages.
Key Requirements:
Patrick runs a network of 5 auto repair shops. Heās been tracking productivity data (number of cars fixed per day) across all shops, along with whether he (the boss) was present at each shop on each day.
The Core Question: When and where should Patrick schedule his presence to maximize productivity and revenue?
Key Considerations:
The problem: Patrick needs to make scheduling decisions based on data, not intuition. He needs to understand:
Why this matters: Poor scheduling decisions can lead to:
The connection: This is a real-world decision problem where data analysis can directly impact business outcomes. Your job is to make the data tell a clear, actionable story.
The dataset contains 250 observations of daily productivity across 5 shops:
carsDF.head(10)| observation | shopID | boss | carsFixed | |
|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 8 |
| 1 | 2 | 2 | 0 | 22 |
| 2 | 3 | 3 | 0 | 32 |
| 3 | 4 | 4 | 1 | 64 |
| 4 | 5 | 5 | 0 | 53 |
| 5 | 6 | 1 | 1 | 21 |
| 6 | 7 | 2 | 0 | 20 |
| 7 | 8 | 3 | 0 | 42 |
| 8 | 9 | 4 | 0 | 31 |
| 9 | 10 | 5 | 0 | 55 |
Data Dictionary:
observation: Observation number (1-250)shopID: Shop identifier (1-5)boss: Binary indicator (0 = boss absent, 1 = boss present)carsFixed: Number of cars fixed that daysummary = carsDF.groupby(['shopID', 'boss'])['carsFixed'].agg(['count', 'mean', 'std', 'min', 'max']).round(2)
summary| count | mean | std | min | max | ||
|---|---|---|---|---|---|---|
| shopID | boss | |||||
| 1 | 0 | 40 | 11.05 | 2.93 | 5 | 17 |
| 1 | 10 | 18.00 | 3.13 | 13 | 23 | |
| 2 | 0 | 45 | 22.13 | 4.82 | 11 | 35 |
| 1 | 5 | 32.20 | 2.59 | 29 | 35 | |
| 3 | 0 | 35 | 32.46 | 5.59 | 23 | 49 |
| 1 | 15 | 35.40 | 5.00 | 25 | 44 | |
| 4 | 0 | 45 | 37.02 | 5.61 | 26 | 51 |
| 1 | 5 | 49.80 | 10.08 | 39 | 64 | |
| 5 | 0 | 35 | 45.51 | 7.24 | 32 | 60 |
| 1 | 15 | 53.73 | 5.31 | 45 | 62 |
Create a Quarto Document: Write a comprehensive quarto markdown file structured as a professional business report. Your final rendered HTML should be a polished, client-ready document that Patrick can use to make decisions. Important: Your final rendered HTML should contain only your analysis and recommendationsāall challenge instructions, setup guides, and grading rubrics should be removed from the final report.
Render to HTML: You must render the quarto markdown file to HTML.
GitHub Repository: Create a repository named decAdvocacyChallenge in your GitHub account. Upload your rendered HTML files to this repository.
GitHub Pages Setup: The repository should be made the source of your GitHub Pages:
https://[your-username].github.io/decAdvocacyChallenge/Step 1: Create a new repository named decAdvocacyChallenge in your GitHub account by forking the starter repository at https://github.com/flyaflya/decAdvocacyChallenge.git
Step 2: Clone the repository locally using Cursor (or VS Code)
Step 3: The data file carsFixed.csv is already included in this repository. The code will load it from the local file.
Step 4: Youāre ready to start! Modify this index.qmd file and begin your analysis.
Benefits:
This is a report for Patrick, an auto-mechanic, not a statistics professor. Your job is to give him clear, actionable advice he can understand and use. Think of this as a brief consultation reportāsomething he can read in 5 minutes and immediately know what to do.
Report Format:
What makes a great report:
What weāre looking for: A report Patrick can read, understand, and act on. If heās confused or bored, youāve missed the mark.
Your report should answer these questions in a clear, concise way:
What does the data show?
What should Patrick do?
How confident can Patrick be?
What does the future look like?
Remember: Less is more. A focused, punchy report that Patrick can understand and act on is better than a long, complex analysis that confuses him.
pandas for data manipulationmatplotlib and seaborn for visualizationsnumpy for numerical calculations if neededscipy for statistical tests if helpfulThe data file carsFixed.csv is included in your repository. Load it using pandas:
import pandas as pd
carsDF = pd.read_csv("carsFixed.csv")Technical Requirements:
Report Quality Requirements: