Skip to main content
← All Systems

System

Equity Factor Engine

Scores 5,500+ equities daily through a composite factor model with real-time portfolio strategy simulation and regime-aware allocation.

Next.jsTypeScriptPostgreSQLPrismaTradingView ChartsInngestOpenAI APIVercel
Equity factor engine interface showing stock rankings with composite scores, sector ETF performance, and multi-factor analysis columns
01

Problem

Most accessible screening tools offer static filters without real analytical depth. Consensus estimates are slow-moving, and the gap between institutional-grade quantitative research and what is available to smaller teams remains wide. The objective was to build a system that combines fundamental, growth, and technical signals into a single composite framework, updated daily and filterable in real time.

02

Approach

Constructed a three-factor scoring model that calculates z-scores across value, growth, and technical dimensions for every stock in the universe. Scores are computed dynamically at query time using PostgreSQL window functions, allowing users to toggle between industry-relative, sector-relative, and market-wide comparisons instantly. Added layers for relative strength rankings, earnings quality, capital discipline, and pivot-based risk/reward analysis. The scoring engine feeds into multiple portfolio strategies, each with historical tracking, daily rotation logs, and backtest analytics.

03

Result

The system processes the full equity universe nightly through an automated pipeline, serves real-time rankings with sub-500ms query times, and runs four distinct portfolio strategies with out-of-sample performance tracking. It replaced a collection of spreadsheets and manual workflows with a single research environment that handles data ingestion, factor scoring, and presentation end to end.

04

What I Learned

The scoring model itself was the easier part. The real complexity was in the data pipeline, handling corporate actions, rate limits, stale data detection, and making the nightly ingestion resilient enough to run unattended. Event-driven architecture, using small chained jobs instead of one long process, was the key to reliability at scale.