Ticker Packet structure in your live market feed — Last Trade Time (LTT) field

Greetings!

I’d like to get some clarity regarding the Ticker Packet structure in your live market feed — specifically the Last Trade Time (LTT) field.

According to your documentation, the LTT field (bytes 13–16) is an epoch timestamp. However, during testing, it is observed that the timestamp values appear to represent IST-based epochs instead of UTC epochs.

When converted assuming UTC, the tick times show a consistent +5 hours 30 minutes offset compared to actual market time. To correct this, we currently adjust by -19800 seconds (5.5 hours).

eg below

    #----------------------------------------------------------#
    # 4️⃣  Update LTP and timestamp
    #----------------------------------------------------------#
    prev_ltp = LTP_subscribed_instruments[security_id]['LTP']
    LTP_subscribed_instruments[security_id]['LTP'] = float(ltp_value)
    LTP_subscribed_instruments[security_id]['timestamp'] = int(tick_ts) if tick_ts else None

    display_name = security_id_to_name.get(security_id, 'Unknown')

    # Log updates (only when value changes)
    if prev_ltp != ltp_value:
        ts_str = datetime.fromtimestamp(int(tick_ts) - 19800, kolkata_tz).strftime('%Y-%m-%d %H:%M:%S')
        logging.debug(
            "Updated LTP for %s (%s): %.2f | ts=%s | type=%s",
            security_id, display_name, float(ltp_value), ts_str, tick_type
        )

    #----------------------------------------------------------#
    # 5️⃣  Notify monitor task if tracked instrument
    #----------------------------------------------------------#
    if security_id == int(security_id_tracked):
        async with ltp_update_condition:
            ltp_update_condition.notify_all()
        ts_str = datetime.fromtimestamp(int(tick_ts) - 19800, kolkata_tz).strftime('%Y-%m-%d %H:%M:%S')
        logging.debug(
            "📡 Tracked instrument tick → Notified monitor_tracked_instrument() | "
            "SEC_ID=%s (%s) | LTP=%.2f | ts=%s",
            security_id, display_name, float(ltp_value), ts_str
        )

Could you please confirm: whether the LTT field is intended to be a UTC epoch or an IST-based epoch

In the above case I am just logging the data… But I need to use LTT for end candle calculations and deciding on entry and exit conditions.

If you could clarify on the same, it would be really useful

Best regards,