Account summary
Manage accounts (rename, add, remove)
Current allocation (computed)
Live prices
Optional — fetches current (delayed) quotes directly from Finnhub for whatever you're holding, so the numbers here can move between CSV imports. Free key at finnhub.io — it stays in this browser only and is never sent anywhere but Finnhub.
Finnhub's free tier allows about 60 requests per minute. A single refresh is paced to stay under that, so it takes 20-30 seconds for a full portfolio rather than finishing instantly — that's expected, not a hang. Clicking Refresh several times in a row within the same minute can still trip the limit, since it's a shared per-minute allowance; if you see "too many requests," just wait a minute and try again rather than clicking repeatedly.
Individual holdings
Tag each holding's asset class once; the tool remembers that tag by symbol from then on. Re-importing a CSV replaces only that one account's rows — every other account is left untouched.
| Symbol | Description | Account | Asset class | Market value | |
|---|---|---|---|---|---|
| Grand total | |||||
Pre-retirement contributions
From the 401(k) match schedule below. Applies to regular + catch-up contributions only — not FDP.
Flight Duty Pay (FDP) contribution — not matched
Contract calls this "Tour-Based Flight (10+ Hour) Pay" — FDP for short. Covers all flight hours >10 in a tour.
From the FDP rate schedule below.
Edit FDP rate schedule
Per contract section 27.2(G) "Tour-Based Flight (10+ Hour) Pay" — edit if the rate changes again.
Edit 401(k) match schedule
Per the plan document's 29.4 "Increases to 401(k) Match" schedule — edit if the plan changes again.
Starting point
Your starting balance for every projection is the total of everything entered on the Holdings tab. Add or edit holdings there — this tab only covers what gets added going forward, each year, until retirement.
Projected income
Pilot profile
The base schedule is what every bid period uses unless you change it in the table below. Retirement date comes from the Assumptions tab.
A typical year — extra pay
Rough annual estimates are fine — last year's pay stubs are the best guide. Each one is spread evenly across the year at whatever daily or hourly rate is in effect.
Enter your date of hire above to see your projected income.
Schedule by bid period
Set a schedule for each bid period of the year and it applies every year through retirement. Then change any single period in the table below. The "vs. base schedule" figures compare against flying your base schedule every period. 8-day tours (Crew Choice only) and the Tour Slide Program (7&7 / 8&6 only) add their premiums. CC52 in a large-cabin fleet gets the 3% override automatically.
Income by year
How this is calculated
Base wage comes from the Section 27.1 tables for your schedule, seat, aircraft category, service year and contract year. Contract raises take effect May 1. Service years step up on your hire anniversary, and pay stays at the year-14 rate after that. Each day earns 1/365th of the annual rate in effect that day, so mid-year changes prorate exactly. After the 5/1/2029 table, each May 1 applies the raise you pick above.
Daily rate = base ÷ 182 (7&7), 208 (8&6), 156 / 180 / 216 / 228 (CC52 / 60 / 72 / 76) — 27.2(A). Overtime = base ÷ 2,184 × 1.5 — 27.2(B). Company extended days and holidays pay 1.5× the daily rate; voluntary extended days and VAWD pay 2.5× — 27.2(C), (D). An after-midnight return pays 2.5 days' pay — 19.8(B). A company-initiated tour slide pays ½ a daily rate per day slid — 19.6(D).
FDP is $204/hr in 2026, rising to $210 in 2029, then +2% a year — 27.2(G). Night flight, end-of-day and night duty pay start at $50/hr and rise 2% every January 1 from 2024 ($53.06 in 2026) — 27.2(H), (I). 33% of those four goes to your 401(k) as a non-elective contribution, with no match — 27.2(J). The 8-day tour / CC52 large-cabin override adds 3% of base — 27.2(F). The Tour Slide Program adds 2.5% — 19.10(D).
The longevity bonus is 4% of the prior 12 months' base wage, paid on each anniversary after you complete service year 15, with a pro-rata payment at retirement — 27.1(G). Supplemental duty positions add the 27.2(E) annual wage, $500 per check ride, and $50 (CA/TR) or $75 (EA-D) per FDP hour. A TR is paid as a CA during the TR phase-out. The contract's SDP table has no CC52 column, so CC52 uses the 7&7/CC60 amount.
Not included: per diem, expense reimbursement, training-month extended days, and anything negotiated after the 2024 Amended Agreement. These are pre-tax estimates, not a pay guarantee.
Timeline
Expected return by asset class
These blend with each scenario's allocation (Holdings tab for Current, sliders below for the other three) to produce every projected return automatically — change a return here and every scenario updates.
Current allocation (from Schwab imports)
This is what you actually hold right now, computed from every account on the Holdings tab — it drives the "Current" scenario's blended return, the same way the sliders below drive the other three.
What the sliders below are for: each card sets a target portfolio mix for that named scenario. Combined with the return assumptions above, that mix determines the scenario's blended return — both while you're still contributing and after you retire — which is exactly what draws the four lines on the Growth Projections tab. One mix applies to the whole scenario; there's no separate pre- vs. post-retirement allocation. Only the expected return changes at retirement, using each asset class's "post-retirement" number set above.
Conservative allocation target
Balanced allocation target
Aggressive allocation target
Portfolio growth by scenario
No holdings yet — add or import them on the Holdings tab to see projections.
Milestones
Show year-by-year detail
Asset class names
Rename any of the 5 asset classes used throughout the tool — holdings, allocation targets, returns, and legends all update to match. This only changes the label; it doesn't move any money or affect calculations.