Fleet Schedule Optimizer
Comprehensive System Documentation for FAA Part 135 Flight Schedule Optimization
Introduction
The Fleet Schedule Optimizer is a sophisticated tool designed for FAA 14 CFR Part 135 charter operations to minimize non-revenue repositioning flights (empty legs) across a fleet of aircraft. By intelligently analyzing flight schedules and aircraft capabilities, the system identifies opportunities to swap flight assignments between aircraft, reducing operational costs and improving fleet efficiency.
What Problem Does It Solve?
In charter operations, aircraft often end up in different locations after completing flights. To begin the next scheduled flight, they must reposition to the departure airport—creating "empty legs" with no revenue but full costs. When multiple aircraft are flying similar routes, smart assignment swapping can dramatically reduce these empty legs.
- Aircraft N1111: Flies KTEB → KMIA, then needs to reposition KMIA → KBOS (3.5 hour empty leg)
- Aircraft N2222: Flies KBOS → KTEB, then needs to reposition KTEB → KMIA (4.0 hour empty leg)
- After Optimization: N1111 flies KTEB → KTEB (0 hours), N2222 flies KBOS → KMIA (0 hours)
- Total Savings: 7.5 empty leg hours eliminated
System Overview
Core Capabilities
Fleet Management
Add and configure aircraft with specifications including passenger capacity, crew requirements, international WiFi, home base, and daily return requirements.
Flight Scheduling
Schedule multiple flights per aircraft with departure/arrival airports, passenger counts, times, and specific requirements like international WiFi.
Maintenance Windows
Define scheduled maintenance periods (A-Check, B-Check, etc.) that prevent flight assignments during those times.
Optimization Engine
Intelligent algorithm analyzes all possible flight swaps considering constraints like capacity, crew requirements, WiFi, and maintenance.
Cost Calculator
Calculate financial impact of optimizations with configurable operating cost per hour, showing both time and dollar savings.
Visual Timeline
Gantt-style timeline visualization showing flights and maintenance windows across the fleet with week/month/all views.
CSV Import
Bulk import flight schedules from CSV files with validation and automatic aircraft creation.
Export Reports
Generate comprehensive HTML reports with optimization results, savings breakdown, and recommendations.
How It Works
The Optimization Process
The Fleet Schedule Optimizer uses a constraint-based greedy algorithm to identify the best flight swaps. Here's the step-by-step process:
Flight Collection & Validation
System collects all flights from all aircraft and validates that each has required data: departure/arrival airports, passenger count, and any special requirements.
Pairwise Comparison
Every flight on each aircraft is compared with every flight on every other aircraft to identify potential swap candidates. Same-aircraft pairs are never generated. For a fleet of 10 aircraft with 5 flights each, that is 45 aircraft pairs × 25 flight pairs = 1,125 combinations, and the full scan is repeated on every pass of the improvement loop.
Constraint Validation
Each potential swap is validated against multiple constraints:
- Passenger Capacity: Can each aircraft handle the other's passenger count?
- International WiFi: If flight requires WiFi, does the aircraft have it?
- Aircraft Category: If the swap moves a leg to a smaller aircraft category, is that leg flagged "Allow Downgrade"?
- Maintenance Windows: Would the swap occur during scheduled maintenance?
- Schedule Continuity: After the swap, can each aircraft still reposition between its consecutive flights and make minimum turnaround?
Savings Calculation
For valid swaps, calculate empty leg hours before and after the swap. The algorithm considers repositioning required both before and after each flight, factoring in Great Circle distances and aircraft cruise speeds.
Iterative Improvement
Each pass re-scans every cross-aircraft flight pair and applies only the single best swap, and only if it saves more than 0.1 hour. The fleet is then re-scanned against the updated assignments and the process repeats — so the same flight can move again on a later pass. The loop stops when a pass finds no qualifying swap, or after 50 passes.
Results Presentation
Every swap the loop found has already been applied to the fleet in memory by the time results appear. The panel reports the reassignments that were made — before/after route comparisons, total hours saved, financial impact, and per-aircraft savings breakdown. The list headed "Recommended Swaps" is a record of changes already in effect: there is no accept, reject, or undo control.
What the Optimizer Weighs
| Factor | Type | Impact on Optimization |
|---|---|---|
| Empty Leg Distance | Primary Objective | Calculated using Great Circle formula and aircraft cruise speed. The main metric being minimized. |
| Passenger Capacity | Hard Constraint | Swap rejected if either aircraft cannot accommodate the other flight's passengers. |
| International WiFi | Hard Constraint | Swap rejected if flight requires WiFi but swapped aircraft doesn't have it. |
| Aircraft Category | Hard Constraint | Swap rejected if it moves a leg to a smaller aircraft category, unless that leg is flagged "Allow Downgrade." |
| Maintenance Windows | Hard Constraint | Swap rejected if either flight would occur during the swapped aircraft's maintenance period. |
| Schedule Continuity | Hard Constraint | Swap rejected if either aircraft could no longer reposition between consecutive flights in the time available, or would be left with less than 1.0 hour of turnaround. |
| Home Base | Informational | Tracked for operational planning but not currently enforced as constraint. |
| Operating Cost ($/hr) | Display Only | User-configurable value for calculating financial savings. Doesn't affect optimization logic. |
- Crew certification matching — the Crew Requirement recorded on an aircraft and on a leg is stored but never evaluated, so a Wyvern-required leg can be swapped onto a Standard aircraft
- Crew rest requirements or duty day limits
- Multi-leg flight packages that must stay together
User Guide
Layout
The tool is organized as four tabs across the top of the page. The steps below say which tab each one happens on — you switch tabs rather than scroll one long page.
- Fleet — the Fleet Configuration card (add, edit, remove aircraft; maintenance windows) and the two CSV importers
- Schedule — the Flight Schedules card, one collapsible row per aircraft
- Timeline — the Gantt view, with Week/Month/All and Export / Print
- Optimize — the Optimize Schedule button, the results panel, and Export Report
Step 1: Build Your Fleet
- On the Fleet tab, in Fleet Configuration, click "+ Add Aircraft"
- Enter aircraft tail number (e.g., N1234B)
- Select aircraft type from dropdown (pre-populated with cruise speeds)
- Configure passenger capacity
- Select crew requirements (Standard, Wyvern, Argus, FX Air, IS-BAO)
- Check "International WiFi" if equipped
- Optionally set home base airport code
- Optionally enable "Must Return to Base Daily"
- Click "Save Aircraft"
Step 2: Schedule Flights
- On the Schedule tab, find your aircraft in the Flight Schedules card and click its row to expand it
- Click "+ Add Flight"
- Enter departure airport code (autocomplete available)
- Enter arrival airport code
- Specify passenger count
- Select departure date and time
- Check "International WiFi Required" if needed
- Repeat for all flights
- Click "Download Template" under the importer you want
- Fill in your data in Excel/Google Sheets
- Drag and drop the CSV file into that importer's drop area
- Review the preview and click "Import"
Step 3: Configure Maintenance (Optional)
- On the Fleet tab, click the "Maintenance" button on the aircraft's card in Fleet Configuration
- Select maintenance type (A-Check, B-Check, etc.)
- Set start and end dates/times
- Enter location airport code
- Add optional notes
- Click "Add Maintenance Window"
Maintenance windows appear as orange striped blocks on the timeline and prevent flight swaps during those periods.
Step 4: Run Optimization
- Ensure all flights have complete data (airports, passengers, times)
- On the Optimize tab, click the green "Optimize Schedule" button
- The swaps are applied to your fleet the moment you click. The Optimization Results card that appears reports the reassignments already made — it does not ask you to approve them, and there is no undo
- Examine the before/after route comparisons
- Check total hours and cost savings
- Review per-aircraft savings breakdown
Step 5: Set Operating Costs
- Operating cost is a per-aircraft value, not a page-level setting. Set Operating Cost ($/hr) in the Add Aircraft modal (defaults to 4500), or supply it in the
Cost_Per_Hourcolumn of the fleet CSV - The Financial Impact panel at the top of the Optimization Results card lists each aircraft's rate, but computes the headline savings from the unweighted fleet average of those rates — on a mixed fleet a $9,000/hr heavy and a $2,800/hr midsize average to $5,900/hr regardless of which tail actually saved the hours. The Savings by Aircraft table further down does use each aircraft's own rate. There is no page-level cost field and no Update button
- To change a rate, use the aircraft's Edit button on the Fleet tab, then re-run the optimization
Step 6: Export Report
- The Optimization Results card is hidden until an optimization has run. After optimizing, scroll to the bottom of that card on the Optimize tab and click "Export Report"
- An HTML file downloads, named
Schedule_Optimization_<date>.html. No window opens — look for the file in your downloads folder - Open the downloaded file and click "Print Report" inside it to print or save as PDF
- Report includes all optimization details and the swaps that were applied
The Export / Print button on the Timeline tab is a different control: it exports the timeline view, not the optimization report.
Technical Details
Enhanced Realistic Flight Time Calculation
The Fleet Schedule Optimizer uses an enhanced flight time calculation methodology that goes beyond simple Great Circle distance calculations. This provides significantly more accurate flight time estimates for real-world Part 135 operations.
Calculation Components
Flight times are calculated using the Haversine formula for Great Circle distance, plus additional operational factors:
- Base Distance: Haversine formula calculates shortest distance on Earth's surface (3440.065 NM radius)
- Climb & Descent Time: 15-20 minutes added based on flight distance (jets climb at 2,500-3,500 fpm)
- ATC Routing Factor: 4-12% distance increase due to airways, SIDs, STARs (higher for shorter flights)
- Terminal Speed Restrictions: ~4 minutes for 250-knot speed limit below 10,000 feet (14 CFR 91.117)
- Prevailing Winds: ±4% adjustment on flights >1,000 NM (eastbound faster, westbound slower)
- Taxi Time: 12 minutes total (6 minutes departure + 6 minutes arrival)
Complete Documentation: For detailed information about the flight time calculation methodology, formulas, examples, and accuracy expectations, see the Flight Time Calculation Methodology documentation.
What the Enhanced Calculation Adds
The enhanced calculation adds climb and descent, routing, terminal-area and wind allowances that a distance-only estimate leaves out; they matter most on short legs, where they are a larger share of the flight. Its accuracy against flown times has not been measured.
Example (KTEB → KLAX, 2,132.8 NM great circle, Citation X+ @ 527 kts):
Simple calculation: 4.25 hours
Enhanced calculation: 4.92 hours
Difference: +0.67 hours (40 minutes) — the full six-step chain is worked in the methodology page
Airport Database
The system uses an airport database of roughly 9,800 airports worldwide, loaded at runtime from
assets/data/airports.csv by js/shared/airports.js, with:
- ICAO and IATA codes
- Airport names
- Latitude and longitude coordinates
- Country information
Aircraft Database
Pre-configured aircraft types (aircraft.js) include:
- Aircraft manufacturer and model names
- ICAO type designators
- Cruise speeds in knots
Data Storage
All data is stored locally in the browser using JavaScript state management. No data is sent to external servers. The only thing remembered between sessions is which tab was last open; fleet, flights, maintenance windows and operating costs are held in memory and are cleared when the page reloads.
Browser Compatibility
The Fleet Schedule Optimizer works in all modern browsers supporting ES6+ JavaScript:
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
Best Practices
For Optimal Results
Complete Data Entry
Ensure all flights have departure times entered. The optimizer works best with complete schedule information including exact times.
Regular Maintenance Updates
Keep maintenance schedules current. Out-of-date maintenance windows can result in invalid swap recommendations.
Accurate Operating Costs
Use your actual hourly operating costs (fuel, crew, maintenance reserves) for realistic financial impact calculations.
Timeline Review
Visually inspect the timeline before optimizing to spot potential issues or conflicts that might not be obvious in list view.
Export Before You Optimize
Optimize Schedule reassigns flights immediately — no accept/reject step, no undo. Export a report first if you need a record of the pre-optimization assignment.
Document Decisions
Export reports before and after implementing changes to document your optimization decisions and track savings over time.
Common Scenarios
Scenario 1: Last-Minute Charter Booking
A client books a same-day flight. Add it to the appropriate aircraft, then re-optimize to see if swapping with another aircraft's flight would reduce overall empty legs while still meeting the requirement.
Scenario 2: Maintenance Scheduling
Before scheduling maintenance, add the proposed maintenance window and run optimization to see how it affects your schedule. This helps choose the optimal time for maintenance with minimal operational impact.
Scenario 3: Fleet Expansion Analysis
Add a hypothetical new aircraft to your fleet and assign it some flights. Run optimization to see if it would reduce empty legs compared to using existing aircraft.
Scenario 4: Home Base Optimization
Set home base airports for aircraft and review the timeline to identify patterns. While not enforced as a hard constraint yet, this helps plan operations that naturally return aircraft to base.
Troubleshooting
Optimize Button Not Working
Problem: Clicking "Optimize Schedule" does nothing.
Solution:
- Ensure all flights have departure and arrival airports entered
- Verify all flights have passenger counts
- Check that you have at least 2 aircraft with flights
- Look for validation errors highlighted in red on flight rows
No Optimization Results Found
Problem: Optimization runs but shows "No optimization opportunities found."
Possible Causes:
- Aircraft Constraints Too Restrictive: All aircraft have different capacities/requirements that prevent swapping
- Already Optimized: Your schedule may already be optimal with no beneficial swaps
- Maintenance Conflicts: Maintenance windows block all potential swaps
- Single Aircraft: Need at least 2 aircraft to swap flights
Timeline Not Displaying
Problem: Timeline section is hidden or shows no data.
Solution:
- Ensure flights have departure times entered (required for timeline)
- Try changing the timeline view (Week/Month/All)
- Check browser console for JavaScript errors
CSV Import Failing
Problem: CSV import shows errors or doesn't work.
Solution:
- Download the template to ensure correct format
- Verify all required columns are present
- Check that airport codes are valid ICAO/IATA codes
- Ensure dates are in a recognized format (YYYY-MM-DD HH:MM recommended)
- Remove any special characters or formatting from Excel
Maintenance Windows Not Appearing on Timeline
Problem: Maintenance blocks don't show on Gantt chart.
Solution:
- Ensure maintenance dates fall within the selected timeline view range
- Try switching to "All Flights" timeline view
- Verify the aircraft has flights scheduled (timeline only shows aircraft with flights)
Future Enhancement Possibilities
Planned Features
| Feature | Description | Benefit |
|---|---|---|
| Crew Scheduling Integration | Track crew assignments and duty day limits (14 CFR 135.267, 135.269) | Ensure optimizations respect crew rest requirements and prevent violations |
| Multi-Leg Package Support | Group related flights that must stay together (round trips, multi-day charters) | More realistic optimization for complex charter packages |
| Client Preferences | Track VIP clients, aircraft preferences, historical assignments | Maintain client satisfaction while optimizing costs |
| Weather Integration | Factor weather delays, routing changes, alternate airports | Real-time optimization adjustments based on conditions |
| Advanced Cost Modeling | Variable costs per aircraft, fuel prices, landing fees | More accurate financial impact calculations |
| Historical Analytics | Track savings over time, identify patterns, benchmark performance | Demonstrate ROI and identify optimization opportunities |
| Mobile Optimization | Responsive design for tablets and phones | Schedule management on the go |
Frequently Asked Questions
Q: Does the optimizer account for fuel burn and weight restrictions?
A: Not currently. The optimizer focuses on flight time and schedule efficiency. Fuel and weight calculations should be performed separately as part of normal dispatch procedures.
Q: Can I optimize just a portion of my fleet?
A: Yes. Simply only add the aircraft you want to optimize. You can have multiple instances of the tool open in different browser tabs for different fleet segments.
Q: How does the system handle international flights?
A: The system tracks international WiFi requirements and uses worldwide airport data. It does not currently account for customs, immigration, overflight permits, or international regulations beyond WiFi requirements.
Q: What happens if I close the browser?
A: All flight and aircraft data is lost unless you export it. The tool does not have persistent storage (by design, for privacy). Always export your data before closing.
Q: Can multiple people collaborate on the same schedule?
A: Not in real-time. The tool is single-user. For collaboration, export the report or CSV data to share with colleagues.
Q: How accurate are the flight time calculations?
A: The Fleet Schedule Optimizer uses an enhanced flight time calculation that accounts for climb/descent, ATC routing, terminal speed restrictions, and prevailing winds. Flight times are planning estimates and have not been compared with flown block times. See the Flight Time Calculation Methodology for complete details.
Q: Can I use this for Part 121 or Part 91 operations?
A: While designed for Part 135, the core optimization logic works for any operation. However, regulatory features (crew requirements, duty limits) are Part 135-specific.
Q: Is my data secure?
A: Yes. All processing happens locally in your browser. No data is transmitted to external servers. Your flight schedules, aircraft information, and optimization results remain completely private.
Regulatory Compliance Notes
- Replace required FAA dispatcher or pilot planning responsibilities
- Guarantee regulatory compliance with 14 CFR Part 135
- Account for all operational variables (weather, MEL items, crew rest, etc.)
- Serve as an approved flight planning system
Relevant Regulations
- 14 CFR 135.267: Flight time limitations (10 hours in 24 consecutive hours)
- 14 CFR 135.269: Flight time limitations and rest requirements: Unscheduled three- and four-pilot crews
- 14 CFR 135.271: Helicopter hospital emergency medical evacuation service (HEMES)
- 14 CFR 135.65: Reporting mechanical irregularities
- 14 CFR 135.411-135.443: Subpart J, maintenance, preventive maintenance and alterations
Users are responsible for ensuring all flight assignments comply with applicable regulations, company procedures, and operational specifications.
Support & Feedback
The Fleet Schedule Optimizer is part of Jetfolio, a suite of tools for Part 135 operations including:
- 10 in 24 Calculator
- Fatigue Risk Calculator
- Flight & Duty Time Tool
- Empty Leg Profitability Calculator
- Empty Leg Probability Analyzer
- Fleet Schedule Optimizer (this tool)
- Review this documentation thoroughly
- Check the Troubleshooting section
- Export a report showing the issue if applicable
- Contact your system administrator or operations manager
Fleet Schedule Optimizer Documentation | FAA Part 135 Operations
Part of Jetfolio | Revised September 2026
This tool is for operational planning purposes only. Always verify compliance with current regulations and company procedures.