Spyder: scrape, analyse,
validate.
Spyder aims to find patterns, strategies, and insights from data to provide an edge in investing, answering the two questions that matter: what stocks to buy, and when to buy them. The process starts with collecting the latest, accurate, and up-to-date data, analysing it to form a strategy, then testing and validating that strategy in the Sandbox before repeating the cycle.
- Storing 1.3M daily OHLCV records and 5 years of fundamentals across 500+ companies
- TTM-based valuations cached for responsive scoring, filtering, and backtesting
- Automated daily ingest keeps screens and valuations current after each market close

Django admin authentication, restricted to users with granted access.
A multi-factor scoring system scores companies against different criteria on the fly, weighing both latest and historical data with a decay rate. Selecting a financial year of a company will display the full income statement, cash flow, and balance sheet behind that score.

Cached intrinsic value calculations based on the latest TTM figures using DCF analysis, with trend analysis using SMA and EMA. A chart displays five years of technical data by default for an overview.
The screener can be wound back to any historical date to select stocks as they looked then and spin up a new backtest experiment. Saved experiments track CAGR, portfolio value, and realised and unrealised profit and loss, with day-by-day controls to step the simulation forward or back.
Tracks which of the 500+ companies have complete fundamental and technical data for each year, making gaps in the dataset easy to spot and backfill.

Django admin for managing companies, scoring configs, and the daily market data ingest jobs.