Flight delay tracker
{{ summaryTitle }}
For {{ selectedFlight.flightDate }}
{{ selectedFlight.flightNumber }} {{ selectedFlight.airline }} {{ statusBadgeText }} {{ delayBadges.dep }} {{ delayBadges.arr }} {{ selectedFlight.route }}
Updated {{ lastUpdated.toLocaleString() }}
rows
ms
Field Value Copy
{{ row.label }} {{ row.value }}
No flight selected yet. Enter a flight number and fetch status.
Phase Airport Scheduled Estimated Actual Delay Copy
{{ row.phase }} {{ row.airport }} {{ row.scheduled }} {{ row.estimated }} {{ row.actual }} {{ row.delay }}
Timeline is empty. Fetch a flight to populate scheduled, estimated, and actual times.
# Flight Status Departure Arrival Delays Copy
{{ row.rank }}
{{ row.route }}
{{ row.status }}
{{ row.dep }}
{{ row.depAirport }}
{{ row.arr }}
{{ row.arrAirport }}
{{ row.delay }}
No matches yet. Fetch a flight to populate this list.

                        
JSON view is empty. Fetch data to inspect the raw payload.
:

Introduction:

Flight delays are the minutes between a scheduled departure or arrival time and the moment that is estimated or actually recorded, and they signal how the day of travel is unfolding. A flight status tracker by flight number turns those timestamps into a simple delay readout and a clear view of whether a flight is trending late, on schedule, or early. Used well, it helps you set expectations without guessing from a single status word.

Delays matter when you are deciding when to leave for the airport, when to meet someone, or whether a connection is still realistic. Departure delay and arrival delay can tell different stories because a late pushback can be recovered in the air, and an on time departure can still arrive late. Checking both reduces surprises when you plan pickups or transfer windows.

Provide a flight number and the local departure date, then fetch the latest record from a public data source. You get a status summary plus scheduled, estimated, and actual times for the origin and destination, with delays shown in whole minutes. A positive number means later than scheduled, and a negative number means earlier.

For example, if you are picking up a friend you can watch the arrival delay and the gate or baggage details when they are available, then time your drive more calmly. When more than one match appears, compare route and timings to pick the right leg for that date.

Flight feeds can change quickly and different providers may disagree, especially around cancellations, diversions, and last minute gate changes, so confirm critical choices with the airline. Keep your checks comparable by using the correct departure date each time, refreshing after major updates, and treating access tokens like passwords.

Technical Details:

This tool measures schedule variance by comparing three timestamps for each flight event, scheduled, estimated, and actual. From those timestamps it derives departure delay minutes and arrival delay minutes, so you can see where time was gained or lost.

When a provider supplies an explicit delay value, that value is used as the delay in minutes. Otherwise the delay is computed from timestamps, using the actual time when present and falling back to the estimated time.

A quick status category is assigned for scanning, using provider status text plus the larger of the departure and arrival delays. The built in bands label flights as On time, Delayed, Diverted or Severe delay, Cancelled, or Landed, and the delay text can be positive for late events or negative for early events.

Displayed clock times are formatted with a 24 hour clock and your device locale, and an airport time zone is applied when the provider supplies one. For comparisons across days, keep the departure date aligned to the local date at the origin airport.

Core delay calculation

Delays are expressed as whole minutes. The computed form below matches the implementation that rounds the millisecond difference to the nearest minute.

Δ = dprovider if finite Δ = round ( tevent tscheduled 60000 )
Symbols and units for delay calculations
Symbol Meaning Unit or Datatype Source
tscheduled Scheduled timestamp for departure or arrival Datetime string Input
tevent Actual timestamp when present, otherwise estimated Datetime string Derived
dprovider Delay value provided directly by a data source Minutes, integer Input
Δ Delay minutes computed for one event Minutes, integer Derived

Worked example using timestamp differences for departure and arrival.

tdep,scheduled = 2026-02-14T14:00:00 tdep,actual = 2026-02-14T14:10:00
Δdep = round ( 600000 60000 ) = 10 min
Δarr = 18 min Δmax = max ( Δdep , Δarr ) = 18 min

The larger delay is 18 min, so the scan label becomes Delayed because it crosses the 15 min threshold.

