Train Chart Vacancy

How this site works

This page is the methodology behind trainchartvacancy.com: where each number comes from and how it was made. Timetable pages are built from one dated feed of 10,594 trains. Availability is fetched live from a commercial provider and cached for between 60 and 900 seconds. Chart times are worked out from a published rule. Nothing here is invented or filled in to look complete, and computed times are labelled as computed.

Last verified , against the build that produced this page. Every count below was read out of our own database on that date.

There are three kinds of number on this site, and they have three different histories. A timetable number came from a file. An availability number came from a live query a moment ago. A chart time was worked out by us from a rule. This page tells you which is which, so that you can decide how much weight to put on each.

Where does the timetable data come from?

Every schedule, stop, distance and running day comes from a single dated GTFS file. GTFS is the timetable format transport operators and volunteers publish in. We ingest one version, check it, and build the whole site from that one version, so a page can always say which file it is showing. The version is printed in the footer of every page.

The version live today is labelled 2026-08-30. Its SHA-256 checksum begins `a0347d04`, it covers services from 30 August to 30 September 2026, and it was ingested and validated at 03:35 IST on 3 September 2026. It holds 10,594 trains, 8,550 stations and 207,224 stop events.

The file itself is a volunteer project, and its chain matters. The project fetches train data from an Indian Railways API, caches it, applies a list of manual station fixes, and writes GTFS out. We read its public repository on 3 September 2026. It has no licence file — the `LICENSE` path returns 404 — and no accuracy warranty. Its status note records the data as generated "around 9th Nov 2025" and lists six trains ignored during the run. So this is a good feed made carefully by one person, not an official publication, and we treat it that way.

We do not repair the feed. Where a row is wrong, we record the defect, mark or withhold the pages it affects, and publish the count. Four defects are worth knowing about. 205 trains carry no running calendar. 116 have two stops or fewer. 15 run in a circle. And 643 of the 196,630 segments imply a speed no train reaches. The full table is on data sources, with what each defect does to a page.

How is live availability fetched and cached?

Availability is not in the feed and never could be. It changes minute by minute, so we ask for it only when you press Check.

We send the commercial provider five things: the train number, the boarding station code, the destination station code, the journey date and the class and quota you chose. We do not send your IP address, a cookie, an identifier or anything about you. From the provider's side, the request comes from our server.

The answer is cached on our own machine, and how long depends on how near the journey is. A date far away barely moves; a date tomorrow moves constantly.

How long a live availability answer is cached, by how far away the journey is.
Journey dateCached forWhy
More than 72 hours away900 secondsPositions drift slowly this far out
24 to 72 hours away300 secondsCancellations start to bite
Less than 24 hours away60 secondsThe figure you want is the live one
Any date, 09:55–11:30 IST60 secondsThe Tatkal window moves fastest

Two more rules govern the cache. If the provider cannot be reached, we may serve an entry up to six hours old, and we label it stale with the IST time at which it was actually true. If the provider says a train or class does not exist, we remember that for 30 minutes so that a stray crawler cannot spend the budget on it.

The budget is the real limit here, and it is small. We hold ourselves to 25 a minute, 1,100 a day and 25,000 a month, with a per-address cap on uncached checks. If we run out of budget, the checker serves cache and says so; it does not invent a figure.

What this means for you is worth saying plainly. A figure on this site is a snapshot of one moment, and the stamp beside it is that moment. It can be a minute old, or an hour old if we are serving stale cache, and the page will tell you which. If we have no figure, the page says we have none. We never print a zero to mean "we do not know."

How is the expected chart time worked out?

We work out a train's expected first-chart time ourselves. We take its scheduled departure from the timetable feed and apply one rule. It is arithmetic, not an observation, and not a promise.

The chart-preparation bands this site applies, and the rule identifier for each.
Scheduled departure from the originating stationFirst chart expectedRule
05:01 to 14:0020:00 the previous dayRB-16.12.2025-A
14:01 to 23:59at least 10 hours ahead of departureRB-16.12.2025-B
00:00 to 05:00at least 10 hours ahead of departureRB-16.12.2025-B

Three qualifications travel with every chart time we print, and none of them is optional.

The rule is press-reported, not read. It comes from a Railway Board letter dated 16 December 2025. We have not seen that letter, and no circular number for it has been published anywhere we can find. We read the Railway Board's own index of 2025 commercial circulars again on 3 September 2026. It runs to Circular 24, dated 25 December 2025. The only chart entry in the whole year is Circular 10, dated 2 July 2025. What holds the December change up is press reporting. South Central Railway announced the same timings in its own name on 20 December 2025. The Daily Jagran named the letter's date and its signatory. DT Next quoted its wording two days later. The earlier rule we can read in full, Commercial Circular 10 of 2025, uses the word "preferably", and the reports say the December letter uses it too.

It is a target, not a deadline. Zones adopt a new timing on their own dates, and charts are prepared late. The word "preferably" is the reason.

It assumes the originating station. South Central Railway's announcement counts the hours from the charting station's departure, which is not always the train's origin. A train charted remotely can differ.

The whole chain of orders, with what each document says and where we could not read one, is on when the chart is prepared. Every hour of the clock is worked through on the chart preparation time table.

How do we decide if a train is reserved?

This is the largest guess on the site, and the one most likely to be wrong. The feed carries no field saying whether a train has reserved seats. Yet that one fact decides whether a page offers a chart time and a seat check at all.

So we work it out from the five-digit numbering scheme. Where the train's own name settles the matter, the name wins. The results split by how sure we are.

Confidence in the reserved-or-not decision, over all 10,594 trains in feed version 2026-08-30.
ConfidenceTrainsWhat the page does
High, decided by number or by name10,053Shows a chart time and a seat check, or says the train is unreserved
Low, 0-series fallback529Says we cannot tell, and offers neither
Named as a charter or non-passenger service12Says the question does not apply, or that we cannot tell

The 529 low-confidence trains are the 0-series, which the numbering scheme sets aside for specials and which cannot be decided from the number at all. Six charter services join them, which makes 535 trains whose reservation status we record as unknown. Six more, named as non-passenger services, are marked as not applicable instead. On an unknown train's page we print no chart time, no quota and no availability, and we say in those words that we cannot tell you. That is the only one of the three possible mistakes that cannot mislead you, which is why the fallback lands there rather than on a guess.

Every train page prints the rule that decided it, so you can check our reasoning against a train you already know.

What do we deliberately not publish?

Some of this site's value is in what is missing from it.

How often is this re-checked?

The rules pages are checked again at least every 90 days, and sooner if a circular appears. The timetable is rebuilt whenever a newer feed passes our checks. If it fails, the older version stays up rather than a broken one going live. Anything we get wrong belongs on the corrections page, which explains how to report it and how the fix is marked. What we are allowed to say, and what we will not, is set out in the terms of use.

Sources

Every factual claim above was checked against these documents on .