The codes date from the open-outcry era and survive because they pack a month into one character. The full set in order is F (January), G (February), H (March), J (April), K (May), M (June), N (July), Q (August), U (September), V (October), X (November), Z (December). There is no obvious logic; traders simply memorise them.
A ticker is root + month code + year digit or digits. Feed vendors differ on how many year digits they use, which is the most common source of confusion when copying symbols between platforms.
Example: CLZ6 is December 2026 crude oil. ESH7 is the March 2027 E-mini S&P. ZCN6 is July 2026 corn. Quarterly index products only ever use H, M, U and Z.
Related: contract-month, front-month, deferred-month, futures-contract