Project Charta
1 Context and Scope
Gold has been called a safe haven for centuries — when inflation rises, the advice is always the same: buy gold, protect your wealth. That narrative got louder in 2024–2025 when the gold price broke $3,000 per ounce for the first time, right after the 2022–2023 inflation wave. But most “gold is safe” analyses only look at price charts. What actually happens to physical gold trade flows when inflation rises? Do high-inflation countries import more gold? Does the mix between gold, silver, and platinum shift during economic stress?
Switzerland makes this particularly interesting: around 70% of the world’s refined gold passes through Swiss refineries, despite Switzerland having no gold mines of its own.
The project addresses these questions:
- Where does gold flow during high-inflation periods, and do those flows change direction?
- Do countries with higher inflation consistently import more gold — by weight and by value?
- Is gold special among precious metals, or do silver and platinum show the same patterns?
- What role does Switzerland play as a refining hub, and does it grow stronger during global economic stress?
- Which type of inflation — food, energy, or core CPI — has the strongest link to gold trade activity?
The final product will be an interactive scrollytelling website created with streamlit.
2 Project Objectives and Success Criteria
Enable users to explore how precious metals trade is distributed across countries, commodity types, and time periods.
Enable users to assess the relationship between a country’s inflation rate and its gold import activity.
Enable users to compare gold, silver, and platinum as traded commodities during inflationary periods.
Deliver a coherent data story with a clear narrative arc — not just a set of charts, but a guided journey with a beginning, rising tension, and a conclusion.
Ensure full reproducibility from the GitHub repository using Quarto.
2.1 Success Criteria
| Criterion | Minimum |
|---|---|
| Chart variety | ≥ 4 chart types |
| Interactivity | ≥ 2 interactive elements |
| Dataset size | ≥ 500 rows combined |
| Variable balance | ≥ 3 categorical + 3 numerical |
| Narrative chapters | ≥ 3 chapters with transitions |
| Reproducibility | Runs from repo following setup instructions |
| Presentation | Within ±2 min of 10-minute limit |
2.2 Out of Scope
Price prediction, investment advice, real-time data, and individual investor analysis are all out of scope. This is a historical, country-level analysis — not a forecasting or recommendation tool.
3 Stakeholder Analysis
The VDSS instructors are the primary client and assessor — they set the evaluation criteria, run coaching sessions, and assign the grade. The project team of three is responsible for all deliverables while running this alongside seven other modules. ZHAW peers attend the final presentation but have no influence on the grade. After publication, the website may attract a broader audience of finance-curious individuals and professionals, though they have no active role in the project.
In terms of influence and interest: the team sits highest on both axes since they do all the work and care most about the outcome. The instructors have high influence but are more distant from day-to-day decisions. Peers and the general public are low influence across the board.
4 User Analysis
4.1 Persona 1 — Lena Meier (24), Finance-Curious Student
Lena is a 3rd-semester Business Informatics student at ZHAW. She has CHF 5,000 to invest and keeps hearing from friends that gold is “the safest option” — but she’s not sure whether to trust that. She has no formal finance training, reads basic charts fine but struggles with scatter plots and correlations, and uses her iPhone 14 as her primary device. She’d visit the website once or twice, explore a bit, maybe share something.
Jobs: understand whether gold is a sensible investment for someone without much capital; be able to talk about it with friends using real data; feel confident she’s making an informed decision rather than just following social media.
Pains: financial articles are full of jargon; professional tools like Bloomberg feel overwhelming; she can’t tell neutral analysis from gold seller marketing; charts she finds online are static and don’t let her filter for her own country.
Gains: a clear visual answer written for non-experts; interactive features she can explore at her own pace; a concrete verdict at the end she can actually remember.
4.2 Persona 2 — Thomas Brunner (52), Independent Financial Advisor
Thomas runs his own wealth advisory practice in Zürich. He has 20+ years of experience and has recommended a 5–10% gold allocation to clients for years — but he wants neutral, data-backed evidence to support that, not ETF brochures. He reads NZZ and Bloomberg daily, is comfortable with complex charts, and works desktop-first with PowerPoint for client presentations.
Jobs: find country-level evidence that gold acts as an inflation hedge; extract specific numbers for client slides; show clients something credible and neutral.
Pains: ETF marketing material is too biased to use with clients; academic papers are full of regression tables clients can’t follow; most online visualizations are either too simple or too overwhelming; country-level trade flow data is hard to find.
Gains: well-designed neutral charts he can screenshot into PowerPoint; a country filter to highlight markets his clients care about; clear information about data sources so he can answer methodology questions on the spot.
5 Situation Assessment
5.1 Data
Dataset 1 — UN Global Commodity Trade Statistics (Kaggle): ~8.2M rows total, filtered to precious metals (HS codes 7106–7112) gives roughly 10,000–50,000 rows. Period: 1988–2016. Key variables: country, commodity, flow direction (import/export), trade value in USD, weight in kg, year.
Dataset 2 — World Bank Global Inflation Database (Ha, Kose & Ohnsorge, 2023): ~50,000 rows after reshaping (209 countries × 6 inflation types × 55 years). Period: 1970–2025. Key variables: country, country code, inflation type (Headline CPI, Food CPI, Energy CPI, Core CPI, PPI, GDP Deflator), economy type (Advanced / Emerging / Low-Income), year, inflation rate.
The combined dataset joined on country and year will have 6 categorical and 4 numerical variables — well above the course minimums.
5.2 Team and Tools
Three team members, each contributing roughly 4–6 hours per week over ~10 weeks. Tools: Python (Pandas, NumPy) for data processing, Quarto for the website, Plotly and Streamlit for charts and GitHub for version control and deployment.
5.3 Constraints and Risks
The project runs alongside 7 other modules, so available time per person is limited. The UN trade data ends in 2016, which means the 2022–2023 inflation spike can’t be analyzed through trade flows. Any non-standard tools beyond what was introduced in lectures need justification.
| Risk | Likelihood | Mitigation |
|---|---|---|
| UN dataset too large to process locally | Medium | Filter to precious metals HS codes immediately; use chunked Pandas reading if needed |
| Country name mismatches between datasets | High | Join on ISO-3166 codes, not names; build a manual mapping table early |
| Scrollytelling harder to implement than expected | Medium | Fallback: standard Quarto site with static Plotly charts — still meets all requirements |
| Time pressure from parallel modules | High | Buffer week at end of schedule; cut nice-to-haves before cutting core visualizations |
| Uneven work distribution | Low | Clear roles from week 1; transparent commit history on GitHub |
6 Visualization Concept
The product is an interactive scrollytelling website, a long-form data story where visualizations appear as the user scrolls. We chose this format over a dashboard because it guides users through one insight at a time and creates a clear narrative arc.
Introduction
Three animated key metrics count up on scroll: the record gold price ($3,000/oz), the peak inflation rate from the 2022–23 wave, and total precious metals trade volume in the dataset. No chart yet, just numbers big enough to set the scale before the analysis begins.
Where Does Gold Flow?
A choropleth world map with a light-to-dark gold color scale shows trade volume by country. Most people assume gold moves from mines to banks. The map immediately reveals something stranger: Switzerland, with zero gold mines, lights up as one of the world’s dominant gold hubs. Users can filter by country and hover for exact trade values.
When Inflation Strikes
A scatter plot (x: inflation rate, y: gold imports on a log scale, color: economy type) tests the central hypothesis directly. The log scale prevents large economies from swamping the pattern; a trend line gives the at-a-glance answer. An annotated line chart of gold trade volume over time runs alongside it, with events like the 2008 financial crisis marked directly on the chart.
Gold vs. Silver vs. Platinum
A grouped bar chart compares trade volumes for all three metals across years. A toggle between absolute values and percentage shares lets users switch between scale and composition. The question: is gold special, or do all precious metals move together during economic stress?
The Swiss Connection
A Sankey flow diagram shows raw gold flowing into Switzerland from mining nations and refined gold flowing out to demand centers, with flow widths encoding trade volume. Around 70% of the world’s refined gold passes through Swiss refineries; the Sankey makes that number physical rather than abstract.
The Verdict
Three to four large summary metric cards answer the research questions directly. No new charts, just the clearest possible summary of what the data showed. Skimmers get their conclusion; the previous chapters back it up.
7 Project Plan
| Task | Who | By |
|---|---|---|
| Download UN Trade Dataset from Kaggle (1.2 GB) and save locally | Vale | 10.04.26 |
| Download World Bank Inflation Excel and push to repo | Aisosa | 10.04.26 |
| Filter UN data to precious metals (HS codes containing "gold", "silver", "platinum"), save as CSV | Vale | 11.04.26 |
| Reshape inflation data from wide to long with pd.melt(), save as CSV | Aisosa | 11.04.26 |
| Background research: 2 articles on gold as investment + Switzerland as refining hub, note key facts | Thivi | 12.04.26 |
| Background research: 2 articles on 2022–23 inflation wave + central banks and gold | Vale | 12.04.26 |
| Background research: 2 articles on geopolitics + gold, BRICS vs. dollar | Aisosa | 12.04.26 |
| Meeting: share research findings, identify top-10 gold trading countries, confirm chapter assignments | All | 13.04.26 |
| Task | Who | By |
|---|---|---|
| Build ISO-3166 country code mapping (which names match, which need manual fixes) | Thivi | 15.04.26 |
| Join both datasets on country code + year, save combined CSV | Vale | 16.04.26 |
| Data quality check: missing values, outliers, plausibility | Aisosa | 16.04.26 |
| First exploratory chart: choropleth world map (gold trade per country) in Plotly | Vale | 18.04.26 |
| First exploratory chart: bar chart (gold vs. silver vs. platinum total volume) in Plotly | Aisosa | 18.04.26 |
| First exploratory chart: line chart (gold trade over time) in Plotly | Thivi | 18.04.26 |
| Align on story arc: 5 chapters with core questions and transitions | All | 18.04.26 |
| Start data report: document data sources and cleaning steps | Thivi | 20.04.26 |
| Review meeting: discuss first charts, give feedback | All | 20.04.26 |
| Task | Who | By |
|---|---|---|
| Ch. 1 "Where Does Gold Flow?" — aggregate data, build choropleth, write context text + insight box | Vale | 24.04.26 |
| Ch. 2 "When Inflation Strikes" — prep data, build scatter plot with trend line, write text + insight | Vale | 27.04.26 |
| Ch. 3 "Gold vs. Silver vs. Platinum" — pivot data, build grouped bar chart, write text + insight | Aisosa | 24.04.26 |
| Ch. 4 "The Swiss Connection" — extract Switzerland trade partners, build Sankey, write text + insight | Aisosa | 27.04.26 |
| Intro — animated key metrics (gold price record, inflation peak, trade volume), write hero text | Thivi | 24.04.26 |
| Ch. 5 "The Verdict" — calculate summary numbers, build metric cards, write conclusion text | Thivi | 27.04.26 |
| Code review: each person reviews the other two's chapters, leave feedback on GitHub | All | 27.04.26 |
| Task | Who | By |
|---|---|---|
| Set up app.py base structure (navigation, page layout, styling/theme) | Aisosa | 30.04.26 |
| Integrate chapters 1 + 2 into Streamlit (embed charts, add filters/sliders) | Vale | 02.05.26 |
| Integrate chapters 3 + 4 into Streamlit (embed charts, add toggles/filters) | Aisosa | 02.05.26 |
| Integrate intro + chapter 5 into Streamlit (metric cards, conclusion section) | Thivi | 02.05.26 |
| Write requirements.txt and README with setup instructions | Vale | 03.05.26 |
| Deploy app to Streamlit Cloud and test together | Aisosa | 04.05.26 |
| Proofread all texts and insight boxes in the app | Thivi | 04.05.26 |
| Task | Who | By |
|---|---|---|
| Fix bugs in chapters 1 + 2, check colors and tooltips | Vale | 07.05.26 |
| Fix bugs in chapters 3 + 4, test responsive design | Aisosa | 07.05.26 |
| Fix bugs in intro + chapter 5, optimize load time | Thivi | 07.05.26 |
| Comment and clean up code (own chapters) | All | 09.05.26 |
| Finalize data report: Vale writes ch. 1+2, Aisosa ch. 3+4, Thivi ch. 5+intro | All | 09.05.26 |
| Finalize project charter and check on GitHub Pages | Thivi | 09.05.26 |
| Coaching session: get feedback from instructors | All | 11.05.26 |
| Task | Who | By |
|---|---|---|
| Slides: intro + research questions + data sources (slides 1–5) | Thivi | 14.05.26 |
| Slides: live demo prep chapters 1–2 (slides 6–8) | Vale | 14.05.26 |
| Slides: live demo prep chapters 3–4 + conclusion (slides 9–12) | Aisosa | 14.05.26 |
| Rehearsal 1: full run-through, time it | All | 16.05.26 |
| Rehearsal 2: incorporate feedback, run again | All | 17.05.26 |
| Prepare answers to likely instructor questions (each person covers their own chapters) | All | 18.05.26 |
| Task | Who | By |
|---|---|---|
| Final app test: click through all chapters, check all filters | Aisosa | 19.05.26 |
| Clean up GitHub repo (.gitignore, no tmp files, folder structure tidy) | Vale | 19.05.26 |
| Checklist: app URL, repo link, GitHub Pages docs, slides — everything there? | Thivi | 20.05.26 |
| Moodle submission: all three confirm | All | 20.05.26 |
8 Roles and Contact Details
Valentin Schwarz — Data Engineering
Owns the UN trade data pipeline: download, filter to precious metals HS codes, join with inflation data, and save combined CSV. Maintains pyproject.toml, README, and repo structure.
Contact: vschwarz@ik.me
Aisosa Omokaro — App Infrastructure
Owns the World Bank inflation data: download, reshape from wide to long, and run data quality checks. Sets up the Streamlit app base structure and handles deployment to Streamlit Cloud.
Contact: aisosashina@gmail.com
Thiveja Thirukumar — Documentation
Leads background research and builds the ISO-3166 country code mapping. Manages the data report, proofreads all narrative texts and insight boxes, finalizes the project charter, and coordinates the submission checklist.
Contact: thiveja.thirukumar@gmail.com