FlightDash.io is currently meant to be displayed on computers or tablets in landscape mode, with a screen width of at least 1200 pixels. Please try another device to use FlightDash.io.
Checklist Log
Airport Data

Need to find the ICAO? Try searching ourairports.com













{{metarTemperatureDewpoint.split('/')[0]}}°C / {{metarTemperatureDewpoint.split('/')[1]}}°C
{{convertCelsiusToFahrenheit(metarTemperatureDewpoint.split('/')[0]) | number:1}}°F / {{convertCelsiusToFahrenheit(metarTemperatureDewpoint.split('/')[1]) | number:1}}°F





Runway Heading: {{runway.heading_degT}}°

Length: {{runway.length_ft}} ft

Width: {{runway.width_ft}} ft

Headwind: {{getHeadwind(runway.heading_degT, windSpeed, windDirection)}} kts

Crosswind: {{getCrosswind(runway.heading_degT, windSpeed, windDirection)}} kts ({{getCrosswindDirection(runway.heading_degT, windDirection)}})

ILS: {{runway.ils.freq}} / {{runway.ils.course}}°

Surface: {{runway.surface}}

Lighted: 🟡

  • {{key}}: {{value}}
  • {{key}}: {{value}}
  • {{key}}: {{value}}
    • {{fpKey}}: {{fpValue}}
  • {{key}}: {{value}}
    • {{fpKey}}: {{fpValue}}

Flight Plan

Create SimBrief Flight Plan

Flight Data

Flight Crew

Sample the sounds of the different AI voices here

Position First Name Last Name OpenAI Voice Personality

Flight Status Controls


This table shows Vatsim aircraft within a selected distance from your current location.

{{proximityDistance}} nm
Callsign A/C Departure Arrival Status Speed Altitude Distance To Go ETA
{{pilot.callsign}} {{pilot.callsign}} {{pilot.flight_plan.aircraft_short}} {{pilot.flight_plan.departure}} {{pilot.flight_plan.arrival}} {{pilot.status.status}} {{pilot.groundspeed}} kts {{pilot.altitude}} ft {{pilot.distance | number:2}} nm {{pilot.toGoDistance | number:0}} nm {{(pilot.status.status === 'Enroute' || pilot.status.status === 'Arriving Shortly') ? pilot.toGoEta : ''}}

Group Flight

This table shows Vatsim flights that have the same departure and arrival as your flight plan.

Callsign A/C Departure Arrival Status Speed Altitude To Go ETA
{{pilot.callsign}} {{pilot.callsign}} {{pilot.flight_plan.aircraft_short}} {{pilot.flight_plan.departure}} {{pilot.flight_plan.arrival}} {{pilot.status.status}} {{pilot.groundspeed}} kts {{pilot.altitude}} ft {{pilot.toGoDistance | number:0}} nm {{(pilot.status.status === 'Enroute' || pilot.status.status === 'Arriving Shortly') ? pilot.toGoEta : ''}}

Post Flight Report

{{ scheduledBoardingDateTime | toLocalTime}}

{{ actualBoardingDateTime | toLocalTime }}

{{ getDifference(scheduledBoardingDateTime, actualBoardingDateTime) }}

{{ scheduledDepartureDateTime | toLocalTime }}

{{ actualDepartedDateTime | toLocalTime }}

{{ getDifference(scheduledDepartureDateTime, actualDepartedDateTime) }}

{{ estimateArrivalDateTime | toLocalTime }}

{{ actualArrivalDateTime | toLocalTime }}

{{ getDifference(estimateArrivalDateTime, actualArrivalDateTime) }}

{{ estimateGateArrivalDateTime | toLocalTime }}

{{ actualGateArrivalDateTime | toLocalTime }}

{{ getDifference(estimateGateArrivalDateTime, actualGateArrivalDateTime) }}

Flight Manifest

