Amtrak Price Tracking Tool

Amtrak Unlimited Discussion Forum

Help Support Amtrak Unlimited Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Joined
Jan 6, 2020
Messages
2
I'm trying to figure out how Amtrak's fares work and determine how quickly they typically sell out of tickets on a particular route. I like to take the train to visit friends and family, but often don't plan far enough ahead and the train tickets end up either selling out or being too expensive.

I've done some digging around the internet to try to find a price tracking tool similar to those available for airline tickets, and this is the closest to what what I'm looking for that I've found. This site allows you to enter a route, and will tell you the lowest fare price for the next n days. However, it runs extremely slowly and only tells you the lowest fare, not the fare for each ticket category. It also can't tell you other information like "Only n seats left at this price" or tell you if there's space for bikes or pets still remaining.

I'd also love to see any explanations or analysis of how the various fare prices are determined, and how many seats at various prices are available on various routes.

If there isn't a bunch of existing pricing/ridership information or a robust price tracking tool out there, I'd like build one that will allow me to predict what the typical price for a route is based on how far in advance you make the booking. This would be super helpful for me to figure out how far I need to plan ahead in order to get a decent deal for traveling. I think this would also be really helpful to others as well and would like to open source any of the work that I end up doing.
 
The one you show (AmSnag) is the only one I know of. And as all the prices depicted on it are mined from Amtraks own computer (Arrow) It tells you precisely what the prices are at the time you make the search. And if used properly, it will indeed tell you the exact fare for each category of travel for each day of the search. I use AmSnag to come up with the fare buckets seen on this:

26-7 Dec 2019 Amtrak Fare Buckets.jpg

All that other stuff you seek (such as fares vs. availability) is something I don't think can be found out short of industrial espionage. I wish you all the luck in the world in coming up with even a moderately reliable prediction tool.
 
Last edited:
Thanks for the info! That chart you have looks interesting, but I'm not quite sure how to read it. What do the R, FB and B column headers mean? I'm guessing C is coach? Do the numbers correspond to the cost buckets for traveling the entire length of each route?

I agree that a lot of the info that I'm trying to get is likely proprietary. Based some of the information I get using Amtrak's reservation system, I think that some of this stuff could be roughly estimated. You get a warning if the number of seats in a particular fare bucket is running low, so that can be used to roughly predict when prices are about to increase. That doesn't really help me determine exactly how many tickets are in each bucket though.

Does anyone know where I can see a listing of the car distribution for each line? I'm guessing that typically there's the same number of each type of car on each route, but I'm not sure where I might be able to find that.
 
Thanks for the info! That chart you have looks interesting, but I'm not quite sure how to read it. What do the R, FB and B column headers mean? I'm guessing C is coach? Do the numbers correspond to the cost buckets for traveling the entire length of each route?

I agree that a lot of the info that I'm trying to get is likely proprietary. Based some of the information I get using Amtrak's reservation system, I think that some of this stuff could be roughly estimated. You get a warning if the number of seats in a particular fare bucket is running low, so that can be used to roughly predict when prices are about to increase. That doesn't really help me determine exactly how many tickets are in each bucket though.

Does anyone know where I can see a listing of the car distribution for each line? I'm guessing that typically there's the same number of each type of car on each route, but I'm not sure where I might be able to find that.

I doubt that there are typically the same number of each type of car on each route. Previous personal experience (mone and others) indicates that Amtrak adjusts the number of each type of car on each route to more closey match expected traffic, subject to lomitations on how many cars an engine set can pull and maintain schedule. Thus, many trains tend to be longer in holiday periods and summer months; shorter in off seasons.

And the number of seats or beds offered in each bucket for a given day are determined by formulas that Amtrak chooses to keep private.

Amsnag will show you what the fares are for a given day as of the day rhat you do the query. But those fares can -- and do -- change regularly, based on available seat inventory and sales experience, among other known and u known factors.

I suppose you could run the numbers on Amsnag for every day for every train for a year and look for patterns. But, just like the stock market, past performance is no guarantee of future success.
 
Another factor that impacts ticket pricing is that, while the "normal" pricing is available months in advance - they do not always give much notice of "sales" and you can buy tickets thinking you got the best price only to have them offer a "deal" a week or two after your purchase ... especially true of their recent "flash sales".
 
The last time I was on a train was in 1968 when I enlisted in the Army and rode from Richmond, VA to Atlanta on my way to Fort Benning. I've come to detest air travel.

So I'm quite new here, so please forgive me if this has already been discussed, but I don't grasp how the "bucket" concept works. I'm hoping to travel to Florida sometime in April or May, and would like to get a Roomette.

So far, I think, I've determined that I buy a regular Coach fare then the Roomette is a separate fee and I think I have to select a train to find out what the cost is.
 
The last time I was on a train was in 1968 when I enlisted in the Army and rode from Richmond, VA to Atlanta on my way to Fort Benning. I've come to detest air travel.

