Dear Upstox Technical Support Team,
I am observing a consistent mismatch between the expiry date embedded in option symbols and the actual contract expiry date.
Examples from my system:
-
TCS26JAN3140CE→ shown symbol date is 26 JAN, but the actual expiry is 27 JAN -
BRITANNIA26JAN6050CE→ shown symbol date is 26 JAN, but the actual expiry is 27 JAN
This creates confusion and breaks any system logic that relies on symbol parsing for expiry validation, logging, or cross-verification. The symbol format strongly implies that the embedded date represents the contract expiry, but in these cases it does not match the real expiry.
I would like clarification on the following:
-
Why does the symbol contain 26JAN when the actual expiry is 27 JAN?
-
Is this an intentional naming convention (e.g., legacy Thursday-based codes, weekly series mapping, etc.)?
-
Is there an official rule or documentation that explains when and why the symbol date can differ from the real expiry?
-
Can you confirm whether developers should completely avoid using the symbol for expiry logic and rely only on the
expiryfield from the instruments API?
If this is expected behavior, I request a clear technical explanation so this can be handled correctly in automated trading and instrument-mapping systems.
Looking forward to a precise clarification.
Regards,
Umesh Ghurghure
(Developer / API user)