Not Checked In: {{ passengersNotCheckedIn.length }}/{{ numberOfPassengers }}
Checked In: {{ passengersCheckedIn.length }}/{{ numberOfPassengers }}
Boarding: {{ passengersBoarded.length }}/{{ numberOfPassengers }}
Seated: {{ passengersSeated.length }}/{{ numberOfPassengers }}
Deboarded: {{ passengersDeboarded.length }}/{{ numberOfPassengers }}
Checked Bags
Not Checked In: {{ bagsNotCheckedIn.length }}
Checked In: {{ bagsCheckedIn.length }}
Loaded: {{ bagsLoaded.length }}
Unloaded: {{ bagsUnloaded.length }}
Baggage Claim: {{ bagsBaggageClaim.length }}
Seat Name Status Bags Bag Details
{{ passenger.seat }} {{ passenger.name }} {{ passenger.status }} {{ passenger.bagsArray.length }}
Bag {{ $index + 1 }}: {{ bag.status }}

Announcements (Open Beta)

Before using this feature, you must read and agree to the OpenAI Usage Policy.

Please complete the checklist below. This ensures that you understand all terms of use, and are properly configured to receive the best possible experience with this feature. Once complete, the Announcements Controller will become available.

Note: When you click an announcment button, OpenAI is processing your flight data, creating a script, recording the audio, then sending it back to you. This does not all happen instantly. Announcments may take up to 1-2 minutes, but usually much faster. This is dependent on network speeds, as well as OpenAI's current performance and availability.
Support: If you feel you've configured everything properly based on the checklist steps above, and are not getting any announcements after waiting a few mintues, please cease using the feature (to avoid any additional OpenAI API costs), copy and paste the FULL debug logs below, and report the issue via Support. Paste the debug log into your support ticket or message.
OpenAI Cost Estimate: 35-50 cents (USD) per Soundpack


  1. Simbrief and OpenAI Keys
    • Ensure that your Simbrief Pilot ID and OpenAI API Key are both entered in the Settings.
    • Load your Simbrief OFP in the Flight Plan tab.
    • Ensure that all details are complete in the Flight Data tab. In addition to the information auto-populated by Simbrief, you must add an Airline Name and Generate a Flight Crew.
  2. Create Folder Structure.
    • Ensure you already have the Fenix A320 v2 block 2 installed and working. This guide assumes you have already done this.
    • Navigate to your MSFS2020 Community Folder and create a new folder named fnx-announcements
    • If you already have this folder, then you can skip creating the folder.
  3. Prepare your livery.
    • Navitate to [Your Community Folder]\fnx-aircraft-320-liveries\SimObjects\Airplanes\[Your Livery]
    • Open aircraft.cfg in a text editor.
    • Ensure that the value for icao_airline equals the folder name for the airline callsign you are using in your flight plan. This should be in double quotes. Change this value only if needed. And if you do, save the file before closing.

Download Soundpack

Install the Soundpack

  1. Unzip the [callsign]FenixSoundpack.zip that was downloaded.
  2. You will now have a folder named after your callsign. Cut/Copy the folder.
  3. Paste the folder in Community\fnx-announcements

Using the Soundpack

  • Start a MSFS2020 flight with the Fenix A320 v2 Block 2 as usual. Ensure that the Fenix.exe app starts as well.
  • Ensure that the PA Knob in the aircraft is ON and volume turned up.
  • Enjoy! Your new AI announcements, customized to your flight plan, will play throughout your flight just as the default Fenix ones would.

Hot Swapping

  • Flying back to back flights?
  • Repeat the steps above between flights.
  • You will delete your first call sign folder inside the Community\fnx-announcements folder, and replace it with the new one.
  • Ensure that no announcements are playing or about to be playing when making the switch. Doing so may result in inorrect, missing, or default Fenix announcements playing.
Having an issue?: Be sure that your Simbrief ID and OpenAI Key are properly entered in the settings/configuration. Ensure that a payment method has been added to your OpenAI Account and credits are available. We recommend always having at least a few dollars (USD) in credits available as multiple API calls will be used to generate an entire soundpack. Finally, ensure that your Simbrief Flight Plan is loaded into FlightDash.io on the Flight Plan tab, as well as ALL details complete in the Flight Data tab, including generating a flight crew. Failure to complete all of these steps may result in an empty or incomplete Soundpack Zip file.