{"repo":"lseffer/stock_screener","free":true,"listed":false,"github":"https://github.com/lseffer/stock_screener","clone":"git clone https://github.com/lseffer/stock_screener.git","description":"Picking stocks through various screening methods. Focus on Northern Europe.","language":"Python","stars":142,"topics":["stock-screener","value-investing","python","finance","stock-market","stock-data"],"license":null,"category":"databases-storage","readme_excerpt":"Nordic Stock Screener A stock screener for Nordic exchanges (Stockholm, Copenhagen, Helsinki, Oslo), running as a weekly GitHub Actions job that produces a static website with an accompanying SQLite database. Live site: lseffer.github.io/stock screener Tech stack: Python 3.12 SQLite Polars React + TypeScript + TanStack Table Vite Screening methods: - Piotroski F-Score - Financial health evaluation (9 metrics, score 0-9) - Magic Formula - Quality + Value investing (ROIC x EV/EBITDA) - NCAV - Net Current Asset Value (Graham deep value) Architecture The screener runs as a scheduled GitHub Actions workflow that: 1. Discovers stock listings from Nordic exchanges via the yfinance screener API 2. Fetches financial data (prices, income statements, balance sheets, cash flows) via yfinance 3. Computes Piotroski F-Score and Magic Formula screening scores using Polars 4. Stores all data in a SQLite database (incremental — only updates stale records) 5. Generates a static website with the screening results 6. Deploys to GitHub Pages The workflow runs weekly (Saturday 06:00 UTC) and can be triggered manually. Local development Output: - site/ - Static website (HTML, CSS, JS, data.json) - site/stocks.db - SQLite database with all raw + computed data - stocks.db - Working database Frontend development Environment variables All optional: - STOCK SCREENER DB — SQLite path (default: stocks.db ) - STOCK SCREENER OUTPUT — site output dir (default: site ) Data sources All data is fetched via yfina","default_branch":null,"files":null,"tree":[],"storefront":"/r/lseffer","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/lseffer/stock_screener/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}