DD Equity Screener
Multi-dimensional NSE/BSE stock screening for analysts

- · The problem
- · The approach
- · Build highlights
The problem
Analysts were running screens in Excel against stale exports, or paying for screener tools that didn't cover Indian shareholding-pattern depth. We needed a screener that combined live market data, deep financial filters, and SHP signals in one composable interface.
The approach
Rather than bolt filters onto a static dataset, we designed the screener around a composable query engine from the ground up. The core idea was to treat every filter — whether financial, valuation, shareholding, liquidity, or price — as an independent predicate that could be layered with AND/OR logic without the analyst ever touching SQL.
On the backend, this meant a normalized data model fed by live market and fundamentals pipelines, with shareholding-pattern history captured at the depth Indian analysis actually requires. Query construction, pagination, sorting, and column selection were all pushed server-side, so the interface stays fast and stateless no matter how many matches a screen returns.
On the frontend, the priority was expressiveness without complexity: an analyst can express a multi-condition thesis in plain filter terms, save it, and let alerting surface new entrants and exits on each data refresh — turning a one-off screen into a standing signal.
Build highlights
- / 01
Financial-metric filters across income statement and balance sheet — revenue, PAT, EPS, EBITDA, operating margins, net margins, debt/equity, ROE, ROCE.
- / 02
Valuation filters across P/E, P/B, EV/EBITDA, P/S, dividend yield — supporting absolute thresholds and sector-relative screening.
- / 03
Shareholding-pattern filters: promoter holding, FII/DII ownership, public float, and period-over-period change — a key signal for governance and conviction.
- / 04
ADV/liquidity filters to exclude illiquid micro-caps or target a minimum tradeable volume — critical for institutional position sizing.
- / 05
Price filters: absolute range, 52-week-high/low proximity, % change over configurable windows (1w, 1m, 3m, 1y) for momentum and mean-reversion strategies.
- / 06
Composable multi-condition filter engine on the backend supporting AND/OR logic across filter groups — complex queries ("P/E < 15 AND ROE > 20% AND promoter > 50% AND ADV > ₹10Cr") with no SQL or code.
- / 07
Server-side pagination, dynamic column selection, multi-column sorting — surface and rank hundreds of matches without front-end data loads.
- / 08
Saved screeners with email + in-app alerts when new companies enter or exit the result set on fresh data updates.