Identifies and returns the top N dates with the cheapest average prices across all routes. This helps quickly identify the best travel dates when planning a flexible trip. Supports filtering by various criteria such as departure time, airlines, travel time, stops, and emissions.
Usage
fa_find_best_dates(
flight_results,
n = 10,
by = "min",
time_min = NULL,
time_max = NULL,
airlines = NULL,
price_min = NULL,
price_max = NULL,
travel_time_max = NULL,
max_stops = NULL,
max_layover = NULL,
max_emissions = NULL,
excluded_airports = NULL
)Arguments
- flight_results
A flight_results object from fa_fetch_flights(). This function no longer accepts data frames or query objects directly.
- n
Integer. Number of best dates to return. Default is 10.
- by
Character. How to calculate best dates: "mean" (average price across routes), "median", or "min" (lowest price on that date). Default is "min".
- time_min
Character. Minimum departure time in "HH:MM" format (24-hour). Filters flights departing at or after this time. Default is NULL (no filter).
- time_max
Character. Maximum departure time in "HH:MM" format (24-hour). Filters flights departing at or before this time. Default is NULL (no filter).
- airlines
Character vector. Filter by specific airlines. Default is NULL (no filter).
- price_min
Numeric. Minimum price. Default is NULL (no filter).
- price_max
Numeric. Maximum price. Default is NULL (no filter).
- travel_time_max
Numeric or character. Maximum travel time. If numeric, interpreted as hours. If character, use format "XX hr XX min". Default is NULL (no filter).
- max_stops
Integer. Maximum number of stops. Default is NULL (no filter).
- max_layover
Character. Maximum layover time in format "XX hr XX min". Default is NULL (no filter).
- max_emissions
Numeric. Maximum CO2 emissions in kg. Default is NULL (no filter).
- excluded_airports
Character vector. Airport codes to exclude from results. Default is NULL (no additional filtering beyond global excluded_airports list).
Value
A data frame with columns: departure_date, departure_time (or date if datetime not available), origin, price (average/median/min), n_routes, num_stops, layover, travel_time, co2_emission_kg, airlines, arrival_date, arrival_time. All column names are lowercase. Returns the top N dates with best (lowest) prices, sorted by departure time for display. Additional columns are aggregated using mean/median for numeric values and most common value for categorical. Note: arrival_date and arrival_time represent the most common values when multiple flights are aggregated and may not correspond exactly to the specific departure times shown.
Examples
# Find best dates
fa_find_best_dates(sample_flight_results, n = 3, by = "min")
#> departure_date departure_time arrival_date arrival_time origin price
#> 1 2025-12-18 08:00 2025-12-18 19:00 DEL 564
#> 2 2025-12-22 08:00 2025-12-22 08:30 DEL 541
#> 3 2026-01-05 07:00 2026-01-05 11:45 DEL 567
#> num_stops layover travel_time co2_emission_kg airlines n_routes
#> 1 1 5 hr 15 min FRA 16 hr 46 min 923 United 1
#> 2 2 4 hr 30 min DXB 15 hr 55 min 882 United 2
#> 3 1 3 hr 45 min IST 16 hr 44 min 895 United 1
# With filters
fa_find_best_dates(
sample_flight_results,
n = 2,
max_stops = 0
)
#> departure_date departure_time arrival_date arrival_time origin price
#> 1 2026-01-04 14:00 2026-01-04 10:30 BOM 615
#> 2 2026-01-05 12:45 2026-01-05 14:45 BOM 618
#> num_stops travel_time co2_emission_kg airlines n_routes
#> 1 0 15 hr 35 min 885 Lufthansa 1
#> 2 0 16 hr 10 min 871 United 1
