Historical candle data not adjusted after corporate actions, prices show >20% single-day gaps

msethi006
Hi,

We are observing an issue where Zerodha's historical candle API (/api/historical/{instrument_token}/{interval}) returns unadjusted prices after corporate actions such as demergers and splits. The problem is that the adjustment is not applied retroactively to prior candles, resulting in apparent single-day price gaps that are impossible on the NSE (which enforces 20% upper/lower circuit limits for most stocks).

Examples from our data (NSE equities, day interval):

Symbol Date Prev close Close Apparent move Event
ABFRL 2025-05-22 ₹203.55 ₹89.85 −55.86% ABREL demerger
V2RETAIL 2026-03-25 ₹1,920.00 ₹196.30 −89.78% Suspected demerger
STLTECH 2025-04-24 ₹36.73 ₹65.05 +77.10% Corporate event
IEX 2025-07-24 ₹187.89 ₹132.32 −29.58% Corporate event
STAR 2024-12-06 ₹1,326.90 ₹682.55 −48.56% Corporate event



Steps to reproduce:

Fetch day-interval historical data for any of the above symbols covering the dates listed.
Compare consecutive daily closes; the gap on the listed date persists even after re-fetching the data days/weeks later.
Expected behaviour:
When a corporate action occurs, Zerodha is supposed to retroactively adjust all prior candles (back-adjust), so the price series is continuous and shows no artificial gap. This is the standard behaviour described in the Kite Connect documentation.

Actual behaviour:
The post-event candle shows the unadjusted new price, while all prior candles remain at the pre-event unadjusted price, creating a >20% apparent gap on the event date. Re-downloading the same symbol weeks later returns identical data; the adjustment is never applied.
Tagged:
Sign In or Register to comment.