So I'm quite new here, so please forgive me if this has already been discussed, but I don't grasp how the "bucket" concept works. I'm hoping to travel to Florida sometime in April or May, and would like to get a Roomette.

So far, I think, I've determined that I buy a regular Coach fare then the Roomette is a separate fee and I think I have to select a train to find out what the cost is.
Here is a fairly long thread explaining the bucket system.
https://www.amtraktrains.com/threads/long-distance-train-coach-sleeper-fares-buckets.77062/
In my opinion, fares are pretty high right now and since there is only one train going to Florida for now, the timing is not great. If you go to the Amtrak.com website, the price shown for a roomette is the total price. The price includes a rail component and an accommodation component. If you want to travel in a roomette, do not purchase a coach ticket.
 
It can seem confusing, sometimes us rail fans can make it overly complicated with our explanations too...
As Penny says, go to Amtrak.com, and make a "dummy booking". This allows you to check fares before you pay.
You may be surprised to find that the fares vary quite widely even over just a few close dates that you try.
With Covid, fewer trains may run due to crew shortages, and roomettes are in demand more also due to Covid making folk want to ne away from other travellers, both leading to higher ticket prices.
 
So I'm quite new here, so please forgive me if this has already been discussed, but I don't grasp how the "bucket" concept works. I'm hoping to travel to Florida sometime in April or May, and would like to get a Roomette.
The fare you're quoted for a sleeper on Amtrak is the price you'll pay. The only thing knowing about buckets tells you is how that fare stacks up to other potential fares. If you understand how Southwest Airlines works (with clear and obvious steps between available fares) then Amtrak is very similar. Sometimes we get deep into the weeds by dividing sleeper tickets into coach fares and sleeper fees but you do not need to know any of that to ride Amtrak.
 
