
Free
About
TFPilot Override Alerter - How It Works
Overview
The TFPilot Override Alerter is a pilot pay calculator built around a collective bargaining agreement. It tracks trip pairings, monitors duty periods in real time, and calculates every override payment earned or about to be earned. The app is fully offline and uses paste-based input. Trips persist across launches via UserDefaults with JSON encoding.
The app watches four moments: pre-duty, on-duty, post-release, and between trips. A guidance banner adapts to each stage; milestone popups fire once at report, once at release, and once the next morning if actuals were not logged.
Data Model
FlightLeg - Flight number, origin, destination, scheduled/actual OUT/OFF/ON/IN, base TFP (1.0), flags: deadhead, ETOPS, SAQ, non-domestic, SSS.
DutyPeriod - Report/release times, legs array, holiday and GDO flags, pay multiple. Computes effective release as actual last block-in plus 15 min.
Pairing - Pairing ID, duty periods, domicile days, optional OriginalSnapshot for LCO diffs.
Paste Input - Three Auto-Detected Formats
New Trip / Reassignment - MM/DD/YYYY FLT# ORIG HHMM DEST HHMM [TZ] with optional RPT/REL lines. Timezones: EDT/EST, CDT/CST, MDT/MST, PDT/PST.
Final Schedule / Actuals Import - Same format; if legs match an existing pairing, times import as actual OUT/IN.
Daily Report - FLT number ORIG/DEST OUT HHMM OFF HHMM ON HHMM IN HHMM. IN earlier than OUT auto-handled as midnight crossing.
Override Calculator - All Parameters
Base rigs
DHR - ceil(dutyHours) x 0.74 TFP
DPM - flat 5.0 TFP floor per DP
ADG - 6.5 x max(domicileDays, dutyPeriods)
THR - ceil(awayHours / 3.0) x 1.0 TFP
Base daily - max(flownTFP, DHR, DPM) x payMultiple
Pairing pay - max(sumDailies, ADG, THR); overrides stack on top
Overflies
overflyMinutes x 0.02 TFP when actual block is greater than scheduled
Duty-period overrides
LDO - plus 1.00 TFP when duty is greater than 12.0 hrs
GTO - (maxGapMin - 150) x 0.01 when longest single-station ground is greater than 150 min
LRO - plus 1.00 TFP when last leg blocks in more than 120 min past reference arrival
Night - sumNightLegCredits x 0.03 for legs touching 0100-0500 domicile local
Holiday - plus 6.50 TFP for duty in 0300-0259 holiday window
GDO - plus 6.50 TFP for any duty on a Golden Day Off
Per-leg premiums
ETOPS - credits x 0.05
SAQ - credits x 0.05
Non-Dom - credits x 0.03 (no stacking with ETOPS/SAQ)
SSS - credits x 0.50
LCO - Four tiers vs. OriginalSnapshot
100% if first DP and scheduled dep earlier than original
100% if mid-DP and actual block-in more than 180 min past original last-leg
100% if final DP or turn and block-in later than original last-leg
50% standard tier for any other unscheduled leg
Live Proximity Alerts (30-sec refresh)
Window: 2 hr before report to 6 hr after release. Severity: info/warning/triggered.
LDO - warn at 30 min out; trigger at 12.0 hrs
GTO - warn at 30 min from 150-min threshold; trigger when crossed
LRO - warn at 30 min from 120-min late threshold; trigger when crossed
FAR 117 block advisory - info between 8.50 and 9.00 block hrs
Post-release - echoes earned overrides into banner
Guidance Banner and Milestone Popups
Banner updates every 30 sec: no-trip, before-report, on-duty/unflown, on-duty/complete, post-release/no-actuals, post-release/actuals, outside-window. Popups fire once per pairing/DP (keyed in UserDefaults): Report time (within 15 min after), Release time (within 15 min after), Morning-after (10-24 hr post-release if no actuals).
Manual Leg Controls
Tap OUT at push, IN at block-in. Tap again to clear. Long-press for manual HHMM entry in domicile local time.
Merging Logic
matchesExistingExactly - flight plus origin and date signature set
applyAsActuals - overlays dep/arr onto unset actuals; never clobbers manual entries
applyReassignment - replaces structure, preserves original snapshot, re-overlays prior actuals
applyDailyReport - stamps OUT/OFF/ON/IN by flight number, handles midnight crossings
Show more
What's New in TFPilot
1.0
April 22, 2026