Methodology
Auditable by design.
How our backtests work, what we assume — and what we don't hide.
Point-in-time correctness
On a March 2020 rebalance, the engine sees only data filed before March 2020 — never restated figures from today.
Every fundamental metric is sourced as it was available at the time of rebalancing, not as it appears today after restatements. We anchor on the filing_date — the date the company filed with the exchange — rather than the period_end date. This prevents look-ahead bias.
Data universe
We cover NSE-listed equities from the Nifty 500 index. Fundamental data (P&L, balance sheet, cash flow, shareholding) comes from an institutional-grade provider with history back to 2010. Price data includes corporate-action adjustments for splits and dividends.
Survivorship bias
Our current universe is built from the current Nifty 500 composition, which introduces survivorship bias — stocks that were delisted, merged, or dropped from the index aren't included. This can slightly overstate returns for strategies that would have held such stocks. We flag it as a known limitation and plan to address it with full historical index membership in a future release.
Corporate actions
Price series are back-adjusted for stock splits and dividends using the standard method, so the equity curve reflects total returns (price + dividend reinvestment) rather than price-only returns.
Transaction costs
A configurable transaction cost (default 0.10% per leg) is applied at each rebalance. The first rebalance charges only an entry cost (1×); every subsequent rebalance charges both an exit and an entry cost (2×). This approximates typical NSE brokerage and STT for retail investors.
Known limitations
- Q1/Q3 balance sheet data: treated as missing and not used.
- TTM calculations: require all four preceding quarters; partial data is reported as unavailable, never estimated.
- Shareholding data: may be unavailable for older periods.
- Universe size: the current cache covers ~50 Nifty 500 stocks; screens resolving to fewer than 5 stocks should be read with caution.
Backtest assumptions
- Equal weighting of all selected stocks at each rebalance.
- End-of-day execution at the closing price on the rebalance date.
- No slippage beyond the configurable transaction cost.
- No leverage — the portfolio is always fully invested.
- Rebalance frequency of monthly, quarterly, or yearly.
