Jamie Software Lab
Projects / Market Snapshot
Python Automation Finance Scheduling

Market Snapshot

A daily pipeline that fetches yesterday’s high and low for any ticker, stores the results, and publishes a web view plus a reusable JSON output.

Status Active
Runs Daily
Output Web + JSON
Source yfinance

Demo

This section is designed to show output first, then explain.

CSCO : current price (live)
-
Connecting…
Ticker
CSCO
Day high
-
Day low
-
Previous close
-

What it solves

Clear outcomes, no marketing language.

  • Fetches consistent market data on a schedule with zero manual effort.
  • Stores results so you can compare days and audit changes.
  • Publishes outputs in formats that other tools can reuse.

How it works

A simple pipeline, intentionally boring.

Snapshot script
CLI command fetches the last trading day's high/low from yfinance.
JSON file
Atomic write to a static JSON artifact with ticker, date, high, and low.
Live API
Flask service on Hetzner serves real-time quotes with a 15-second cache.
Frontend
Polls the API every 10 seconds; falls back to static JSON if offline.

Decisions

The tradeoffs that make this maintainable.

Live API with static fallback
The page polls a Flask API for real-time prices but degrades gracefully to pre-generated JSON when the API is unreachable.
yfinance, no API key
yfinance is free and keyless. A 15-second in-memory cache avoids rate limits while keeping data fresh enough for a portfolio demo.
JSON everywhere
Both the static snapshot and live API return JSON, so any tool can consume the data without scraping HTML.

Next steps

Planned improvements, kept realistic.

  • Add watchlists with multiple tickers and a combined dashboard page.
  • Alert rules (email or webhook) for unusual moves.
  • Basic tests for date handling and data integrity.