Inspiration

  • Tariffs can move markets quickly, but the impact is hard to see sector by sector.
  • We wanted a live dashboard that explains which industries are most exposed to trade-war risk.

What it does

  • Tracks live sector ETF prices and percent changes.
  • Shows which sectors are winning or getting hit today.
  • Adds a tariff exposure score for each sector.
  • Compares today’s market pattern with the 2018 tariff period.
  • Uses macro indicators to show whether the economy is calm, stressed, or shocked.

How we built it

  • Built the frontend with Next.js and React.
  • Used Tailwind CSS for the Bloomberg-style dashboard UI.
  • Used FastAPI with yfinance for live and historical market data.
  • Used FRED data for macroeconomic indicators.
  • Stored cached snapshots in SQLite.

Challenges we ran into

  • Getting live market data to refresh during market hours.
  • Making dense financial cards readable without text overflow.
  • Combining real market data with a simple tariff-risk scoring model.
  • Keeping the dashboard fast while calling multiple live data sources.

Accomplishments that we're proud of

  • Built a real-time sector heat map using live market data.
  • Created a clear tariff exposure model that beginners can understand.
  • Added historical comparison against the 2018 tariff shock.
  • Made the dashboard demo-friendly and visually polished.

What we learned

  • Financial data needs careful caching and refresh logic.
  • Daily market candles are not enough for live dashboards.
  • Good visual design matters when explaining complex market signals.
  • Combining macro data with market data makes the story much stronger.

What's next for TariffPulse

  • Add news sentiment from tariff-related headlines.
  • Add alerts when a sector’s tariff risk spikes.
  • Improve the scoring model with more data sources.
  • Add company-level analysis inside each sector.
  • Deploy the app publicly with production data pipelines.

Built With

  • fastapi
  • fastapi-market-data-api:-yahoo-finance-via-yfinance-macro-data-api:-fred-api-database:-sqlite-charts/data-viz:-recharts-state-management:-zustand-runtime/tooling:-node.js
  • fred-api
  • javascript
  • next.js
  • node.js
  • npm
  • python
  • python-frontend:-next.js
  • react
  • recharts
  • sqlite
  • tailwind-css
  • tailwind-css-backend/api:-next.js-api-routes
  • typescript
  • uvicorn
  • uvicorn-development-platform:-cursor
  • yahoo-finance
  • yfinance
  • zustand
Share this project:

Updates