When I said this back in Post #8...
And the reason I only do fares for the whole route is that the combination of all possible fares between all possible points of travel totals more than 5,000 and would make the chart more than 300 pages long.
...my figure of ". . .more than 5,000. . ." should have been ". . .more than 7,000. . ." (see Post #37 in the thread linked by pennyk) and did not include any trips using two or more trains. The total number of trips between all possible pairs of points in the Amtrak system with no limit on the number of different trains would probably be up in the squillions!

As Cliff's travel seems to have a 60 day range there's some possibility of finding a date with a low bucket Roomette fare of around $485 for one adult from ALX to MIA. Only way to find out which dates (if any) have the lowest fares is to make 60 individual dummy bookings.

[Edit: Got bored and after only a few dummy bookings found a $485 fare offered on 11 Apr 2022 and quit looking. So at least one low bucket is available now. There may be others. And for all anybody knows they may all be gone tomorrow!

FWIW, the five Roomette buckets (fares) on the Silver Star from ALX to MIA are $485, $550, $654, $758 and (estimated) $856.]
 
Last edited:
I wanted to try AmSnag but nothing pops up except a story by Henry Kisor. Is there a URL address I can use to use AmSnag?
The one you show (AmSnag) is the only one I know of. And as all the prices depicted on it are mined from Amtraks own computer (Arrow) It tells you precisely what the prices are at the time you make the search. And if used properly, it will indeed tell you the exact fare for each category of travel for each day of the search. I use AmSnag to come up with the fare buckets seen on this:

View attachment 16417

All that other stuff you seek (such as fares vs. availability) is something I don't think can be found out short of industrial espionage. I wish you all the luck in the world in coming up with even a moderately reliable prediction tool.
 
I don't want to create any false hope, but I have been playing with the Amtrak reservation API off and on for the past six months and had a breakthrough today. I have written a basic script that will accept two airport codes corresponding to Amtrak stations and a date (it only works for one way trips at this stage) and it returns the internal json that Amtrak uses when displaying reservation results. This is of course not very friendly to read, but a friendly frontend would be trivial to make.

If there are any web developers out there who would like to get their hands dirty on this, send me direct message and I will get back to you with what I have found. :D
 
I don't want to create any false hope, but I have been playing with the Amtrak reservation API off and on for the past six months and had a breakthrough today. I have written a basic script that will accept two airport codes corresponding to Amtrak stations and a date (it only works for one way trips at this stage) and it returns the internal json that Amtrak uses when displaying reservation results. This is of course not very friendly to read, but a friendly frontend would be trivial to make.

If there are any web developers out there who would like to get their hands dirty on this, send me direct message and I will get back to you with what I have found. :D
That is great! I knew their internal API returned JSON, but the big issue that I saw was invoking the API. JSON should be easy to parse (kinda the point of JSON) and JSON serialization and deserialization classes are readily available.

Unfortunately, I am not a web developer, most of the latter part of my career was spent in integration and communication between backend systems, middleware. From my standpoint, you cracked the core problem, which was accessing the data.

One way should do fine, there is no discount for round trip. Besides, from what I recall looking at the page source, it invokes that API for each city pair anyway.

I'm not volunteering, web development isn't my skillset, other than general IT skills. Even my programming is rusty, but I can still hack around in C# and Java.
 
Last edited:
That is great! I knew their internal API returned JSON, but the big issue that I saw was invoking the API. JSON should be easy to parse (kinda the point of JSON) and JSON serialization and deserialization classes are readily available.

The tricky bit is you can't get at the JSON API response from the booking page- it returns an HTML response instead.

Unfortunately, I am not a web developer, most of the latter part of my career was spent in integration and communication between backend systems, middleware. From my standpoint, you cracked the core problem, which was accessing the data.

Yes. Once the data is available, the rest becomes simple.

One way should do fine, there is no discount for round trip.

Good point.

Even my programming is rusty, but I can still hack around in C# and Java.

C# is my favorite as most of my work is .NET Blazor. :D For this project thus far I have been using node.js.
 
The current ticketing system that Amtrak instituted takes many steps to arrive at a fare. Its almost unusable by many travelers. Amsnag used to pluck the fares from the Amtrak site when they were easy to retrieve but on the new system, it puts up barriers to arrive at a fare. IMO, the change was made to not allow customers to compare prices. If that is the case then its not an intelligent move.
 
Unfortunately the multi fares, the way you purchase , and status is making booking anything much harder. Too much Data available is creating this monster.

I like that some transportation system use to give you several days of fares to look at, a simple way to push customers to book on days with lower demand.

Now your status, and form of payment. Are factor in what availability and the price point.

Disney is the most noted user of status I have seen. Other are following.
 
IMO, the change was made to not allow customers to compare prices. If that is the case then its not an intelligent move.
I believe Amtrak has said that they were working on a multiday fare calendar, somewhat like SWA has. If that's true, the current booking page is not a plan to make fare comparisons difficult, but a result of unnecessarily complex website development.
 
The current ticketing system that Amtrak instituted takes many steps to arrive at a fare. Its almost unusable by many travelers. Amsnag used to pluck the fares from the Amtrak site when they were easy to retrieve but on the new system, it puts up barriers to arrive at a fare. IMO, the change was made to not allow customers to compare prices. If that is the case then its not an intelligent move.
Probably not a deliberate attempt to block anything. The website UI was "modernized" to a more contemporary look and feel. Lamely, I might add, quite a bit of functionality was lost. In doing so, they used a current AJAX style approach that put much more dynamic formatting and processing at the client end than the old style approach of calling the server on each interaction. With the old UI the server returned static HTML pages that were relatively easy to scrape data off of. HTML scraping was method Amsnag used. With the current design, the client itself makes an API call for the data and destructively consumes the JSON object returned in building its display. It is a more efficient programming technique and reduces calls to server, at least in theory. It also allows more flexibility in dynamically building the display to better suit various client platforms. There are a lot of good reasons to use that approach, preventing HTML scraping is a side effect, not a reason. Although, as I said, it wasn't well implemented.

To replicate Amsnag's functionality would require a much deeper and more difficult hack to beat Amtrak's security and independently invoke that internal Amtrak API to get a JSON object which the hacker could consume to get the data. Although a few months ago a member here apparently had successfully done that, I have not heard anything more about it.

BTW, the underlying ticketing system, ARROW, has been in place since the late 1970s. There is nothing new about it, which is actually the source of many of the problems. Everything you see is through multiple layers of wrapping that obscure the source system and allow it to talk to modern outside world.
The wraps probably "just growed" over time and probably resulted what is often called a "hairball"

Edit: now that these posts have been moved to another thread, see posts 17 though 20 to see the discussion on attempts to access data under the current architecture.
 
Last edited:
Probably not a deliberate attempt to block anything. The website UI was "modernized" to a more contemporary look and feel. Lamely, I might add, quite a bit of functionality was lost. In doing so, they used a current AJAX style approach that put much more dynamic formatting and processing at the client end than the old style approach of calling the server on each interaction. With the old UI the server returned static HTML pages that were relatively easy to scrape data off of. HTML scraping was method Amsnag used. With the current design, the client itself makes an API call for the data and destructively consumes the JSON object returned in building its display. It is a more efficient programming technique and reduces calls to server, at least in theory. It also allows more flexibility in dynamically building the display to better suit various client platforms. There are a lot of good reasons to use that approach, preventing HTML scraping is a side effect, not a reason. Although, as I said, it wasn't well implemented.

To replicate Amsnag's functionality would require a much deeper and more difficult hack to beat Amtrak's security and independently invoke that internal Amtrak API to get a JSON object which the hacker could consume to get the data. Although a few months ago a member here apparently had successfully done that, I have not heard anything more about it.

BTW, the underlying ticketing system, ARROW, has been in place since the late 1970s. There is nothing new about it, which is actually the source of many of the problems. Everything you see is through multiple layers of wrapping that obscure the source system and allow it to talk to modern outside world.
The wraps probably "just growed" over time and probably resulted what is often called a "hairball"

Edit: now that these posts have been moved to another thread, see posts 17 though 20 to see the discussion on attempts to access data under the current architecture.
I just love the way you explained all this. Thanks for taking the time.
 
Back
Top