Status category bands and thresholds
Threshold Band Lower Bound Upper Bound Interpretation Action Cue
On time 0 min 14 min Minor variance that usually does not change plans Use for rough pickup timing
Delayed 15 min 59 min Noticeable lateness that may affect connections Recheck closer to departure or arrival
Severe delay 60 min Large disruption, often paired with retiming or diversion Confirm with the airline before committing
Cancelled Status text contains cancel Look for rebooking or alternative options
Landed Status text contains arrived or landed Use arrival delay and gate details if provided
Diverted or severe Status text contains divert Expect missing gate and baggage details

If status text indicates a flight has landed, the scan label becomes Landed even when the delay is large. For scheduled, active, and en route flights, delays above 5 min are treated as Delayed even when they are below 15 min, so that small slips are visible while the flight is still in progress.

Processing steps

  1. Normalize the flight number by trimming whitespace and converting letters to uppercase.
  2. If sample mode is on, generate a synthetic flight record for the chosen provider.
  3. Otherwise, send a GET request to the selected provider using your API key.
  4. Normalize provider fields into common departure and arrival sections.
  5. Compute departure and arrival delay minutes from delay fields or timestamps.
  6. Assign a status category from status text and the larger of the two delays.
  7. Filter matches by exact or relaxed matching, then optionally hide cancelled results.
  8. Format times using the supplied airport time zone when present.

Variables and parameters

User configurable parameters and their effects
Parameter Meaning Unit or Datatype Typical Range Sensitivity Notes
flight_number Marketing flight identifier Text Letters plus digits High Converted to uppercase before matching
flight_date Local departure date for the scheduled flight Date YYYY-MM-DD High A mismatch can return a different leg or no results
provider Data source to query Enum 2 options Medium Providers may report slightly different timestamps
include_codeshares Keep codeshare legs when supported 0 or 1 0 to 1 Medium Turn off to focus on the primary marketing carrier
include_cancelled Show cancelled and diverted flights 0 or 1 0 to 1 Medium When off, cancelled matches are filtered out after fetch
limit Cap the number of matches returned for the date Integer 1 to 30 Low Provider caps may reduce the effective maximum
prefer_exact Exact first or relaxed matching 0 or 1 0 to 1 Medium Relaxed mode keeps close variants of the flight number
timeout_ms Abort a request after a fixed time Milliseconds 2 000 to 12 000 Medium Higher values help on slow networks but wait longer
api_host Override host or base endpoint used for requests Text Provider specific High Useful when routing through a proxy to handle access rules
proxy_prefix Prefix that wraps the final request URL URL text Optional High Supports a {url} placeholder or simple prefix concatenation

Constants used for categorization and display

Constants and fixed thresholds
Constant Value Unit Source Notes
Delayed threshold 15 min Code Applies to the maximum of departure and arrival delay
Severe threshold 60 min Code Labels large delays as severe
In progress sensitivity 5 min Code Scheduled and active flights become delayed above this level
Early highlight -5 min Code Delays at or below this value are styled as early
Default request timeout 12 000 ms Code Used when no timeout value is supplied
Timeout lower bound 2 000 ms UI Requests can still be slower if the network stalls
Results cap in UI 30 rows UI Provider caps may be smaller depending on source

Units, precision, and rounding

  • Delay minutes are whole integers and use Math.round when computed from timestamps.
  • Half minute ties round toward positive infinity, matching Math.round behavior.
  • Clock times are formatted with a 24 hour clock and respect an airport time zone when provided.
  • Request latency is reported in milliseconds and is formatted to 1 decimal place.

Validation and bounds

Input validation rules and error messages
Field Type Min Max Step or Pattern Error Text
Flight number Text 1 Trimmed, uppercased before matching Enter a flight number to track delays.
Flight date Date Defaults to today when empty No matching flights found for that date and number.
Data source Enum aerodatabox or aviationstack Unable to fetch flight status.
API key Secret text 1 Stored in session storage per provider AviationStack requires an API key. RapidAPI key required for AeroDataBox.
Result limit Integer 1 30 Capped per provider, then capped again after filtering No matching flights found for that date and number.
Request timeout Integer 2 000 Step 500 ms Unable to fetch flight status.
Proxy prefix URL text 0 Optional, supports {url} placeholder Unable to fetch flight status.

Inputs and outputs

