Railway Stations

On this page

Station Codes

Q. I see messages referring to trains going to “CBE” or “SBC”; what are these codes?

IR uses alphabetic codes to identify the railway stations. Some selected codes are given at the end of the page. The selection below is not really meant as an aid to the traveller; many entries are chosen for railfan interest and may be otherwise obscure.

Extensive lists of station codes are available at:

Many codes have obvious connections to the names of the stations they represent (AGC = Agra Cantonment, CDG = Chandigarh). Others are less obvious but nevertheless have some mnemonic value. Some codes were chosen not to conflict with other codes by adding or altering a letter (perhaps MAQ, ADI, etc. originated this way).

A few codes come from old spellings of places (BZA from Bezawada for today's Vijayawada). A ‘C’ sometimes stands for Cantonment; a ‘J’ for Junction; sometimes ’S’ and ’N’ stand for south and north. Letters ‘X’, ‘Q’, ‘Z’ are sometimes used when the code for one station has to be distinguished from the code for another of a similar name. But one can't go too far in analyzing the codes in this way.

Some codes are complete mysteries, such as HX for Cuddappah in the Guntakal division of SCR, and BXS for Pichchandarkovil in the Tiruchirapalli division of SR.

PTC for Kodikkarai, another oddity, is likely explained by its former name, Point Calimere. Similarly, CJ (Kanchipuram, probably from Conjeevaram Junction), and YP (Errupalem, perhaps from Yerrupalem?). Sometimes codes inadvertently spell out words, such as Seroni Road on CR, whose code is SEX.

Over the years, IR has changed some 2- and 3-letter codes for stations whose names have only 4 letters or fewer (e.g., Ajni) by making the name of the station itself the station code. Examples of these include Pune (PA became PUNE), Gaya (GYA became GAYA), Puri (PUI became PURI), Kota (KTT became KOTA), Adra (ADA became ADRA).

Important station codes that changed because the station name changed in recent years include CLAT (Kurla Terminus) which became LTT (Lokmanya Tilak Terminus); BB (Bombay Victoria Terminus) which became CSTM (Chhatrapati Shivaji Terminus Mumbai) first, and recently, in 2017, became CSMT (Chhatrapati Shivaji Maharaj Terminus); ALD (Allahabad Jn.) became PRYJ (Prayagraj Jn.) in 2020. A new code, MCT (Mumbai Central) has been introduced to replace BCT (Bombay Central) but the latter continues to be in use.

On the other hand, sometimes station names change without any changes to the codes; e.g., MAS (Madras) for Chennai Central (aka Puratchi Thalaivar Dr. MGR Central), and also Kolhapur (KOP) which was renamed Chhatrapati Sahuji Maharaj Station.

(See Ajai Banerji's article on station name changes.)

Different station codes were sometimes used for the same location served by different gauges. E.g., GIMB for Gandhidham BG, and GIM for the station on the meter-gauge route. INDB is the BG Indore code, and INDM was the MG code. Sometimes these really are separate stations, even if located close to each other; sometimes the stations may be part of the same complex. The stations in such cases may or may not have separate station masters and other staff. Dadar is an interesting case as it has two codes DDR (on WR) and DR (on CR) both of which are part of a large station complex (all broad-gauge); the two stations have separate station masters and staff, as they belong to different zonal railways.

Station codes are, as a rule, purely alphabetic. All passenger stations certainly have codes that are solely alphabetic. However, IR also uses codes to distinguish particular signal cabins and minor halts, and sometimes these may have digits as well. An example is ‘M5B’ for Cabin Mile 5B on the Budge Budge section of ER. A few codes have other characters appended to them, perhaps to distinguish particular signal cabins within a station’s jurisdiction — these therefore can also exceed the usual 4-character limit on station codes. E.g., IBP No. 10 is ‘IBP10’ (an intermediate block post on ER); Sitarampur Link Cabin is ‘STN L/C’.

There are station codes that are single letters, as well as those that are four letters long (and perhaps one that is five letters long). These and other miscellanea about station codes can be found in the section on trivia.

Some selected station codes are given below.

Other Station Abbreviations

Q. What about the abbreviations used for suburban services, and other (non-standard) station abbreviations?

In some places — especially Mumbai — special codes are used to indicate the destination of a suburban train (either on the rake (CR), or on platform indicators (CR/WR)). These are not the official station codes, but usually just 1- or 2-letter mnemonics.

Some of the commonly-used ones around Mumbai are:

  • A: Andheri (WR), Ambarnath (CR)
  • AD: Andheri (CR)
  • AS: Asangaon
  • B: Bandra (CR Bandra locals via the Harbour Line)
  • BL: Badlapur
  • Bo: Borivali
  • BR, BP: Belapur
  • BS: Vasai Road (from the older name Bassein)
  • BY: Bhayander
  • C: Kurla (from Coorla), also Churchgate (WR)
  • CH: Kurla via Harbour line
  • CM: Chembur
  • D: Dadar
  • DI: Dombivli
  • G: Ghatkopar
  • Go: Goregaon
  • K: Kalyan
  • M: Mankhurd, also Malad (WR)
  • N: Kasara (from North-East line)
  • PL, P: Panvel
  • S: Karjat (from South-East line)
  • T: Thane
  • TL: Titwala
  • V: Vashi, also Virar (WR)
  • Vs: Vasai Road

‘Y’ is often used to indicate an empty rake returning to its shed for service (at termini — Churchgate, CSTM)

In the Chennai region, EMUs bound to Moore Market Complex carry an ‘M’ board and Madras Beach carry a ‘B’ board.

Other 2- or 3-letter codes are sometimes used to refer to stations, in a seemingly ad hoc manner. E.g., At Bhopal and Itarsi, Mumbai-bound trains were marked ‘MU’ or ‘MB’ for some time.

Usage of these codes is increasingly rare as most destination boards and displays are now LED which allow for detailed information, including full station names and official codes, to be relayed on their screens.

Station Classes

Q. What are the different classes of stations?

IR's classification of stations is linked to their rules for block system working.

  • Class A: Such a station is one where the Line Clear indication for the block may not be given unless the line where the train is to be received is clear at least for up to the starter signal (or, in some cases, for at least 400m ahead of the home signal). These are stations where many trains normally run through without stopping at a high speed, hence the need for the safety margin to prevent accidents in cases of trains overrunning signals.
  • Class B: Such a station is one where the Line Clear indication may be given before the section of the line within the station has been cleared for reception of a train. Branch lines and routes with lower running speeds fall into this category.
  • Class C: This is a station (or block hut) marking an end of a block section, with light traffic or where no trains are booked to stop, such as an intermediate block post. (Sometimes these stations exist only in the form of a signal cabin that controls the approach to another station.) Permission to approach may not be given for a train unless the whole of the last preceding train has passed complete at least 400m beyond the home signal and is known to be continuing on its journey.
  • Class D: This is a station which does not form the boundary of a block section but which does form a stopping place for trains. Trains are stopped by various ad hoc arrangements prescribed in view of the local conditions — the driver may simply know to stop the train there, or it may be flagged down on demand, etc. Also known as a non-block station or flag station.

Stations of classes A through C are known as block stations. The Class C stations are also sometimes known as block huts or block posts. Class D stations are known as non-block stations - they do not mark the ends of block sections. (Note that there also exist Intermediate Block Posts where block sections can be terminated without the presence of a station.)

Any station that is not classified under one of the classes A through D is known as a Special Station and must use specific working rules issued by the Commissioner of Rail Safety.

Sometimes stations are classified as Class A if there is a bridge or steep gradient just before the station in one or both directions, so that it is not safe for trains to stop there before entering station limits.

See the section on signal placement at stations for details of how signals vary among the different classes of stations.

Interlocking standards Stations are also classified based on the interlocking mechanisms used ('Standard I', etc.). See the classification of stations based on interlocking standards for more information.

Commercial classification

Starting in 2017-18, IR categorizes stations under three major categories — Suburban Stations, Non-Suburban stations, and Halt Stations, on the basis of passenger earnings and/or outward passengers handled at a station for ensuring minimum essential amenities across different categories. Suburban stations have been further classified as SG-1, SG-2 and SG-3, and non-suburban stations under six categories - NSG-1, NSG-2, NSG-3, NSG-4, NSG-5 and NSG-6. Halt stations too have been further classified under three categories HG-1, HG-2 and HG-3.

Typically, a station with earnings of over INR 500 crores and/or handles over 20 million passengers is classified as NSG-1. On the other hand, a station with earnings of over INR 25 crores and/or handles over 30 million passengers is classified as SG-1, indicating it to be a top station in the suburban section.

Until 2017, stations were also classified based on their commercial importance into categories ‘A’, ‘B’, ... etc., which was rather confusing. The particular classification scheme used had to be inferred from the context.

In the commercial importance classification scheme, a non-suburban station with annual passenger earnings over Rs 60 million was a Category A station. Category B stations had earnings between Rs 30 million and 60 million. Any suburban station not falling into the ‘B’ category was considered as Category C station. Non-suburban stations with earnings between Rs 10 million and 30 million were Category D stations while non-suburban stations with lower earnings fell into Category E. Halt stations were classified as Category F stations. Interestingly, the commercial classification determines many of the construction aspects of the station like platform levels, and other passenger amenities. Stations of categories E and F had only rail-level platforms.


Q. How many stations does IR have?

This number is naturally a moving target, as IR is constantly opening new stations. Moreover, it is difficult to get a precise count of “stations” when considering junctions that have different gauges, stations with remote or differently named cabins or signalling sheds, derelict or abandoned stations, metropolitan areas with many stations and many branch lines that sometimes run parallel or intersect repeatedly, etc.

As of 1999, IR's official website claimed a total count of 6,984 stations, which had increased to 7,321 stations by March 2019.

Q. Why are so many railway stations named “(something) Road”?

The “Road” after the station indicates that it's the nearest railhead for that particular town. The road to that town originates at this station, you still need to travel a while by road to get to that town. There are a number of examples: Kodaikanal Road, Khurda Road, Mantralayam Road, Jajhpur Kheonjar Road, Nasik Road, etc. Jajpur Keonjhar Road is an interestingly named station as the station serves as the railway access point for two towns, Jajpur which is 32km south-east of the station and Keonjhar which is 127km north-west of the station.

In the past, at some such “Road” stations, e.g., Kodaikanal Road, there existed a Railway Out Agency, which was an agency which issued combined road-rail tickets to passengers, and which operated the road portion of the journey from the station to the town. The bus connections were provided to coincide with train arrivals. Out agencies used to be listed in the Indian Bradshaw before it ceased publication in its detailed form.

Q. What other suffixes such as ‘Road’ are used for station names in India?

See the list of common suffixes in Indian place names (which is a general, not railway-specific list). Many suffixes are self-explanatory.

For instance, many cities have a Cantonment station which used to be where the British established military cantonments (and where significant military establishments may still exist. In addition to the Indian place name suffixes, English suffixes such as ‘Park’, ‘Fort’, ‘Beach’, are quite common, as are suffixes like ‘South’, ‘East’, etc. If one goes through the list of IR station names, many unusual and odd names come to light. On the Neral-Matheran line, a station is named ‘Water Pipe’, solely because it is near the water supply pipes that run close by. The same line has a halt ‘Aman Lodge’, named after the hotel of the same name run by the state tourism bureau. Several other such examples can be found elsewhere.

Q. Why do some stations have the state names or other regional names as suffixes? E.g., Jeypore (Orissa) or Srirampur (Assam)?

This is done when there may be other towns of the same name elsewhere that may perhaps be as prominent or even better known than the station in question. Adding the state name as a suffix helps to disambiguate the station from the other towns of the same name. E.g., Berhampur (West Bengal) and Berhampur (Orissa). Hyderabad station is often referred to in older documents as Hyderabad Deccan, to distinguish it from the other Hyderabad of British India (in Sindh, now in Pakistan). Similarly, there are Hingoli Deccan (to distinguish the better-known one from the one in Rajasthan) and Kohir Deccan.

Unusual station names

There are many odd or intriguing station names on the IR network. A couple of them are listed below.

  • Mole Station in Bombay (no longer existent). A ‘mole’ is a breakwater. Bombay Harbour was created by breakwaters, and the Mole Station was located within the harbour area, at Ballard Pier. Mole Station is known for being the starting point of the well-known Boat Train in the early days of the railways.
  • Champion Reef on the Bangarpet - Marikuppam BG line has nothing to do with reefs in the ocean, but is so named for a large vein or lode of gold found in the area, part of the Kolar Gold Fields.

Q. Why are there so many express and long-distance trains to or from obscure locations like Manduadih, Kochuveli, etc.?

Often, the terminus for long-distance trains into a city or town is not the railway station that is the “main” station for that town, but rather some outlying or suburban station that can better handle the long-distance traffic. The names of the trains, unfortunately, often reflect these actual termini rather than the “real” destination to which service is being provided. Similarly, sometimes a nearby station is used for services to an intermediate city as well, instead of a station at the city. For e.g.

  • New Delhi services may terminate at Hazrat Nizamuddin, Sarai Rohilla or Anand Vihar Terminal
  • Mumbai services may terminate at Dadar, Lokamanya Tilak Terminal, or Bandra Terminus
  • Bhopal services may terminate at Rani Kamalapati Station (Habibganj)
  • Kolkata (Calcutta) services may terminate at Howrah, Sealdah or Shalimar
  • Chennai (Madras) services may terminate at Egmore or Tambaram
  • Varanasi services may terminate at Manduadih
  • Jaipur services may terminate at Durgapura
  • Hyderabad services may terminate at Kacheguda or Lingampalli
  • Ranchi services may terminate at Hatia
  • Nagpur services may terminate at Itwari
  • Patna services may terminate at Rajendra Nagar
  • Bangalore services may terminate at Yeshwantpur
  • Thiruvananthapuram services may terminate at Kochuveli

Similarly, for intermediate stations:

  • Kazipet for Warangal
  • Shrirampur for Belapur
  • Katpadi for Vellore

Q. What's the difference between Vadodara and Baroda? And other stations that have changed names.

Many towns have changed names over the years. In many cases the change in the spelling of a place stems from a desire for the name to more closely reflect the pronunciation of the name in the local language. Older spellings were generally assigned in the Roman script by the British and in some cases did not correspond closely to the spoken version of the name.

The list below (not exhaustive) gives several instances of changed names. The column on the left is the IR spelling of the name today. In many cases (especially for places in Kerala, the spelling on the right (the non-railway spelling) is actually newer, being used everywhere except in railway contexts).

  • Alleppey — Alappuzha
  • Balasore — Baleshwar
  • Bardhhaman — Burdwan
  • Bharuch — Broach
  • Brahmapur — Berhampur
  • Calicut — Kozhikode
  • Cannanore — Kannur
  • Chengalpattu — Chingleput
  • Cochin — Kochi
  • Chennai — Madras
  • Guwahati — Gauhati
  • Jalandhar — Jullender
  • Kolkata — Calcutta
  • Mumbai — Bombay
  • Palghat — Palakkad
  • Pune — Poona
  • Quilon — Kollam
  • Sewagram — Wardha East
  • Sridham — Gotegoan
  • Srirampur — Serampore
  • Tarangambadi — Tranquebar
  • Tellicherry — Thalasseri
  • Thiruchchirapalli — Trichinopoly
  • Trichur — Trissur
  • Trivandrum — Thiruvananthapuram
  • Udhagamandalam — Ootacamund (Ooty)
  • Vadodara — Baroda
  • Varanasi — Benares
  • Vasai — Bassein
  • Vijayawada — Bezwada
  • Vishakhapatnam — Waltair

Q. Where can I find information on Victoria Terminus (now Chhatrapati Shivaji Maharaj Terminus)?

See pages at Google's Art & Culture, and World Heritage Site. (Central Railway's web pages on CSMT appear to have been discontinued)

Q. Are there two Dadar stations? Are there stations shared by two or more zones or divisions?

Some stations are physically in one building complex but are considered separate stations for operational and administrative reasons. Usually, these oddities reflect the historical development of the station, where more than one railway company in British India served that station.

The best example of this is Dadar, which actually consists of one station under WR (code ‘DDR’) and one under CR (code ‘DR’). In the past when IR had multiple gauges, this separation used to be on the basis of the gauge. At Ahmedabad, the BG lines were under Vadodara division whereas the MG lines were under Rajkot division. Some other examples are listed below:

  • Howrah is shared by ER and SER.
  • Akola is shared by SCR and CR.
  • Mathura Jn. was shared by NCR (BG) and NER (MG). With all lines BG now, the station is now under NCR control.
  • Mughalsarai was shared by NCR and ECR.
  • Nagpur under CR used to be shared by SECR's Nagpur division as well — SECR's NG lines terminated next to the BG platforms of CR, and SECR administered that NG portion of the station. Staff at SECR NG platforms of Nagpur belonged to CR but were paid their salary by SECR!
  • NR and NER share several stations. Lucknow, Varanasi, Allahabad, Bareilly, Shahjahanpur, Shahganj, and others used to have their BG portions under NR and their MG portions under NER. In the case of Lucknow both zones have divisional headquarters there.
  • Malda Town is a divisional headquarters for ER, but used to be an NFR station and still has NFR's main BG diesel shed.
  • Chindwara had SECR NG lines terminating at the station and also BG lines belonging to CR terminating there. (07/20) This arrangement continues to this day, despite everything converted to BG. The erstwhile NG portion of the station is under SECR, while the two lines to Amla are under CR.

Selected Station Codes

A few commonly encountered station codes are given here. For more extensive lists please consult one of the pages mentioned above in ‘Related Sections’.

Code Name Code Name Code Name
ABR Abu Road ADI Ahmedabad AGC Agra Cantonment
AII Ajmer AJJ Arakkonam Junction AJNI Ajni (was AQ)
ALD Allahabad AMI Amravati ASN Asansol
ASR Amritsar ATI Attari BAMY Bandra Marshalling Yard
BBQ Basin Bridge Junction BBS Bhubaneshwar BBVT Bombay Victoria Terminus (now CSMT), also BB
BCT/BCL Bombay Central (Terminus/Local) (also MCT) BDTS Bandra Passenger Terminus BL Valsad (from Bulsar)
BNC Bangalore Cantt. BNCE Bangalore East BNDM Bondamunda
BPL Bhopal BPQ Ballarshah BRC Vadodara Jn. (from Baroda Cantt.)
BSB Varanasi Jn. (formerly Benaras Cantt.) BSL Bhusaval BSP Bilaspur
BVI Borivli BWN Barddhaman (Burdwan) BWT Bangarapet Jn.
BZA Vijayawada (from the Beziawada) CAPE Kanyakumari (from Cape Comorin) CBE Coimbatore
CCG Churchgate CDG Chandigarh CHTS Cochin Harbour Terminus
CLA Kurla Jn. (from Coorla), see also LTT CNB Kanpur Central (from Cawnpore) CSTM Chatrapati Shivaji Terminus Mumbai (was BBVT)
DD Daund Jn. (formerly Dhond) DDR Dadar (on WR) DE Delhi (MG, Bikaner division)
DEC Delhi Cantt. DEE Delhi Sarai Rohilla DG Dindigul Junction
DHB Dhanbad DLI Delhi Junction (Old Delhi, Delhi Division) DR Dadar (on CR)
ED Erode ERS Ernakulam Jn. (colloquially Ernakulam South) ET Itarsi Jn. (from Etarsee)
FD Faizabad FZR Firozpur G Gondia Jn.
GD Gonda (often spelled out in full, GONDA) GDG Gadag Jn. GDR Gudur
GHY Guwahati GIMB Gandhidham (BG) GKP Gorakhpur
GMO Gomoh GOC Golden Rock GTL Guntakal Jn.
GWL Gwalior GY Gooty GZB Ghaziabad
HWH Howrah HX Cudduppah(code unrelated to name!) HYB Hyderabad
IGP Igatpuri JBP Jabalpur JAT Jammu Tawi
JHS Jhansi Jn. JP Jaipur JTJ Jolarpettai Jn.
JU Jodhpur Jn. KCG Kacheguda KGP Kharagpur
KJM Krishnarajapuram KJT Karjat KLK Kalka
KOP Kolhapur (Chhatrapati Sahu Maharaj Terminus) KOTA Kota KTE Katni Jn.
KYN Kalyan KZJ Kazipet Jn. LDH Ludhiana
LGD Lallaguda LJN Lucknow (NER) LKO Lucknow (NR)
KYN Kalyan KZJ Kazipet Jn. LDH Ludhiana
LTT Lokmanya Tilak Terminus (new terminus for Kurla, former code CLA) MAO Madgaon MAQ Mangalore
MAS Chennai(Madras) Central MDU Madurai Jn. MFP Muzaffarpur
MGS Mughalsarai MHOW Mhow MLDT Malda Town
MMR Manmad MRJ Miraj Jn. MS Chennai Egmore (from Madras)
MTJ Mathura Jn. MUI Manduadih (suburb of Varanasi) MYS Mysore
MZS Murkongselek NCJ Nagercoil Jn. NDLS New Delhi
NGP Nagpur NK Nasik Rd. NJP New Jalpaiguri
NKJ New Katni Jn. NZM Hazrat Nizamuddin PA Pune (old, from Poona; now PUNE)
PGT Palghat PNBE Patna Junction (from Bankipore) PTK Pathankot
PTR Patratu PUNE Pune (also often PA) QLN Quilon
R Raipur Jn. RC Raichur RE Rewari
RJT Rajkot Jn. RMM Rameswaram RNC Ranchi
RTM Ratlam Jn. RU Renigunta Jn. S Srirangapatna
SA Salem Jn. SBC Bangalore City (from South Bangalore City) SC Secunderabad
SDAH Sealdah (in Calcutta) SME Shimoga SOE Sheopur Kalan
SRC Santragachi SRR Shoranur Jn. ST Surat
SUR Solapur TATA Tatanagar Jn. TDL Tundla Jn.
TEN Tirunelveli TKD Tughlakabad TPJ Tiruchirapalli Jn.
TPTY Tirupati TSK Tinsukia TVC Trivandrum Central
UBL Hubli UMB Ambala Cantt. (from Umballah) VKZ Venkatanarasimharajuvaripeta (longest station name on IR!)
VM Villupuram Jn. VR Virar VSG Vasco da Gama
VSKP Vishakhapatnam VTA Vatva WADI Wadi Jn.
WL Warangal WR Wardha Jn. YPR Yeshwantpur