Career Mode User Guide: Difference between revisions

From FSFO Support Hub
No edit summary
Line 1: Line 1:
= FSFO Career Mode User Guide =
= FSFO Career Mode User Guide =


This page explains how Career Mode works in FSFO, including setup, pilot progression, schedules, training, scoring, fatigue, passenger comfort, company discipline, and the permanent flight log.
This page explains how Career Mode works in the current FSFO v6 build, including the Career Snapshot page, Pilot Portal integration, schedules, bidding, readiness rules, scoring, type ratings, fatigue, and company discipline.


<div style="margin:0.8em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
<div style="margin:0.8em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
Career Mode uses a local database to track your pilot profile, your active schedule, and your long-term flight history.
Career Mode is now a <strong>Pilot Portal-backed system</strong>. FSFO still performs the live in-sim validation and scoring, but your career identity, synced rule settings, next assignment, training, schedule workflow, and broader career data are driven by Pilot Portal.
</div>
</div>


Line 15: Line 15:
== Overview ==
== Overview ==


Career Mode is designed for pilots who want persistent progression across multiple flights instead of isolated one-off sessions.
Career Mode is designed for pilots who want one persistent pilot identity instead of isolated flights.


Career Mode is built around three main areas:
Your career includes:


* '''Pilot Profile'''
* your pilot identity
Your pilot's name, company, rank, tier, balance, location, type ratings, score, errors, contract legs, and training status
* current company
* rank and career tier
* pay and balance
* type ratings
* current location
* schedule and next assignment
* fatigue and readiness rules
* long-term progression


* '''Current Schedule'''
From a user perspective, the flow is simple:
Your active scheduled legs


* '''Flight Log'''
# Sign in to Pilot Portal
Your permanent flight history and performance record
# Open '''Career Snapshot''' in FSFO
 
# Review your next assignment and current rules
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#eef3fb; border-left:4px solid #1f4fa3;">
# Make sure the aircraft, location, and route all match
Use Career Mode if you want your flights, scores, contracts, and company history to carry forward over time.
# Fly only after FSFO says the career flight is ready
</div>
# Let FSFO score and upload the result