Input and output formats
Input Accepted Families Output Encoding or Precision Rounding
Flight number Text, typically airline code plus digits Matched flight list and selected flight record Uppercased for comparison Not applicable
Flight date Date string from a date picker Provider query constrained to that date YYYY-MM-DD Not applicable
Provider payload JSON from the selected service Status table, timeline table, and raw JSON view Pretty printed JSON uses 2 spaces Not applicable
Delay minutes Number from provider or computed from timestamps Signed minutes with a plus for late values Integer minutes Math.round when computed
Exports Status, timeline, matches, and raw JSON Comma-Separated Values (CSV), JavaScript Object Notation (JSON), and Office Open XML document (DOCX) Text for CSV and JSON, document file for DOCX Not applicable

Time handling

  • Dates default to today using an ISO style YYYY-MM-DD string.
  • Providers may publish timestamps in UTC (Coordinated Universal Time) or local time, and both are parsed as datetime strings.
  • Timestamp strings are parsed with the built in date parser and invalid values display as a dash.
  • When a provider supplies an IANA time zone identifier, it is used for formatting.
  • When no time zone is provided, formatting falls back to your device locale and time zone.

Networking and storage behavior

Requests are made with fetch and can be aborted using AbortController after the configured timeout. Some providers may require a proxy due to Cross-Origin Resource Sharing (CORS) restrictions, and each provider requires your own API key for live data.

Provider request patterns and authentication
Provider Method Target pattern Authentication Provider cap
AeroDataBox via RapidAPI GET aerodatabox.p.rapidapi.com/flights/number/{flight}/{date} X-RapidAPI-Key and X-RapidAPI-Host 20
AviationStack GET api.aviationstack.com/v1/flights access_key query parameter 30
Session storage keys used by the tool
Stored item Key Retention
API key per provider st_track_flight_delay_api_key_{provider} Session storage
Proxy prefix st_track_flight_delay_proxy_prefix Session storage

If a proxy prefix is set, the final request URL is percent encoded and inserted into the prefix. When the prefix contains {url}, that token is replaced, otherwise the encoded URL is appended.

Performance and complexity

  • Normalization, filtering, and table building are linear in the number of returned flights.
  • Formatting dates is per cell and can dominate cost when many rows are shown.
  • Pretty printed JSON scales with the size of the payload stored in the flight list.

Diagnostics and determinism

  • The latest fetch wins, so earlier requests that finish later are ignored.
  • Live results may change between refreshes as providers update timestamps over time.
  • Sample mode generates timestamps relative to the current time, so repeated runs differ.

Security considerations

  • Flight numbers and dates are encoded before they are placed into request URLs.
  • API keys are kept in session storage and are not appended to shareable links.
  • Heads-up A misconfigured proxy can expose your API key to another service.
  • Third party payloads are treated as data, but you should still avoid running this tool on untrusted pages.

Assumptions and limitations

  • Delay minutes are computed from scheduled and actual or estimated timestamps when a provider does not supply a delay field.
  • A status category is a convenience label and may not match airline operational definitions.
  • Valid looking gate, terminal, and baggage values depend on what the provider publishes for that flight.
  • Codeshare handling depends on provider support and can change the set of matches.
  • Cancelled results can be hidden after fetch, but may still influence provider side matching and ranking.
  • When multiple matches exist, choosing the wrong leg can make delays look inconsistent.
  • Time zone formatting depends on provider supplied identifiers and can fall back to device time.
  • Network errors and access rules can prevent requests, especially when cross origin restrictions apply.
  • Exported tables represent the current selection and do not update after you save them.
  • Request limits, quotas, and data freshness are controlled by your provider account.

Edge cases and error sources

  • Empty or whitespace only flight numbers trigger a blocking error before any request is made.
  • Invalid dates or timestamps display as a dash and can force delays to fall back to zero.
  • Non finite delay fields such as NaN and Infinity are ignored in favor of timestamp differences.
  • Signed zero from rounding negative half minutes is treated as on time.
  • Non ASCII characters in the flight number can uppercase unexpectedly and reduce match quality.
  • Provider timestamps near midnight can shift the apparent date when viewed in a different time zone.
  • Missing actual and estimated times yield a delay of 0 min, which can mask unknown states.
  • Delayed but improving flights can show a smaller arrival delay than departure delay, which is expected.
  • Large result sets increase formatting work and can slow copying and document export.
  • Rapid refreshes can overlap, but stale responses are discarded using a sequence counter.
  • Proxy prefixes that double encode URLs can lead to 400 level errors from the proxy.
  • If a provider responds with cached data, a refresh may return the same timestamps.

Scientific and standards backing

This tool relies on established aviation code systems such as International Air Transport Association (IATA) and International Civil Aviation Organization (ICAO) identifiers, ISO 8601 style timestamps, and IANA time zone identifiers when supplied by the provider.

