The Brief
Amina Msangi runs Soma Books, a chain of three bookstores in Dar es Salaam, Tanzania. Eighteen employees, curated local and international titles, stationery, and a small cafe in each location. School partnerships bring bulk orders in January and September.
Amina has 18 months of POS data -- every transaction across all three stores. About 42,000 rows. She gets weekly summary reports from her managers but they only show totals. She wants to click on a store and see the breakdown herself. Drill into categories. Compare locations. Spot trends.
There is a second audience. Her three store managers need to check their own numbers without calling Amina. The Oyster Bay manager knows what to look for. The Kariakoo manager does not.
Your Role
You're building Amina's interactive dashboards. Two tools this time: plotly for interactive charts in Jupyter, and Metabase for the persistent dashboards her team visits daily. The choice between them is about who sees the output and how.
You're also designing for two audiences from the same data. Amina gets an exploratory dashboard where she controls the drill-downs. Her managers get a guided view where the questions are already set up. That second design is the harder problem.
Before building, you plan the analytical sequence and tell AI what to do in what order. Context curation enters -- when a session juggles metric definitions, data quality rules, and dashboard configuration at the same time, you decide what AI needs for each piece of work.
What's New
Last time, you built a Metabase dashboard with information hierarchy, accessibility features, and automated metric validation for Diego's gym chain. You designed for where the primary KPI sits, who can read the colours, and whether the layout survives a new location opening.
This time, the dashboard is interactive. Clicking a bar should answer a follow-up question. A filter that produces an empty result with no explanation breaks a promise. And the audience splits: one dashboard for someone who explores data fluently, another for someone who needs the questions already answered.
plotly is new. Plan mode is new. Both enter in the first build unit.
The hard part is the dual-audience design. A drill-down that works for Amina overwhelms a store manager who does not know what to click.
Tools
- Python 3.11+ (via Miniconda, "analytics" environment)
- DuckDB
- Jupyter Notebook
- pandas
- plotly (new -- interactive visualisations)
- Metabase (via Docker -- continuing from P3/P4)
- Docker
- Claude Code (plan mode introduced)
- Git / GitHub
Materials
- POS data export -- a single CSV covering three stores, 18 months of transactions across books, stationery, and cafe items.
- Data dictionary -- column definitions and business terminology for the POS export.
- Interactive dashboard design guide -- interaction paths, self-service patterns, minimum-data-point thresholds, guided versus exploratory design.
- CLAUDE.md -- project governance file with client context, work breakdown, and verification targets.