tipsheet.markets
Market data to 30 Sept 2026 · Data status

Methods

Adjusted stock prices

Code: pipeline/tipsheet/compute/prices.py and compute/prices_qa.py.

Output: .cache/derived/equity_prices_adjusted.parquet (about 11.2 million rows: 5,535 companies, 7,934 sessions, 1994-11-03 to date).

This panel is not published directly. It is the input to stock breadth.

Sources

Method

  1. Stitch the eras. Where two series overlap, a fixed series priority decides which one is used (EQ first, then BE and the others).

  2. Turn each corporate action into a price factor. Splits, bonuses, consolidations, rights (at the theoretical ex-rights price) and demergers (from the price gap).

  3. Gate every factor on the price itself. A factor is applied only if the ex-date opening gap agrees with it within ×1.25.

    • stocks.events sometimes dates the ex-date a session early or late, so a rejected factor is re-tested on the next seven calendar days.
    • Factors that still fail are rejected and listed for review. These are mostly preference-share “bonuses”, such as TVS Motor’s 2025 4:1, where the price did not move.
  4. Infer actions the publisher missed. A split, bonus or consolidation is inferred from a clean price ratio (½, ⅓, 1:10 and so on) only when all of these hold:

    • the prior close is at least ₹10
    • the ratio is within 4% of a clean ratio (10% for ratios of ¼ or less, or 5× and more)
    • the new level holds for five sessions

    Ratios of 0.6–0.75 are never inferred, because a 25–40% fall can be real. They go to a review list instead.

  5. Clean zero prices. Zero open, high or low prices are treated as not reported. 1990s files print 0 when only a close was traded.

What we checked

Review lists

These are written to .cache/derived/ on every run:

FileWhat it holds
qa_price_jumps.csvOne-day moves too large to be ordinary trading
qa_candidate_bonus.csvPossible bonuses that were not inferred
qa_rejected_actions.csvPublisher factors that failed the price gate
qa_missing_sessions.csvSessions that appear to be missing

Known limits

This note is the repository file docs/methods/prices.md, rendered as-is.