Privacy and compliance

Requests are sent from your browser to the selected provider endpoint or your proxy, and API keys are stored in session storage for the session and never written into shareable links.

Step-by-Step Guide:

Flight delay minutes are easiest to interpret when you compare scheduled, estimated, and actual times for the same flight and date.

  1. Enter a Flight number and choose the local Flight date.
  2. Select a provider and add your API key if you want live data.
  3. Optional, turn on Use sample data to explore without a key.
  4. Fetch status, then review the status summary and delay minutes for departure and arrival.
  5. Open the timeline to compare scheduled, estimated, and actual timestamps side by side.
  6. If multiple matches appear, pick the row whose route and times match your expectation.
  7. Copy or download the current view when you need to share a snapshot.

Example: Enter SA101, keep the default date, enable sample data, then fetch to see a departure delay of +10 min and an arrival delay of +18 min.

Switch providers and fetch again only after you add the matching API key.

  • If a flight crosses midnight, always use the origin airport departure date for matching.
  • Use exact first matching for clean results, and relaxed matching when codeshares create close variants.
  • Increase the timeout on slow networks, but keep it low enough to avoid long hangs.

Pro tip: If a provider blocks direct requests from your device, set a proxy prefix that forwards the URL on your behalf.

Once you have a consistent flight number and date, the tracker becomes a quick way to plan departures, pickups, and connection decisions.

Troubleshooting:

  • You see “Enter a flight number to track delays.” Fix add an airline code plus digits, then fetch again.
  • You see “No matching flights found for that date and number.” Fix confirm the local departure date, then try relaxed matching.
  • You see “RapidAPI key required for AeroDataBox.” Fix provide a RapidAPI key or switch to sample data.
  • You see “AviationStack requires an API key.” Fix provide an AviationStack access key or switch providers.
  • Requests time out. Fix increase the timeout in milliseconds, or try again on a faster network.
  • Requests are blocked. Fix use a proxy prefix, or pick the provider that works best for your network.

When results look inconsistent, compare the route and the scheduled times first to ensure you selected the intended flight leg.

Advanced Tips:

  • Tip Keep the flight date aligned to the origin airport local departure date.
  • Tip Use exact first matching for routine checks, then switch to relaxed matching for codeshares.
  • Tip Compare departure and arrival delays to spot recovered time after takeoff.
  • Tip Treat negative delay minutes as early events, and confirm with the timeline before acting.
  • Tip Use a proxy prefix only when needed, and verify it does not log or leak your API key.
  • Tip Save exports as snapshots, then refresh later to compare how the timestamps evolved.

Glossary:

Scheduled time
The planned departure or arrival timestamp published in schedules.
Estimated time
A predicted timestamp that can update as conditions change.
Actual time
The recorded timestamp for departure or arrival when it is available.
Delay minutes
Whole minutes between scheduled and actual or estimated times.
Codeshare
A flight marketed by multiple airlines under different numbers.
IATA
International Air Transport Association code system for airlines and airports.
ICAO
International Civil Aviation Organization code system for airlines and airports.
UTC
Coordinated Universal Time, often used for published timestamps.
CORS
Cross-Origin Resource Sharing rules that can block direct requests.
Proxy prefix
A URL prefix that forwards a percent encoded request URL.

FAQ:

Is my data stored?

API keys and the proxy prefix are kept in session storage for the current session, and the key is never placed into shareable links. Flight results stay in memory until you clear them.

How accurate are delays?

Delays are only as accurate as the timestamps a provider publishes at that moment. Refreshing later may change the estimated and actual times, especially near departure and arrival.

Use airline sources for time critical decisions.
What do minutes mean?

A positive value means later than scheduled, and a negative value means earlier than scheduled. Values are whole minutes, either supplied by a provider or rounded from timestamp differences.

Can I use it offline?

Sample data works without network access and is useful for learning the layout. Live tracking requires network access plus a valid API key for the selected provider.

Track a codeshare flight

Leave codeshares enabled to keep alternate flight numbers in the match list, then choose the row whose route and timestamps match your trip. If you only want the main marketing flight, disable codeshares.

What does borderline mean?

Borderline delays sit near the built in thresholds. Around 5 min a flight can flip between On time and Delayed while in progress, and around 15 min the scan label becomes Delayed.

Costs and API keys

This page does not bundle an API key. Provider plans set quotas, rate limits, and any charges, and your key controls what data you can access.