Business Intelligence with Power BI

P1 · Project 1

Project 1 — The Messy Inheritance

Format. Three weeks, solo. Submit P1_LastFirst.pbix plus a one-page data log (a page in any format listing every defect you found and what you did about it). Worth 10% of the course. Graded on the model, not visuals — Module 3 is where pages get pretty; this project proves the machine underneath.

Scenario

Juniper Junction, a five-store garden-center chain, has never had an analyst. You inherit their entire data estate as it actually exists: three quarterly sales exports someone saved from the register system, a product lookup re-exported by a manager ("might have glitched, not sure"), a member list maintained by hand since 2022, and finance's budget grid. Nobody can tell you what is wrong with these files. That is the project.

The estate

FileWhat it claims to be
sales_Q1_2026.csv · Q2 · Q3Register tickets, one row per line item
product_lookup.csvThe SKU catalog with categories, costs, prices
members.csvThe loyalty-member list
budget_2026.csvStore × month revenue budget, January–September
stores.csvThe five stores (this one is actually clean)

Deliverables

  1. One combined sales fact named Sales 2026 covering all three quarters — with a single, correctly-typed Quantity column. (Look at Q3's headers before you append. Look carefully.)
  2. Clean dimensions: products (the lookup has a re-export problem — profile the key before you merge or relate anything), members (hand-maintained files have hand-maintained diseases; find them all), stores as-is.
  3. The budget unpivoted to a tall Store × Month × Budget table and joined to the model — which means your model needs a date spine. Build one.
  4. A star: sales and budget as facts, products / members / stores / dates as dimensions, every relationship many-to-one and single-direction, no fact-to-fact lines.
  5. Four measures (exact names): Total Revenue (quantity × unit price — check: $2,057,284.88 for Jan–Sep), Ticket Count (distinct: 10,193), Budget, and Budget Attainment % (DIVIDE, measure references).
  6. The data log: every defect, its evidence (the count that exposed it), and the fix. The known defects have exact counts — your log should have exact counts too.

Scoring (100 points)

ComponentPoints
Sales fact: 10,193 rows, one Quantity column, correct types, all quarters present20
Products: duplicate keys found and removed (row count proves it); members deduped and trimmed; dates parsed20
Budget: unpivoted to 45 rows, typed, joined through the date spine15
Star: correct relationships, no many-to-many accepted anywhere15
Measures: names and verified values15
Data log: complete, evidenced, professional15
One number to fear If your sales fact has more than 10,193 rows after the product merge — or your revenue exceeds $2,057,284.88 — you accepted the multiplying merge. You know the ten-second check that would have caught it. The rubric knows it too.
On the data log The log is where this project stops being an exercise. "Removed duplicates" is a claim; "product_lookup.csv contained 48 rows but 45 distinct SKUs — three re-exported duplicates removed before relating, verified 45=45" is evidence. Write the log you would want to inherit.