[[#top|Back to top]]
[[#top|Back to top]]
Line 36: Line 42:
----
----


== Quick Start ==
== Career Snapshot, Contract, and Portal ==


To begin using Career Mode:
The main Career page in FSFO is now '''Career Snapshot'''.


# Open the '''Career Dashboard'''
It is not the old all-in-one local dashboard. Instead, it is the place where you confirm that your live career state makes sense before departure.
# Click '''Rebuild Database''' the first time you use Career Mode
# Review, Select and '''Save your Career Options'''
# Enter your pilot name
# Select a company
## You can click on the underline to see all compaines
# Select a type rating (the first one is free)
# Click '''Apply Company'''
# Click '''Generate Schedule'''
# Fly the '''next pending leg'''
# Review your results in the '''Flight Log'''


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
The top buttons serve different purposes:
Once accepted, your pilot profile is created and Career Mode begins tracking your progress.
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf7f2; border-left:6px solid #f0ad4e;">
* '''Help''' opens the in-app Career guide
<strong>Important:</strong> A flight does not automatically count toward progression. If schedule enforcement is enabled, you must complete the next pending leg correctly for the flight to advance your career.
* '''Contract''' opens the current career agreement and scoring summary
</div>
* '''Portal''' opens the Pilot Portal side of Career Mode


[[#top|Back to top]]
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
 
Use <strong>Career Snapshot</strong> as your final preflight check. If the next leg, company, route, type rating, or location looks wrong there, fix it before flying.
----
 
== Career Mode Flow at a Glance ==
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Typical Career Mode flow:
 
1. Create or rebuild the database
2. Apply to a company
3. Configure career options
4. Generate a schedule
5. Fly the next pending leg
6. Receive a Landing Score and Total Score
7. Update pay, balance, progression, fatigue, warnings, and flight log
</pre>
</div>
</div>


Line 84: Line 62:
----
----


== Career Dashboard ==
== Quick Start ==


The Career Dashboard includes the following major functions:
To begin using Career Mode in the current build:


* '''Rebuild Database'''
# Create and sign in to your Pilot Portal account
Creates or recreates the local career database
# Open '''Career Snapshot''' in FSFO
# Use '''Portal''' to manage your career settings, current company, schedule, and training
# Review the synced rule settings shown in FSFO
# Confirm your next pending assignment
# Load the correct aircraft
# Start from the correct airport
# Fly the leg only after FSFO confirms the career flight is ready


* '''Apply Company'''
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf7f2; border-left:6px solid #f0ad4e;">
Applies for a company and creates your pilot profile if needed
<strong>Important:</strong> A flight can still be flown and scored without advancing your career. If schedule enforcement is active, the leg must match the next pending assignment correctly for progression to count.
 
* '''Apply Type Rating'''
Starts type-rating training
 
* '''Generate Schedule'''
Builds your current schedule
 
* '''Load Stats'''
Refreshes pilot statistics
 
* '''Save Options'''
Saves career settings
 
* '''Flight Log'''
Opens the permanent flight history window
 
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<strong>NOTE:</strong> The current <strong>Show Contract</strong> button is not implemented yet.
</div>
</div>


Line 117: Line 83:
----
----


== Career Options ==
== Career Rule Settings ==


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
Career rule settings are synced from Pilot Portal and then enforced by FSFO during readiness checks and post-flight progression.
These options affect how schedules are generated, when flights count toward progression, and whether readiness checks can block a flight.
 
</div>
Current synced rules include:


* '''Start from last airport'''
* '''Start from last airport'''
Requires you to begin your next career flight from your saved current location. If enabled, FSFO checks that you are within 10 NM of the pilot's stored airport before the flight is considered ready.
Requires you to begin near the pilot's stored location. FSFO checks that you are within 10 NM of that saved airport before the flight is considered ready.


* '''Fatal crash starts over'''
* '''Fatal crash starts over'''
If enabled, a fatal crash can end your current career and force you to start over.
This is part of the synced career policy and should be treated as a high-stakes crash rule for your career profile.


* '''Must fly scheduled flight'''
* '''Must fly scheduled flight'''
Only credits career progress when you complete the next pending scheduled leg in order. If enabled and you do not fly the correct leg, the flight can still be logged, but it will not advance total legs, average score, balance, rank, or career tier.
Only the next pending scheduled leg counts toward progression.


* '''Passenger comfort'''
* '''Passenger comfort'''
Enables passenger-comfort rules so smoother, better-managed flights matter more to your career results.
Enables the comfort and passenger-outcome scoring model described below.


* '''Can be fired'''
* '''Can be fired'''
Enables the career rule that allows poor performance or major failures to put your employment at risk.
Enables warnings, discipline, and possible termination for repeated poor performance.


* '''Enable fatigue'''
* '''Enable fatigue'''
Turns on fatigue tracking. If enabled, FSFO checks recent workload and can block career-flight readiness when fatigue rises above the allowed threshold.
Turns on workload-based fatigue checks. If fatigue is too high, the flight may not be considered ready.


* '''Schedule based on rank'''
* '''Schedule based on rank'''
Automatically builds schedules using the pilot's current rank and tier to determine the maximum leg distance. If a full schedule cannot be built within that cap, FSFO falls back to the full eligible route set.
Uses your current rank to set the maximum leg distance during schedule generation.


* '''Must have type rating'''
* '''Must have type rating'''
Requires the pilot to hold the appropriate type rating before operating aircraft that need one.
Requires the pilot to hold the correct rating for the aircraft being flown.


* '''Lock schedule until complete'''
* '''Lock schedule until complete'''
Prevents generating a new schedule while an existing schedule still has incomplete legs.
Prevents generating a new schedule while incomplete legs still remain.


* '''Application based on rank'''
* '''Application based on rank'''
Makes company applications depend on your current rank, including tier eligibility and hiring probability. It also enforces the rejection cooldown for repeat applications.
Restricts which company tiers you can join and applies rank-based hiring chance.
 
* '''Upload data'''
Controls whether the career flight result is intended to upload through the live portal-backed workflow.


[[#top|Back to top]]
[[#top|Back to top]]
Line 157: Line 126:
----
----


== Before You Fly: Readiness and Schedule Rules ==
== Before You Fly: Readiness ==


Before a career flight can fully count, FSFO may check:
Before a career flight is allowed to count cleanly, FSFO can validate:


* your current company
* Pilot Portal sign-in and synced identity
* your current schedule
* current company
* your current location
* next pending assignment
* type-rating requirements
* departure location
* type-rating compliance
* fatigue
* fatigue
* readiness rules tied to enabled career options
* the currently enabled career rules
 
If '''Start from last airport''' is enabled, you must begin near your saved pilot location.
 
If '''Lock schedule until complete''' is enabled, you cannot generate a new schedule while your current one still has incomplete legs.


If '''Enable fatigue''' is enabled, readiness fails if your fatigue is too high.
The most common readiness blockers are:


If '''Must have type rating''' is enabled, FSFO verifies that you already hold the required type rating for the current aircraft.
* wrong departure airport
* wrong route
* wrong aircraft or missing type rating
* fatigue above the allowed threshold


[[#top|Back to top]]
[[#top|Back to top]]
Line 182: Line 151:
== Schedule Generation ==
== Schedule Generation ==


Schedules are built from your route data and filtered by:
Schedules are now generated through Pilot Portal, not through the old local Career Dashboard workflow.
 
The active schedule still matters to FSFO because it is used for:
 
* next-leg validation
* progression credit
* schedule completion tracking
* schedule lock enforcement


* current airline
On the portal side, schedule generation currently supports a requested leg count and builds a continuous assignment from the pilot's available route network.
* rank
* type rating, if type-rating enforcement is enabled
* current location and preferred-airport logic


If '''Schedule Based On Rank''' is enabled, FSFO automatically applies a maximum leg distance by rank:
If '''Schedule based on rank''' is enabled, the current maximum leg distance by rank is:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Rank 1 = 600 NM
Cadet          = 600 NM
Rank 2 = 1200 NM
Second Officer  = 1200 NM
Rank 3 = 2500 NM
First Officer  = 2500 NM
Rank 4 = 5000 NM
Captain        = 5000 NM
Rank 5 = 10000 NM
Senior Captain  = 10000 NM
</pre>
</pre>
</div>
</div>


FSFO first tries to build a schedule using that cap. If it cannot build a full schedule, it falls back to the full eligible route pool.
If the portal cannot build a complete schedule under that rank-based limit, it retries using the broader eligible route pool.
 
If '''Schedule based on rank''' is disabled, the Max NM value entered by the user is enforced strictly.


If '''Lock schedule until complete''' is enabled, FSFO will not generate a new schedule while an incomplete schedule already exists.
If '''Lock schedule until complete''' is enabled, you must finish or clear the current schedule before generating a new one.


[[#top|Back to top]]
[[#top|Back to top]]
Line 211: Line 182:
----
----


== Schedule Bidding System ==
== Bidding and Reserve ==


The Schedule Bidding System lets you request specific route segments when generating a Career Mode schedule.
Career bidding is now handled through the portal's '''Bid & Reserve''' workflow rather than the older freeform route-bid text box model.


Enter your bids in the '''Route Bid''' box using directional airport pairs separated by commas, for example:
In the current system:


<code>KBOS-KBGR,KBGR-KDEN</code>
* you stack bids from the available route list
* you submit them through the portal
* the portal shows a live '''Award Chance'''
* that chance is influenced by both:
** your current rank
** your completed company-leg history


Bids are '''directional only''', so <code>KBOS-KBGR</code> is different from <code>KBGR-KBOS</code>.
This means bidding is no longer based on rank alone. Senior pilots generally have a stronger bidding profile, but consistent company flying also helps.


FSFO applies bids '''in the order entered''', and each bid must maintain schedule continuity. The next bid must depart from the airport where the previous leg ended, otherwise the remaining bid is wasted.
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
 
If you are documenting the current product, do <strong>not</strong> describe bidding as a comma-separated airport-pair text field. That was the older model.
If '''Schedule Based On Rank''' is enabled, each bid leg is awarded based on the pilot's current rank:
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Current rank-based bid chances:
 
Rank 1 = 20%
Rank 2 = 40%
Rank 3 = 60%
Rank 4 = 80%
Rank 5 = 90%
</pre>
</div>
</div>
If '''Schedule Based On Rank''' is disabled, FSFO will try to honor the requested bid exactly as entered, but only if it can still build a continuous schedule from the pilot's current location.


[[#top|Back to top]]
[[#top|Back to top]]
Line 245: Line 207:
== When a Flight Counts Toward Progression ==
== When a Flight Counts Toward Progression ==


A flight does not automatically count toward career progression.
A career flight does not automatically count toward career progression.


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If '''Must fly scheduled flight''' is enabled, FSFO compares the actual flight against the next pending assignment.
If <strong>Must fly scheduled flight</strong> is enabled, the flight must complete the <strong>next pending leg in order</strong>.
</div>


FSFO compares:
For the leg to count, the pilot must correctly match:


* the actual departure airport
* the scheduled departure airport
* the actual arrival airport
* the scheduled arrival airport
* the next pending leg in order


For the leg to count, the pilot must:
If the flight does not meet the progression rules, it can still be flown and scored, but no career advancement is applied.


* start at the correct airport
That means the flight will not update:
* arrive at the correct airport
* match the next pending scheduled leg


If the flight does not meet that requirement:
* Total Legs
 
* Average Score
* it can still be logged
* Company Legs
** it will not increase Total Legs
* Contract Remaining Legs
** it will not update Average Score
* Balance
** it will not reduce Contract Remaining Legs
* Rank
** it will not update Balance
* Career Tier
** it will not trigger promotion
* Pay per hour
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c;">
If the next scheduled leg is completed correctly, it is marked <strong>COMPLETED</strong>. If that was the final remaining leg, the schedule is cleared.
</div>


[[#top|Back to top]]
[[#top|Back to top]]
Line 279: Line 234:
----
----


== Flying a Career Flight ==
== Total Score and Qualification ==
 
Before flight, FSFO captures:
 
* company
* flight number
* aircraft
* departure airport
* arrival airport
 
During flight, Career Mode monitors multiple operational and scoring categories.
 
Examples include:
 
* pitch exceedance
* bank exceedance
* G-force exceedance
* IAS exceedance
* taxi-speed exceedance
* light misuse
* fuel-management failures
* landing-performance issues


These events affect the total score and increment the appropriate error counters.
Career Mode stores both a '''Landing Score''' and a '''Total Score'''.


[[#top|Back to top]]
They are related, but they are not the same thing.


----
Each career flight begins at '''Total Score = 100'''. Deductions are then applied for critical, configuration, lighting, speed/angle, and general-performance failures.


== Total Score and Qualification ==
If '''Passenger comfort''' is enabled, final score also includes:


Career Mode stores both:
* the running comfort-event penalty
* the end-of-flight passenger outcome penalty


* '''Landing Score'''
The final score is:
* '''Total Score'''


'''Landing Score''' and '''Total Score''' are not the same thing.
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Current Total Score model:
Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty
 
Each career flight starts at Total Score = 100.
 
Score deductions are then applied for:
- Critical errors
- Configuration errors
- Lights errors
- Speed / angle errors
- General errors
 
Passenger Comfort is tracked separately and can also reduce the final Total Score.
 
Final Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty
</pre>
</pre>
</div>


=== Total Score Deductions ===
A flight is currently marked '''Qualified for Progression''' when '''Total Score is 90 or greater'''.


<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
[[#top|Back to top]]
<pre>
Critical


Crash detected = score set to 0
----
- Threshold: landing rate greater than 900 FPM


Stall detected = -10
== Major Score Deductions ==
- Threshold: stall warning is active


Overspeed warning = -10
Below are the main deductions used by the current career scoring model.
- Threshold: overspeed warning is active


Aircraft overweight = -10
=== Critical ===
- Threshold: gross weight is greater than maximum gross weight


Unstable approach = -10
* '''Crash detected''' = score set to 0
- Checked only between 1,000 ft AGL and 100 ft AGL
* '''Stall detected''' = -10
- Triggered if vertical speed is outside -1200 to -300 FPM
* '''Overspeed warning''' = -10
  or bank angle is greater than 25°
* '''Aircraft overweight''' = -10
</pre>
* '''Unstable approach''' = -10
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
Unstable approach is evaluated only between '''1000 ft AGL''' and '''100 ft AGL'''. It is triggered if:
<pre>
Configuration


Flaps misconfigured / flap overspeed = -6
* vertical speed is outside '''-1200 to -300 FPM'''
- Triggered if:
* or bank angle is greater than '''25 degrees'''
  - flap overspeed is detected
  - or, during climb, flaps are not clean below 200 ft AGL
  - or, on final, landing flaps are not set below 1,000 ft AGL


Gear misconfigured / gear overspeed = -6
=== Configuration ===
- Triggered if:
  - landing gear overspeed is detected
  - or gear is still down above 499 ft AGL during climb
  - or gear is not extended below 1,000 ft AGL on final


Spoilers not deployed on rollout = -6
* '''Flaps misconfigured / flap overspeed''' = -6
- Triggered when:
* '''Gear misconfigured / gear overspeed''' = -6
  - spoilers are available
* '''Spoilers not deployed on rollout''' = -6
  - IAS is between 80 and 95
* '''Excess G-force''' = -6
  - spoiler position is less than 6000
* '''Fuel management failure''' = -4


Excess G-force = -6
Fuel-management failure is triggered when landing fuel is below '''7%''' of total fuel capacity.
- Threshold: absolute G-force is greater than 2.5 G


Fuel management failure = -2
=== Lights ===
- Threshold: landing fuel is below 7% of total fuel capacity
</pre>
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
* '''Navigation lights misconfigured''' = -2
<pre>
* '''Beacon lights misconfigured''' = -2
Lights
* '''Strobe lights misconfigured''' = -2
* '''Landing lights misconfigured''' = -2


Navigation lights misconfigured = -2
Landing-light misuse also includes leaving landing lights on above '''18,500 ft AGL'''.
- Threshold: ground speed greater than 5 during taxi and navigation lights are off


Beacon lights misconfigured = -2
=== Speed / Angle ===
- Threshold: ground speed greater than 5 during taxi and beacon light is off


Strobe lights misconfigured = -2
* '''Pitch angle exceeded''' = -5
- Threshold: strobe lights are off during climb or final
* '''Bank angle exceeded''' = -5
* '''IAS exceeded below 10,000 MSL''' = -4
* '''Ground speed exceeded while taxiing''' = -4


Landing lights misconfigured = -2
=== General ===
- Threshold: landing lights are not on when required
- Also triggered if landing lights are left on above 18,500 ft AGL
</pre>
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
* '''Landing score below passing threshold''' = -6
<pre>
Speed / Angle


Pitch angle exceeded = -5
[[#top|Back to top]]
- Threshold: absolute pitch angle greater than 25°


Bank angle exceeded = -5
----
- Threshold: absolute bank angle greater than 35°
 
IAS exceeded below 10,000 MSL = -4
- Triggered when:
  - IAS greater than 260
  - altitude is below 10,000 MSL
  - aircraft empty weight is greater than 200,000 lbs
 
Ground speed exceeded while taxiing = -4
- Threshold: ground speed greater than 30
</pre>
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf8ee; border-left:6px solid #d58512; border-radius:8px;">
== Landing Score ==
<pre>
General


Landing score below passing threshold = -6
Landing Score is calculated separately from the rest of the Total Score model.
- Threshold: Landing Score below 80
</pre>
</div>


=== Landing Score ===
Current landing-score weights:
 
'''Landing Score''' is calculated separately from touchdown performance.


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
<pre>
Landing Score components:
Vertical speed              = 35%
Vertical speed              = 35%
Touchdown G-force          = 15%
Touchdown G-force          = 15%
Runway threshold distance  = 30%
Runway threshold distance  = 30%
Runway centerline          = 20%
Runway centerline          = 20%
A Landing Score below 80 triggers a Landing Evaluation penalty.
</pre>
</pre>
</div>
</div>


=== Landing Score Details ===
A Landing Score below '''80''' triggers the landing-evaluation penalty.
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
Vertical-speed score buckets:
 
>= 750 FPM = 0
500-749 FPM = 50
400-499 FPM = 70
300-399 FPM = 80
200-299 FPM = 90
100-199 FPM = 100
0-99 FPM = 90
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
G-force score:
 
Ideal touchdown G-force is 1.0 G.
The score degrades linearly as touchdown G-force increases toward 2.5 G.
</pre>
</div>
 
=== Qualification for Progression ===
 
A flight is currently marked '''Qualified for Progression''' when '''Total Score is 90 or greater'''.
 
The flight log stores the qualification result along with:
 
* pay earned
* fines paid
* critical, configuration, lights, and speed error counts
* landing rate
* landing G
* block fuel
* landing score
* total score


[[#top|Back to top]]
[[#top|Back to top]]
Line 503: Line 333:
== Passenger Comfort ==
== Passenger Comfort ==


If '''Passenger comfort''' is turned on, FSFO monitors handling and comfort limits during taxi, rollout, climb, airborne flight, and final approach.
If '''Passenger comfort''' is enabled, FSFO tracks in-flight comfort events and also evaluates how the cabin actually finished the flight.
 
Passenger comfort is only monitored when:
 
* '''Passenger comfort''' is enabled
* the flight is a valid career flight
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;"><pre>
Current comfort limits:
 
Taxi speed
- >29 = Taxi Too Fast, level 1
- >34 = Taxi Too Fast, level 2
 
Taxi braking
- both brakes >90% of Max while ground speed >9 and not on a runway
 
Jerky taxi turning
- FSFO uses the same slip/skid thresholds, but the ground-speed trigger now depends on aircraft weight.
 
Jerky taxi turning penalty levels:
- Small aircraft, acftMaxGrossWeight < 60,000 lbs:
  - slip/skid >50 while ground speed >15 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >15 kt and not on a runway = level 2


- Narrow-body / medium aircraft, acftMaxGrossWeight 60,000-299,999 lbs:
The comfort system monitors categories such as:
  - slip/skid >50 while ground speed >12 kt and not on a runway = level 1
  - slip/skid >70 while ground speed >12 kt and not on a runway = level 2


- Wide-body / heavy aircraft, acftMaxGrossWeight >= 300,000 lbs:
* taxi speed
  - slip/skid >50 while ground speed >10 kt and not on a runway = level 1
* hard braking
  - slip/skid >70 while ground speed >10 kt and not on a runway = level 2
* jerky turning
* G-force
* bank angle
* pitch-rate changes
* slip/skid
* landing firmness


G-force in air
FSFO stores the highest bucket reached for each comfort category. Repeating the same or lower bucket does not keep stacking the same penalty.
- |G - 1.0| >0.45 = level 1
- |G - 1.0| >0.55 = level 2


Bank angle in air
At shutdown, FSFO also computes a separate passenger outcome score from:
- |bank| >30° = level 1
- |bank| >35° = level 2
 
Pitch Change
- pitch rate > 3° per second for 2 seconds = level 1
- pitch rate > 5° per second for 1 second = level 2
- pitch rate > 8° per second immediately = level 3
 
Slip/skid in air
- slip/skid >35 = level 1
- slip/skid >60 = level 2
 
Landing firmness
- Landing G >= 1.40 or landing rate >= 350 = level 1
- Landing G >= 1.80 or landing rate >= 500 = level 2
 
Rollout braking
- both brakes >90% of Max and ground speed >40
</pre>
</div>
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>Current comfort penalty values:
 
Taxi Too Fast                    = 0 / 2 / 4
Braking Too Hard                = 0 / 4 on taxi, 0 / 2 on rollout
Jerky Turning                    = 0 / 1 / 2
Excessive G-Force                = 0 / 2 / 4
Excessive Bank Angle            = 0 / 1 / 2
Pitch Rate Change                = 0 / 1 / 2 / 3
Slip/Skid Too High              = 0 / 1 / 2
Landing Too Firm                = 0 / 1 / 2</pre>
</div>
 
FSFO stores only the highest bucket reached for each comfort category. If the same category is triggered again at the same or a lower level, no additional penalty is added. If a worse level is reached later, only the difference to the higher bucket is added.
 
=== Effect on Final Career Score ===
 
If '''Passenger comfort''' is enabled, the final career score now uses both:
 
* the normal '''comfort event penalty''' from the limits above
* the '''actual passenger condition at shutdown/block-in''' before deboarding starts
 
The final score is calculated as:
 
<pre>
Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty
</pre>
 
The '''Comfort Penalty''' is the running total from the monitored comfort events above.
 
The '''Passenger Outcome Penalty''' is a separate end-of-flight penalty based on how the cabin actually finished the flight. This lets poor passenger outcomes matter even if they were caused by a combination of delay, anxiety, hunger, thirst, health decline, and service timing.
 
=== End-of-Flight Passenger Outcome Score ===
 
At shutdown, FSFO takes the average passenger values and builds a cabin outcome score from:


* Satisfaction
* Satisfaction
Line 604: Line 356:
* Thirst
* Thirst


The cabin outcome score is weighted as:
Poor cabin outcomes can add an extra end-of-flight penalty, capped so passenger effects matter without fully dominating the pilot score.
 
<pre>
Cabin Outcome Score =
  (Satisfaction x 0.34) +
  ((100 - Anxiety) x 0.22) +
  (Health x 0.22) +
  ((100 - Hunger) x 0.11) +
  ((100 - Thirst) x 0.11)
</pre>
 
Higher satisfaction and health help the score.
Higher anxiety, hunger, and thirst reduce the score.
 
=== Passenger Outcome Penalty Rules ===
 
At block-in, FSFO adds a modest extra penalty when passenger outcomes are poor:
 
<pre>
If Cabin Outcome Score < 85:
  add ceil((85 - score) / 4)
 
If average Satisfaction < 70:
  add ceil((70 - satisfaction) / 10)
 
If average Anxiety > 40:
  add ceil((anxiety - 40) / 15)
 
Maximum Passenger Outcome Penalty = 15 points
</pre>
 
This penalty is intentionally capped so that passenger outcomes matter, but do not completely overpower the pilot score.
 
=== Important Note About Passenger Comfort % ===
 
The live '''Passenger Comfort %''' shown on the Operations page is not used directly for the final score.
 
That live value already includes the handling comfort penalty, so using it again for final scoring would double-penalize the same event. To avoid that, FSFO uses the clean '''Cabin Outcome Score''' above for the end-of-flight passenger outcome penalty.


[[#top|Back to top]]
[[#top|Back to top]]
Line 649: Line 364:
== Fatigue ==
== Fatigue ==


If '''Enable fatigue''' is turned on, FSFO calculates fatigue from your recent workload using both:
If '''Enable fatigue''' is turned on, FSFO calculates fatigue from both:


* number of legs
* recent leg count
* block hours
* recent block hours


It evaluates three rolling workload windows:
It evaluates three rolling workload windows:


* '''Last 24 hours'''
* last 24 hours
* '''Last 72 hours'''
* last 72 hours
* '''Last 7 days'''
* last 7 days
 
Current model:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Current formula:
Acute Load  = max(legs in last 24h / 3.5, block hours in last 24h / 7)
Acute Load  = max(legs in last 24h / 3.5, block hours in last 24h / 7)
Short Load  = max(legs in last 72h / 7,  block hours in last 72h / 16)
Short Load  = max(legs in last 72h / 7,  block hours in last 72h / 16)
Weekly Load = max(legs in last 7d  / 14,  block hours in last 7d  / 32)
Weekly Load = max(legs in last 7d  / 14,  block hours in last 7d  / 32)
</pre>
</div>
The 24-hour window is intentionally stricter, so 4 legs in a day is near the limit and 5 legs in a day will usually fail readiness.


Each load is clamped from 0 to 1.
Fatigue = (Acute Load x 50) + (Short Load x 30) + (Weekly Load x 20)
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
Final fatigue:
 
Fatigue = (Acute Load × 50) + (Short Load × 30) + (Weekly Load × 20)
</pre>
</pre>
</div>
</div>
Line 684: Line 389:
The result is capped at 100 and rounded to the nearest whole percent.
The result is capped at 100 and rounded to the nearest whole percent.


Career Mode readiness fails if fatigue is greater than or equal to 75%.
Career readiness fails if fatigue is '''75% or higher'''.


[[#top|Back to top]]
[[#top|Back to top]]
Line 690: Line 395:
----
----


== Companies and Company Tiers ==
== Companies, Tiers, and Contract Commitments ==


Companies are loaded from ''Airlines.cfg''. Each airline has a tier. That tier affects hiring rules, contract-leg requirements, and pay scaling.
Career companies are grouped by tier. Tier affects contract commitment and application access.
 
Current contract-leg requirements by company tier:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Current contract-leg requirements by company tier:
Tier 1 = 30 legs
Tier 1 = 30 legs
Tier 2 = 60 legs
Tier 2 = 60 legs
Line 706: Line 411:
</div>
</div>


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If you leave a company before completing the required contract commitment, a contract-break fine can be applied.
If you leave a company before satisfying the required legs, Career Mode can apply a contract-break penalty.
</div>


[[#top|Back to top]]
[[#top|Back to top]]
Line 714: Line 417:
----
----


== Ranks ==
== Ranks and Promotions ==


Career Mode uses a five-rank system:
Career Mode uses five ranks:


* '''Rank 1''' - Cadet
* '''Cadet'''
* '''Rank 2''' - Second Officer
* '''Second Officer'''
* '''Rank 3''' - First Officer
* '''First Officer'''
* '''Rank 4''' - Captain
* '''Captain'''
* '''Rank 5''' - Senior Captain
* '''Senior Captain'''


Your rank affects:
Promotions are based on:


* the maximum leg distance used in automatic scheduling
* total legs
* your bidding advantage when schedules are generated
* average score
* which companies you can apply to if rank-based hiring is enabled
* your promotion eligibility
* your pay multiplier through Career Tier


[[#top|Back to top]]
Before any promotion is possible, your '''Average Score must be at least 92.0'''.


----
Promotion thresholds:
 
== How Promotions Work ==
 
Promotions are based on two things:
 
* '''Total Legs'''
* '''Average Score'''
 
<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
<strong>Requirement:</strong> Your <strong>Average Score</strong> must be at least <strong>92.0</strong> before any promotion is possible.
</div>


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
<pre>
Promotion thresholds:
50 total legs  = Second Officer
50 total legs  = Second Officer
125 total legs = First Officer
125 total legs = First Officer
Line 758: Line 445:
</div>
</div>


If your flight is not credited toward progression, it will not count toward promotion.
If a flight does not count toward progression, it does not count toward promotion either.


[[#top|Back to top]]
[[#top|Back to top]]
Line 766: Line 453:
== Career Tier and Pay ==
== Career Tier and Pay ==


Each company has a base hourly pay rate. Base pay is assigned by region and is intended to reflect the average starting pay for airline pilots in that part of the world.
Each company has a base hourly pay rate. Career Tier then adds a fixed hourly raise on top of that base rate.


Career Tier increases with promotion. Pay is recalculated using a fixed hourly raise, not a multiplier.
Current Career Tier raises:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
<pre>
Current Career Tier hourly raises:
Tier 1 = +$0/hr
Tier 1 = +$0/hr
Tier 2 = +$5/hr
Tier 2 = +$5/hr
Line 780: Line 465:
Tier 5 = +$28/hr
Tier 5 = +$28/hr


Final hourly pay = company base hourly pay + current Career Tier hourly raise
Final hourly pay = company base hourly pay + current Career Tier raise
</pre>
</pre>
</div>
</div>


When you are promoted, FSFO updates:
Career pay is not a simple percentage multiplier model in the current build.
 
* your rank
* your career tier
* your pay per hour


[[#top|Back to top]]
[[#top|Back to top]]
Line 796: Line 477:
== Company Applications ==
== Company Applications ==


If '''Application based on rank''' is enabled, not every pilot can freely join every airline tier.
If '''Application based on rank''' is enabled, company access is restricted by rank and tier.
 
Current hiring chances:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Current hiring chances:
Cadet
Cadet
- Tier 1 = 100%
- Tier 1 = 100%
Line 826: Line 507:
</div>
</div>


<div style="margin:0.6em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
If you are rejected by the same company, there is currently a '''7-day wait''' before retrying.
If you are rejected by the same company, FSFO enforces a 7-day wait before trying again.
</div>


[[#top|Back to top]]
[[#top|Back to top]]
Line 834: Line 513:
----
----


== Type Ratings ==
== Type Ratings and Training ==


Type Ratings are used to control which aircraft a pilot is qualified to fly in Career Mode.
If '''Must have type rating''' is enabled, FSFO verifies that the pilot already holds the required rating for the aircraft being flown.


If '''Must Have Type Rating''' is enabled, FSFO checks the current aircraft against the type-rating alias file and verifies that the pilot already holds the required rating before the flight can qualify as career-ready.
A missing rating can block the flight from being ready or from counting cleanly.


A pilot must already belong to a company before applying for a new type rating. FSFO will not allow a new application if:
When applying for a new type rating, there are two training paths:


* the pilot does not currently belong to a company
* '''Private Training'''
* the pilot is already in training
Uses personal funds immediately.
* the pilot already holds the selected type rating


When applying for a new type rating, FSFO offers two training paths:
* '''Company Training'''
Extends the current contract instead of charging the full training cost directly to your balance.


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
Private training cannot be started if it would push the pilot below '''-75,000''' balance.
<pre>
Private Training
- deducts the training cost from your balance
- cost is adjusted by region using the current company's hub
- cannot be started if the new balance would fall below -75,000


Company Training
Current training profiles:
- does not charge the training cost directly to your balance
- increases your Contract Remaining Legs instead
</pre>
</div>


Training length and cost depend on the selected type-rating group:
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#f4f9f6; border-left:6px solid #5cb85c; border-radius:8px;">
<pre>
<pre>
CRJ / F7X
CRJ / F7X
- 5 training days
- 5 training days
- Private Training: 15,000 × regional multiplier
- Private Training: 15,000 x regional multiplier
- Company Training: +20 contract legs
- Company Training: +20 contract legs


A32 / B73
A32 / B73
- 7 training days
- 7 training days
- Private Training: 25,000 × regional multiplier
- Private Training: 25,000 x regional multiplier
- Company Training: +35 contract legs
- Company Training: +35 contract legs


A31 / A33 / B76 / B77 / MD1 / MD11
A31 / A33 / B76 / B77 / MD1 / MD11
- 10 training days
- 10 training days
- Private Training: 45,000 × regional multiplier
- Private Training: 45,000 x regional multiplier
- Company Training: +60 contract legs
- Company Training: +60 contract legs


All other supported type ratings
All other supported type ratings
- 7 training days
- 7 training days
- Private Training: 20,000 × regional multiplier
- Private Training: 20,000 x regional multiplier
- Company Training: +30 contract legs
- Company Training: +30 contract legs
</pre>
</pre>
</div>
</div>
Once training is started, FSFO records the training type, start date, duration, and end date in the pilot profile.


[[#top|Back to top]]
[[#top|Back to top]]
Line 893: Line 559:
----
----


== Company Discipline, Warnings, and Termination ==
== Company Discipline and Termination ==


If '''Can be fired''' is enabled, FSFO tracks company discipline through warnings and possible termination.
If '''Can be fired''' is enabled, FSFO tracks company warnings and termination risk.


Warnings do not begin immediately. A pilot must complete at least '''5 company legs''' before warning thresholds are evaluated.
Warnings do not begin immediately. A pilot must complete at least '''5 company legs''' before warning thresholds are evaluated.


After that point, FSFO checks the pilot's accumulated company error rates against the following warning thresholds:
Current warning thresholds:


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3; border-radius:8px;">
<pre>
<pre>
Warning thresholds:
Critical errors      = 10% of company legs
Critical errors      = 10% of company legs
Configuration errors = 25% of company legs
Configuration errors = 25% of company legs
Line 912: Line 576:
</div>
</div>


If any category reaches its threshold, FSFO issues a company warning and increases the pilot's warning count by 1.
A pilot can be terminated if any of the following occur:
 
A pilot may be terminated from the current company if either of the following occurs:
 
<div style="margin:0.6em 0; padding:0.8em 1em; background:#fdf3f2; border-left:6px solid #c9302c; border-radius:8px;">
<pre>
Termination conditions:
 
Warnings on file >= 3
or
Most recent flight Total Score < 50
or
Pilot's total average score < 80
</pre>
</div>


If a pilot is terminated, FSFO currently applies the following career penalties:
* warnings on file reach '''3'''
* most recent flight Total Score is below '''50'''
* total average score falls below '''80.0'''


* current company is cleared
If terminated, the current build applies major penalties, including:
* pay per hour is set to 0
* company legs are reset to 0
* contract remaining legs are reset to 0
* critical, configuration, speed, and lights error totals are reset
* warnings are reset to 0
* the current schedule is cleared
* the pilot is demoted by one rank, down to a minimum of Cadet
* Career Tier is adjusted to match the new rank


If '''Can be fired''' is turned off, FSFO does not terminate the pilot through this system.
* current company cleared
* pay set to 0
* company legs reset
* contract remaining legs reset
* error counters reset
* warnings reset
* current schedule cleared
* rank reduced by one level, down to a minimum of Cadet
* career tier adjusted to match the new rank


[[#top|Back to top]]
[[#top|Back to top]]
Line 946: Line 598:
----
----


== Flight Log ==
== Troubleshooting ==


The Flight Log is the permanent history of your career flights.
=== My career flight is not ready ===


Each flight log entry stores:
Check these first:


* date
* Are you signed in to Pilot Portal?
* company
* Does the next assignment in Career Snapshot match the route you are about to fly?
* flight number
* Are you starting from the correct airport?
* aircraft
* Does the current aircraft satisfy the type-rating rule?
* from airport
* Is fatigue below the failure threshold?
* to airport
* block time
* landing score
* total score
* landing rate
* landing G
* block fuel
* critical/configuration/lights/speed error counts
* qualification result
* pay earned
* fines paid


Use the Flight Log window to review your performance over time.
=== My flight did not count toward progression ===


[[#top|Back to top]]
If '''Must fly scheduled flight''' is enabled, verify that:
 
* you flew the next pending leg
* you started from the correct departure airport
* you arrived at the correct destination


----
=== I cannot generate a new schedule ===


== Route Map ==
If '''Lock schedule until complete''' is enabled, finish the current schedule first or regenerate only after the lock condition is cleared in the portal workflow.


After a schedule is generated, FSFO can build a route map from the loaded schedule legs and open it externally.
=== I was rejected by a company ===


[[#top|Back to top]]
If rank-based applications are enabled:


----
* confirm your current rank allows that company tier
* wait out the current 7-day retry cooldown if you were recently rejected


== Notes ==
=== My score seems lower than expected ===


<div style="margin:0.6em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
Check for:
Quick reference notes for current Career Mode behavior.
</div>


* Career Mode currently supports one local pilot profile
* unstable approach
* The current schedule stores only the active trip
* landing score below 80
* The flight log is the permanent historical record
* low landing fuel
* lighting/configuration mistakes
* comfort penalties
* poor passenger outcome at shutdown


[[#top|Back to top]]
[[#top|Back to top]]
----
== Troubleshooting ==
=== "PilotProfile was not found" ===
<div style="margin:0.4em 0; padding:0.6em 0.8em; background:#fdf7f2; border-left:4px solid #f0ad4e;">
Create or rebuild the database, then apply to a company.
</div>
=== No schedule was generated ===
Check that:
* ''routes.csv'' exists
* the file format is valid
* routes match the current airline
* type-rating rules are not filtering everything out
* the requested leg count is realistic for the route pool
=== My flight did not count toward progression ===
If '''Must fly scheduled flight''' is enabled, verify that:
* you flew the next pending leg in order
* you started at the scheduled departure airport
* you arrived at the scheduled arrival airport
* the flight number matched when required
=== I cannot generate a new schedule ===
If '''Lock schedule until complete''' is enabled, finish the current schedule first or turn that option off.
=== My flight was blocked before departure ===
Check whether one of the following options prevented readiness:
* '''Start from last airport'''
* '''Enable fatigue'''
* '''Must have type rating'''


----
----


<div style="margin:1em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
<div style="margin:1em 0; padding:0.8em 1em; background:#eef3fb; border-left:6px solid #1f4fa3;">
For additional setup help, see [[Getting Started]]. For general problem solving, see [[Troubleshooting]].
For initial setup help, see [[Getting Started]]. For voice features, see [[Voice Commands]]. For general problem solving, see [[Troubleshooting]].
</div>
</div>


[[Category:User Guide]]
[[Category:User Guide]]
[[Category:Career Mode]]
[[Category:Career Mode]]

Revision as of 17:08, 2 June 2026

FSFO Career Mode User Guide

This page explains how Career Mode works in the current FSFO v6 build, including the Career Snapshot page, Pilot Portal integration, schedules, bidding, readiness rules, scoring, type ratings, fatigue, and company discipline.

Career Mode is now a Pilot Portal-backed system. FSFO still performs the live in-sim validation and scoring, but your career identity, synced rule settings, next assignment, training, schedule workflow, and broader career data are driven by Pilot Portal.


Overview

Career Mode is designed for pilots who want one persistent pilot identity instead of isolated flights.

Your career includes:

  • your pilot identity
  • current company
  • rank and career tier
  • pay and balance
  • type ratings
  • current location
  • schedule and next assignment
  • fatigue and readiness rules
  • long-term progression

From a user perspective, the flow is simple:

  1. Sign in to Pilot Portal
  2. Open Career Snapshot in FSFO
  3. Review your next assignment and current rules
  4. Make sure the aircraft, location, and route all match
  5. Fly only after FSFO says the career flight is ready
  6. Let FSFO score and upload the result

Back to top


Career Snapshot, Contract, and Portal

The main Career page in FSFO is now Career Snapshot.

It is not the old all-in-one local dashboard. Instead, it is the place where you confirm that your live career state makes sense before departure.

The top buttons serve different purposes:

  • Help opens the in-app Career guide
  • Contract opens the current career agreement and scoring summary
  • Portal opens the Pilot Portal side of Career Mode

Use Career Snapshot as your final preflight check. If the next leg, company, route, type rating, or location looks wrong there, fix it before flying.

Back to top


Quick Start

To begin using Career Mode in the current build:

  1. Create and sign in to your Pilot Portal account
  2. Open Career Snapshot in FSFO
  3. Use Portal to manage your career settings, current company, schedule, and training
  4. Review the synced rule settings shown in FSFO
  5. Confirm your next pending assignment
  6. Load the correct aircraft
  7. Start from the correct airport
  8. Fly the leg only after FSFO confirms the career flight is ready

Important: A flight can still be flown and scored without advancing your career. If schedule enforcement is active, the leg must match the next pending assignment correctly for progression to count.

Back to top


Career Rule Settings

Career rule settings are synced from Pilot Portal and then enforced by FSFO during readiness checks and post-flight progression.

Current synced rules include:

  • Start from last airport

Requires you to begin near the pilot's stored location. FSFO checks that you are within 10 NM of that saved airport before the flight is considered ready.

  • Fatal crash starts over

This is part of the synced career policy and should be treated as a high-stakes crash rule for your career profile.

  • Must fly scheduled flight

Only the next pending scheduled leg counts toward progression.

  • Passenger comfort

Enables the comfort and passenger-outcome scoring model described below.

  • Can be fired

Enables warnings, discipline, and possible termination for repeated poor performance.

  • Enable fatigue

Turns on workload-based fatigue checks. If fatigue is too high, the flight may not be considered ready.

  • Schedule based on rank

Uses your current rank to set the maximum leg distance during schedule generation.

  • Must have type rating

Requires the pilot to hold the correct rating for the aircraft being flown.

  • Lock schedule until complete

Prevents generating a new schedule while incomplete legs still remain.

  • Application based on rank

Restricts which company tiers you can join and applies rank-based hiring chance.

  • Upload data

Controls whether the career flight result is intended to upload through the live portal-backed workflow.

Back to top


Before You Fly: Readiness

Before a career flight is allowed to count cleanly, FSFO can validate:

  • Pilot Portal sign-in and synced identity
  • current company
  • next pending assignment
  • departure location
  • type-rating compliance
  • fatigue
  • the currently enabled career rules

The most common readiness blockers are:

  • wrong departure airport
  • wrong route
  • wrong aircraft or missing type rating
  • fatigue above the allowed threshold

Back to top


Schedule Generation

Schedules are now generated through Pilot Portal, not through the old local Career Dashboard workflow.

The active schedule still matters to FSFO because it is used for:

  • next-leg validation
  • progression credit
  • schedule completion tracking
  • schedule lock enforcement

On the portal side, schedule generation currently supports a requested leg count and builds a continuous assignment from the pilot's available route network.

If Schedule based on rank is enabled, the current maximum leg distance by rank is:

Cadet           = 600 NM
Second Officer  = 1200 NM
First Officer   = 2500 NM
Captain         = 5000 NM
Senior Captain  = 10000 NM

If the portal cannot build a complete schedule under that rank-based limit, it retries using the broader eligible route pool.

If Lock schedule until complete is enabled, you must finish or clear the current schedule before generating a new one.

Back to top


Bidding and Reserve

Career bidding is now handled through the portal's Bid & Reserve workflow rather than the older freeform route-bid text box model.

In the current system:

  • you stack bids from the available route list
  • you submit them through the portal
  • the portal shows a live Award Chance
  • that chance is influenced by both:
    • your current rank
    • your completed company-leg history

This means bidding is no longer based on rank alone. Senior pilots generally have a stronger bidding profile, but consistent company flying also helps.

If you are documenting the current product, do not describe bidding as a comma-separated airport-pair text field. That was the older model.

Back to top


When a Flight Counts Toward Progression

A career flight does not automatically count toward career progression.

If Must fly scheduled flight is enabled, FSFO compares the actual flight against the next pending assignment.

For the leg to count, the pilot must correctly match:

  • the scheduled departure airport
  • the scheduled arrival airport
  • the next pending leg in order

If the flight does not meet the progression rules, it can still be flown and scored, but no career advancement is applied.

That means the flight will not update:

  • Total Legs
  • Average Score
  • Company Legs
  • Contract Remaining Legs
  • Balance
  • Rank
  • Career Tier
  • Pay per hour

Back to top


Total Score and Qualification

Career Mode stores both a Landing Score and a Total Score.

They are related, but they are not the same thing.

Each career flight begins at Total Score = 100. Deductions are then applied for critical, configuration, lighting, speed/angle, and general-performance failures.

If Passenger comfort is enabled, final score also includes:

  • the running comfort-event penalty
  • the end-of-flight passenger outcome penalty

The final score is:

Total Score = Pilot Score - Comfort Penalty - Passenger Outcome Penalty

A flight is currently marked Qualified for Progression when Total Score is 90 or greater.

Back to top


Major Score Deductions

Below are the main deductions used by the current career scoring model.

Critical

  • Crash detected = score set to 0
  • Stall detected = -10
  • Overspeed warning = -10
  • Aircraft overweight = -10
  • Unstable approach = -10

Unstable approach is evaluated only between 1000 ft AGL and 100 ft AGL. It is triggered if:

  • vertical speed is outside -1200 to -300 FPM
  • or bank angle is greater than 25 degrees

Configuration

  • Flaps misconfigured / flap overspeed = -6
  • Gear misconfigured / gear overspeed = -6
  • Spoilers not deployed on rollout = -6
  • Excess G-force = -6
  • Fuel management failure = -4

Fuel-management failure is triggered when landing fuel is below 7% of total fuel capacity.

Lights

  • Navigation lights misconfigured = -2
  • Beacon lights misconfigured = -2
  • Strobe lights misconfigured = -2
  • Landing lights misconfigured = -2

Landing-light misuse also includes leaving landing lights on above 18,500 ft AGL.

Speed / Angle

  • Pitch angle exceeded = -5
  • Bank angle exceeded = -5
  • IAS exceeded below 10,000 MSL = -4
  • Ground speed exceeded while taxiing = -4

General

  • Landing score below passing threshold = -6

Back to top


Landing Score

Landing Score is calculated separately from the rest of the Total Score model.

Current landing-score weights:

Vertical speed              = 35%
Touchdown G-force           = 15%
Runway threshold distance   = 30%
Runway centerline           = 20%

A Landing Score below 80 triggers the landing-evaluation penalty.

Back to top


Passenger Comfort

If Passenger comfort is enabled, FSFO tracks in-flight comfort events and also evaluates how the cabin actually finished the flight.

The comfort system monitors categories such as:

  • taxi speed
  • hard braking
  • jerky turning
  • G-force
  • bank angle
  • pitch-rate changes
  • slip/skid
  • landing firmness

FSFO stores the highest bucket reached for each comfort category. Repeating the same or lower bucket does not keep stacking the same penalty.

At shutdown, FSFO also computes a separate passenger outcome score from:

  • Satisfaction
  • Anxiety
  • Health
  • Hunger
  • Thirst

Poor cabin outcomes can add an extra end-of-flight penalty, capped so passenger effects matter without fully dominating the pilot score.

Back to top


Fatigue

If Enable fatigue is turned on, FSFO calculates fatigue from both:

  • recent leg count
  • recent block hours

It evaluates three rolling workload windows:

  • last 24 hours
  • last 72 hours
  • last 7 days

Current model:

Acute Load  = max(legs in last 24h / 3.5, block hours in last 24h / 7)
Short Load  = max(legs in last 72h / 7,   block hours in last 72h / 16)
Weekly Load = max(legs in last 7d  / 14,  block hours in last 7d  / 32)

Fatigue = (Acute Load x 50) + (Short Load x 30) + (Weekly Load x 20)

The result is capped at 100 and rounded to the nearest whole percent.

Career readiness fails if fatigue is 75% or higher.

Back to top


Companies, Tiers, and Contract Commitments

Career companies are grouped by tier. Tier affects contract commitment and application access.

Current contract-leg requirements by company tier:

Tier 1 = 30 legs
Tier 2 = 60 legs
Tier 3 = 90 legs
Tier 4 = 120 legs
Tier 5 = 150 legs

If you leave a company before completing the required contract commitment, a contract-break fine can be applied.

Back to top


Ranks and Promotions

Career Mode uses five ranks:

  • Cadet
  • Second Officer
  • First Officer
  • Captain
  • Senior Captain

Promotions are based on:

  • total legs
  • average score

Before any promotion is possible, your Average Score must be at least 92.0.

Promotion thresholds:

50 total legs  = Second Officer
125 total legs = First Officer
200 total legs = Captain
350 total legs = Senior Captain

If a flight does not count toward progression, it does not count toward promotion either.

Back to top


Career Tier and Pay

Each company has a base hourly pay rate. Career Tier then adds a fixed hourly raise on top of that base rate.

Current Career Tier raises:

Tier 1 = +$0/hr
Tier 2 = +$5/hr
Tier 3 = +$10/hr
Tier 4 = +$18/hr
Tier 5 = +$28/hr

Final hourly pay = company base hourly pay + current Career Tier raise

Career pay is not a simple percentage multiplier model in the current build.

Back to top


Company Applications

If Application based on rank is enabled, company access is restricted by rank and tier.

Current hiring chances:

Cadet
- Tier 1 = 100%

Second Officer
- Tier 1 = 100%
- Tier 2 = 50%

First Officer
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 50%

Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 75%

Senior Captain
- Tier 1 = 100%
- Tier 2 = 100%
- Tier 3 = 95%

If you are rejected by the same company, there is currently a 7-day wait before retrying.

Back to top


Type Ratings and Training

If Must have type rating is enabled, FSFO verifies that the pilot already holds the required rating for the aircraft being flown.

A missing rating can block the flight from being ready or from counting cleanly.

When applying for a new type rating, there are two training paths:

  • Private Training

Uses personal funds immediately.

  • Company Training

Extends the current contract instead of charging the full training cost directly to your balance.

Private training cannot be started if it would push the pilot below -75,000 balance.

Current training profiles:

CRJ / F7X
- 5 training days
- Private Training: 15,000 x regional multiplier
- Company Training: +20 contract legs

A32 / B73
- 7 training days
- Private Training: 25,000 x regional multiplier
- Company Training: +35 contract legs

A31 / A33 / B76 / B77 / MD1 / MD11
- 10 training days
- Private Training: 45,000 x regional multiplier
- Company Training: +60 contract legs

All other supported type ratings
- 7 training days
- Private Training: 20,000 x regional multiplier
- Company Training: +30 contract legs

Back to top


Company Discipline and Termination

If Can be fired is enabled, FSFO tracks company warnings and termination risk.

Warnings do not begin immediately. A pilot must complete at least 5 company legs before warning thresholds are evaluated.

Current warning thresholds:

Critical errors      = 10% of company legs
Configuration errors = 25% of company legs
Speed errors         = 35% of company legs
Lights errors        = 50% of company legs

A pilot can be terminated if any of the following occur:

  • warnings on file reach 3
  • most recent flight Total Score is below 50
  • total average score falls below 80.0

If terminated, the current build applies major penalties, including:

  • current company cleared
  • pay set to 0
  • company legs reset
  • contract remaining legs reset
  • error counters reset
  • warnings reset
  • current schedule cleared
  • rank reduced by one level, down to a minimum of Cadet
  • career tier adjusted to match the new rank

Back to top


Troubleshooting

My career flight is not ready

Check these first:

  • Are you signed in to Pilot Portal?
  • Does the next assignment in Career Snapshot match the route you are about to fly?
  • Are you starting from the correct airport?
  • Does the current aircraft satisfy the type-rating rule?
  • Is fatigue below the failure threshold?

My flight did not count toward progression

If Must fly scheduled flight is enabled, verify that:

  • you flew the next pending leg
  • you started from the correct departure airport
  • you arrived at the correct destination

I cannot generate a new schedule

If Lock schedule until complete is enabled, finish the current schedule first or regenerate only after the lock condition is cleared in the portal workflow.

I was rejected by a company

If rank-based applications are enabled:

  • confirm your current rank allows that company tier
  • wait out the current 7-day retry cooldown if you were recently rejected

My score seems lower than expected

Check for:

  • unstable approach
  • landing score below 80
  • low landing fuel
  • lighting/configuration mistakes
  • comfort penalties
  • poor passenger outcome at shutdown

Back to top


For initial setup help, see Getting Started. For voice features, see Voice Commands. For general problem solving, see Troubleshooting.