1. Named-anomaly-first selection

Every hypothesis is drawn from published research, not invented after looking at the data.

2. Freeze before test

Pass/fail thresholds are written down and committed to a version-controlled record before the test is run. Nothing is adjusted afterward.

3. Statistical treatment

Significance testing corrected for autocorrelation in the return series (HAC standard errors), with a fixed lag structure set before testing. Results are further corrected for testing many hypotheses at once (Bonferroni/Benjamini-Hochberg), since testing enough ideas will eventually produce a "significant" result by chance alone.

4. Held-out testing

Hypotheses are evaluated against a test window the method has never seen, separated from the training period by a deliberate embargo gap to reduce lookahead leakage.

5. Realistic costs

Every candidate is evaluated against a ground-up transaction cost model built from actual Indian brokerage, exchange, and statutory charges at the project's real capital scale — not an assumed or industry-average number.

6. Tradeability constraints

Position sizing respects real liquidity limits (a cap on participation rate relative to daily traded volume, and exclusion of the least liquid names), and portfolio construction (a fixed 12-position size) is derived from an actual correlation analysis of the universe, not an assumed round number.

7. One test, once

Each hypothesis is tested exactly once against its frozen criteria. A failed test is not reformulated and re-run — that would no longer be a test of the original hypothesis.