Technical Task: Analysis of Prices for Bus and Train Carriers in Europe
Objective
It is necessary to collect and analyze ticket prices for bus and train carriers across Europe to identify patterns and correlations between:
ticket price;
route distance;
route type;
departure time;
day of the week.
The result should show price ranges ("from–to")
What Needs to Be Done
1. List of Carriers
A list of carriers (approximately 70 companies) will be provided.
For each carrier, it is necessary to consider:
If a carrier has both buses and trains, we analyze both directions (for example, RegioJet)
2. Route Lengths
For each carrier, it is necessary to check from 5 to 10 routes of varying lengths:
Categories of Routes:
Short routes (20-100 km)
Medium routes (100-300 km)
Long routes (300-700+ km)
*these categories of routes are approximate. They work differently for each country, depending on the size of the country. It is important to test cities of varying distances to identify patterns in price formation according to distances.
Routes are selected based on the coverage of the specific carrier's operations.
3. Domestic and International Flights
If the carrier is domestic:
We check only domestic routes within the country.
If the carrier is international:
We check:
domestic flights;
international flights.
4. Exclusions (very important)
DO NOT consider:
Example:
In ALSA, on the route Madrid → Valencia, flights from other carriers may be displayed.
Such options are NOT included in the statistics.
If the site shows a flight from another operator, this needs to be indicated separately.
5. Only Direct Flights
Only direct routes are important.
If:
the route is available only with a transfer —
But such data is not considered primary and is not used as base statistics.
6. Price Verification Parameters
Verification by Dates
For each route, we check a minimum of 3 scenarios:
1. Weekday
2. Weekend
3. Urgent Purchase
7. Verification by Departure Time
It is necessary to check the correlation of price with departure time.
We compare:
Night Flights
Approximately:
Daytime / Regular Flights
Approximately:
Important:
For some carriers, night flights are more expensive, for others — cheaper.
8. Price Format
Key Requirement:
The price should be indicated as a range:
Example:
Daytime flights: €18–27
Night flights: €24–35
***It is not allowed to mix night and daytime prices into one range like 18-35. Day - a separate range. Night - a separate range
9. Currency
All prices should be converted to one currency:
10. Nuances (important!)
If the carrier has:
discounts - if on a specific day there are many offers with discounts - we use this price in our range
anomalous prices - if at a specific time of day you see a route with an unreasonably high or low price and it is only one or a few ---- DO NOT use it in the price range, as it will skew the statistics. For the price (or price order) to be used in the range, it must occur at least a few times a day, then it is a pattern.
11. What Should Result
A table with the following data is needed:
carrier
type of transport
route
type of day (weekday / weekend / urgent) + prices from..to
departure and/or arrival time (night / day) + prices from..to
direct flight or transfer;
comments (discount, anomalous price, no direct routes, etc.)
Price by agreement.
Expensive solutions like parsers and scripts will be rejected, priority is to do it cheaply