Skip to content

Week 01 Assignment — Analytics Foundations

A graded, end-to-end assignment covering everything from Week 01: SQL, Python, Pandas, data cleaning, EDA, visualisation, and statistics. This is your chance to prove you can take raw data and turn it into insight.

Time budget: 6-8 hours Submission: A Jupyter notebook (.ipynb) + a one-page written summary (PDF or Markdown) Weighting: 40% of the course grade


The Brief

You're a newly hired data analyst at BrightCart, an online grocery retailer. The head of operations hands you a raw export of last quarter's orders and says:

"We think something changed in our business last quarter, but we can't put our finger on it. Take this data, clean it up, find out what's going on, and tell me three things I should know. You've got until Friday."

That's it. No further direction. Welcome to real analytics work.


Dataset

Use any of these (pick one, or use your own with instructor approval):

  • Brazilian E-Commerce (Olist) — Kaggle, realistic and messy
  • Online Retail II — UCI ML Repository, UK retailer transactions
  • Superstore Sales — classic Tableau sample dataset

Download link and column descriptions should be documented in your submission.


Required Tasks

Part 1 — Data Cleaning (20 points)

  • [ ] Load the data and produce a data quality audit (shape, dtypes, missing values, duplicates)
  • [ ] Handle missing values with a documented strategy (explain your choices)
  • [ ] Fix data types (dates, numbers stored as strings, etc.)
  • [ ] Detect and handle duplicates
  • [ ] Identify outliers and decide how to treat them (with justification)
  • [ ] Produce a clean dataset and document every cleaning decision

Part 2 — SQL Analysis (20 points)

Load the clean data into a SQL database and answer with queries:

  • [ ] Total revenue, order count, and unique customers for the period
  • [ ] Top 10 products by revenue
  • [ ] Revenue by month, with month-over-month growth
  • [ ] Customer segmentation: how many one-time vs repeat customers?
  • [ ] One window function query (e.g., running total or rank within category)

Include the query AND the result for each.

Part 3 — Exploratory Data Analysis (20 points)

  • [ ] Univariate analysis of at least 3 key variables (with charts)
  • [ ] Bivariate analysis: find at least 2 interesting relationships
  • [ ] A time-series trend analysis with a moving average
  • [ ] A correlation analysis with interpretation
  • [ ] Document at least one surprising or non-obvious finding

Part 4 — Visualisation (20 points)

  • [ ] Build a clean, multi-panel dashboard figure (matplotlib/seaborn)
  • [ ] Every chart must have: descriptive title, axis labels, appropriate chart type
  • [ ] Apply at least one annotation highlighting a key insight
  • [ ] Demonstrate good design (no chart junk, intentional colour, zero-based axes)

Part 5 — Statistics (10 points)

  • [ ] Report mean AND median for a key metric, and explain any difference
  • [ ] Calculate a confidence interval for one metric
  • [ ] Run one hypothesis test (t-test) comparing two groups, and interpret the p-value

Part 6 — Communication (10 points)

  • [ ] A one-page written summary aimed at the head of operations (non-technical)
  • [ ] Structure: situation → 3 key findings → 3 recommendations
  • [ ] Each recommendation must be specific and tied to a finding
  • [ ] No jargon — explain like you're talking to a smart person who doesn't know statistics

Grading Rubric

Criterion Excellent Good Needs Work
Code quality Clean, commented, reproducible Works, some comments Hard to follow
Cleaning decisions Justified and documented Mostly documented Undocumented
Analysis depth Goes beyond the obvious Covers requirements Surface-level
Visualisation Publication-quality Clear and correct Default styling, unlabelled
Communication Insight-driven, jargon-free Clear Technical dump
Findings Actionable and specific Reasonable Vague

Tips

Start with the question, not the data

Re-read the brief. The operations head wants to know "what changed." Frame your whole analysis around finding the change — don't just produce summary statistics.

Don't skip the written summary

The single biggest differentiator between junior and senior analysts is communication. A perfect analysis nobody can understand is worthless. Spend real time on Part 6.

Reproducibility matters

Your notebook should run top to bottom without errors on a fresh kernel. Use relative file paths. Restart and Run All before submitting.


Submission Checklist

  • [ ] Jupyter notebook runs top-to-bottom without errors
  • [ ] All 6 parts completed
  • [ ] Clean dataset saved and referenced
  • [ ] One-page written summary included
  • [ ] Charts have titles and labels
  • [ ] Cleaning decisions documented
  • [ ] File paths are relative (not C:\Users\...)

← Practice Platforms · Next: Week 02 Assignment →