Liberation Day: A Data Story of Tariffs & Markets

TEAM

Independent Project

ROLE

Developer

TIMELINE

04/2025 - 05/2025
1 Month

SKILLS

Interactive InfoVis
JavaScript (D3.js)
Python (pandas)
Alpha Vantage API

CONTEXT

Interactive Information Visualization was one of my favorite classes at Cornell (so was Wines class!). We built with D3.js and explored how design and interaction change the way people understand data. It also introduced me to data journalism, a field that brought together my love for writing with data and design. For our final project, we were given an open-ended assignment: build an interactive article around a topic of our choice.


Choosing a Topic

Liberation Day had just happened, tariffs were everywhere in the news, and the stock market was reacting almost in real time. But for someone who didn’t closely follow trade policy or markets, the connection between a government announcement and a moving stock chart wasn’t necessarily obvious. That became the question behind my article:

What did investors know before April 2, and what was the market doing while they learned it?

Finding the Data

The story didn’t exist in one dataset, so I had to piece it together

  • Policy: I researched government releases and reporting across multiple news sources to reconstruct what was announced, when, and where.
  • Trade: I wanted US trade volume by country, but couldn’t find a clean dataset for it. Instead, I found import and export data and used the two together to represent each trade relationship.
  • Market: I used the Alpha Vantage API to pull historical prices for the funds I wanted to compare.

I cleaned and structured everything in Python with pandas, then passed static datasets into D3.js to build the article.

Displaying the Data

Choosing what to compare

I used sector funds to capture areas of the market with different connections to trade, production, supply chains, and consumer spending. I chose sectors that felt relevant to the story, while keeping the comparison broad enough to reflect more than what was happening at any one company.

Fund / ETFSectorRelevance
SPY S&P 500 Baseline for the broader market
SOXX Semiconductors Global supply chains centered in Asia
XLI Industrials Imported parts and global manufacturing
XLB Materials Raw inputs across supply chains
XLY Consumer Discretionary Spending more sensitive to higher prices
XLP Consumer Staples Essential spending as a defensive comparison

Choosing how to compare

A $600 fund and a $200 fund can’t be meaningfully compared by raw price. Instead, I rebased each fund to its own starting point and plotted the percentage change from there. This lets readers compare how much each fund moved relative to its starting point.

Intentional Interaction

Adding context without interrupting the story

Someone might understand the headline “Trump announces tariffs” without knowing what a reciprocal tariff, ETF, or USMCA is. Rather than adding a separate glossary, I embedded definitions directly into unfamiliar terms so readers could get context only when they needed it.

Letting tooltips follow the questions

I kept the interaction consistent while changing the information inside. As the article asks more specific questions, the tooltips provide more specific information.

Introducing the market gradually

Six funds at once made the market chart unnecessarily difficult to read. It instead begins with SPY, then introduces relevant sectors as they enter the story. Once readers have that context, all six funds become available to filter and compare.

  1. SPY
    APR 2 0% MAR 26 APR 8 SPY
  2. SPY + sectors
    APR 2 0% MAR 26 APR 8 XLI SOXX SPY
  3. SPY + sectors + controls
    APR 2 0% MAR 26 APR 8
Design System

Discovering data journalism also influenced how I wanted the project to feel. I was inspired by The New York Times Upshot, where visualizations feel like part of the journalism rather than separate analytical tools. I borrowed from that editorial language.

Typography

What was the market doing before Liberation Day?

A data story following trade policy from political headlines to the stock market

Cormorant Garamond for narrative
Fund change, March 26 to April 9
−20%0%+5%
System sans for data and labels
Core palette
  • Paper#F2F1EE
  • Ink#2B2A28
  • Muted#6B665E
  • Accent#B2182B
Market series
  • SPY#5C5A56
  • SOXX#7C5CBA
  • XLI#3474B8
  • XLB#2396B0
  • XLY#D89228
  • XLP#9A673A
Data UI
  • Vietnam Announced tariff 46%
    Tooltip
  • reciprocal tariff
    Glossary term
  • SOXX
    Filter
Takeaways

This project made me realize how much design and data analysis draw from the same ways of thinking. Both require making choices about what matters and how information should be understood.

I had to decide:

  • What makes a comparison fair?
  • What does someone need to understand first?
  • Who am I writing for, and what can I assume they already know?
  • When does interaction actually help?
  • When does more information just become more noise?

Data journalism brought those considerations together, using visualization, writing, and interactivity to shape how someone moves through a layered story.

Final Project Link

VIEW PROJECT