There seems to be wrong in the data being streamed in the websocket market live feed, in today’s Nifty50 options data for expiry (2025-09-23 & 2025-09-30), the LTT is not in millisecond. Due to this, the LTP remained same and did not update for all the ticks at the second boundary. PSB:
Looks like LTT, VTT are only updating at second boundary, whereas I see there are three ticks (or trades) at 09:15:07’th second. the uts (a.k.a currentTs from the payload is in ms).
Can the team please take a look? Or is there any change in streaming behaviour (viz., the data feed from the source like NSE is changed from TickByTick to Second granularity), can you please update us?
Hi @lokesh_41082232, The streaming behavior remains unchanged — the LTT (Last Traded Timestamp) comes directly from the exchange, and we relay it as-is to users. For indexing purposes, you may use currentTs if that works better.
Thanks for your reply and confirmation of the behaviour. I’m aware of the currentTs and using the same for all my indexing/calculation purposes. BTW, was there any circular from exchange that they would be discontinue ms granularity for LTT? or is it something that Upstox is streaming from data vendors?
Also, I still see Sensex LTT is streamed at ms granularity, and I also noticed a potential issue with pictures when we receive the websocket data particularly sensex data, I described in the below threads, please do take a look.
Happy to see that today’s data is quite consistent and correct. Wondering what is changed today to get LTT in ms?
Anyway, I observe another issue as below:
The green ones are valid and correct. (Nifty & BankNifty strikes take around 200-400ms processing [i.e., currentTs - ltt] at server end once server receive feed from the exchange, whereas Sensex strikes sometimes take upto 800ms to process)
The orange ones are problematic ones, why are we streaming same tick data when there is no change in ltt, volume and ltp? only currentTs is getting changed. Looks like a bug, take a look at it please.
Hey @lokesh_41082232 ,
Apart from feed packets like ltt, volume and ltp which updates when the trade happens, there are other types of updates like market depth, circuit limits (DPR), limit protection prices (LPP), etc which keeps coming from exchange, these updates simply keeps updating the currentTs in the market feed object without changing the LTT. Also if a user has subscribed for market data we ensure that the fresh packet keeps streaming to the end users even though the trading did not happen but depth of DPR can change at any point of time. I hope this clarifies your doubt.
I get what you are saying. Thanks for your reply. Could you also look at this problem, this seems to be weird (i.e., currentTs cannot carry previous ltt, kind of jumbled up when multiple ticks in a second, I’ve depicted with a picture too), this is primarily observed in Sensex options data.
Hey @lokesh_41082232 We checked this internally and found out that we are also facing the same issue from BSE side, Although it happens mostly on expiry days but we have seen this issue on usual non expiry days also, have raised this with exchange without any response. Let us know if u face this with other segments.
Thanks for the prompt reply . I’ll let you know if there are any issues in other segments, but I’m currently monitoring FO segment and found this observation in BSE_FO.