PageSourceSearch

https://cardcompass.app/airline-search-programs

html cardcompass.app collected 2026-10-02 01:12:50 UTC 39,921 bytes, 541 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4  <!-- Google tag (gtag.js) -->
vendor: 66 bytes, lines 4-5
4
5  <script async src="https://www.googletagmanager.com/gtag/js?id=
5G-CYNSKD3EBQ
vendor: 14 bytes, lines 5-6
5"></script>
6  
6<script>
7    window.dataLayer = window.dataLayer || [];
8    function gtag(){dataLayer.push(arguments);}
9    gtag('js', new Date());
10
11    gtag('consent', 'default', (function () { var v; try { v = localStorage.getItem('cc_consent') || (/^Europe\//.test(Intl.DateTimeFormat().resolvedOptions().timeZone) ? 'denied' : 'granted'); } catch (e) { v = 'denied'; } return { analytics_storage: v, ad_storage: v, ad_user_data: v, ad_personalization: v }; })());
12    gtag('config', 'G-CYNSKD3EBQ');
13  </script>
13
14  
14<script src="/meta-pixel.js?v=1" defer></script>
14
15  <meta charset="UTF-8">
16  <meta name="viewport" content="width=device-width, initial-scale=1.0">
17  <title>Search Top 20 Airline Loyalty Programs 2026 — CardCompass</title>
18  <meta name="description" content="Search and filter every major airline loyalty program by alliance — United, Delta, American, Emirates, Singapore, and more. See which credit cards transfer to each and find sweet spots.">
19  <link rel="canonical" href="https://cardcompass.app/airline-search-programs">
20  <meta property="og:type" content="website">
21  <meta property="og:url" content="https://cardcompass.app/airline-search-programs">
22  <meta property="og:title" content="Search Top 20 Airline Loyalty Programs — CardCompass">
23  <meta property="og:description" content="Find any airline loyalty program and instantly see which credit cards transfer points — and at what ratio.">
24  <meta property="og:image" content="https://cardcompass.app/og-image.png">
25  <meta property="og:site_name" content="CardCompass">
26  <meta name="twitter:card" content="summary_large_image">
27  <meta name="twitter:title" content="Search Top 20 Airline Loyalty Programs — CardCompass">
28  <meta name="twitter:description" content="Find any airline loyalty program and instantly see which credit cards transfer points — and at what ratio.">
29  <meta name="twitter:image" content="https://cardcompass.app/og-image.png">
30  
30<script type="application/ld+json">
31  {
32    "@context": "https://schema.org",
33    "@type": "WebPage",
34    "name": "Search Top 20 Airline Loyalty Programs",
35    "description": "Find any airline loyalty program and instantly see which credit cards transfer points — and at what ratio.",
36    "url": "https://cardcompass.app/airline-search-programs",
37    "breadcrumb": {
38      "@type": "BreadcrumbList",
39      "itemListElement": [
40        {"@type":"ListItem","position":1,"name":"Home","item":"https://cardcompass.app"},
41        {"@type":"ListItem","position":2,"name":"Airlines","item":"https://cardcompass.app/airlines"},
42        {"@type":"ListItem","position":3,"name":"Search All Programs","item":"https://cardcompass.app/airline-search-programs"}
43      ]
44    }
45  }
46  </script>
46
47  <link rel="icon" href="images/logo-icon.svg" type="image/png">
48  <link rel="icon" href="favicon.svg" type="image/svg+xml">
49  <link rel="manifest" href="site.webmanifest">
50  <meta name="theme-color" content="#071E4A">
51  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
52  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer">
53  <link rel="stylesheet" href="/styles.css?v=2">
54  
54<script src="nav-search.js?v=2"></script>
54
55  <style>
56/* HERO */
57    .page-hero { background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, var(--primary-light) 100%); padding: 56px 24px 64px; position: relative; overflow: hidden; }
58    .page-hero::before { content: ''; position: absolute; top: -80px; right: -80px; width: 400px; height: 400px; background: radial-gradient(circle, rgba(74,163,240,.15) 0%, transparent 70%); border-radius: 50%; }
59    .page-hero-inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; }
60    .breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 13px; color: rgba(255,255,255,.5); margin-bottom: 20px; flex-wrap: wrap; }
61    .breadcrumb a { color: rgba(255,255,255,.5); text-decoration: none; }
62    .breadcrumb a:hover { color: #fff; }
63    .breadcrumb i { font-size: 10px; }
64    .page-hero h1 { font-size: 40px; font-weight: 800; color: #fff; letter-spacing: -1px; line-height: 1.15; margin-bottom: 14px; }
65    .page-hero h1 span { color: var(--accent-gold); }
66    .page-hero p { font-size: 18px; color: rgba(255,255,255,.7); line-height: 1.7; max-width: 680px; }
67    @media (max-width: 640px) { .page-hero h1 { font-size: 30px; } .page-hero { padding: 40px 20px 48px; } }
68
69    /* MAIN */
70    .page-main { max-width: 1280px; margin: 0 auto; padding: 56px 24px 80px; }
71    .tool-sect-head { text-align: center; margin-bottom: 40px; }
72    .tool-sect-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--accent); margin-bottom: 8px; }
73    .tool-sect-title { font-size: 36px; font-weight: 800; letter-spacing: -.5px; margin-bottom: 12px; }
74    .tool-sect-desc { font-size: 16px; color: var(--text-gray); line-height: 1.7; max-width: 700px; margin: 0 auto; }
75
76    .sfbar { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 30px; background: var(--bg-light); border: 1px solid var(--border); border-radius: var(--r-md); padding: 14px 18px; }
77    .sfbar-search { position: relative; flex: 1; min-width: 220px; }
78    .sfbar-search i { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--text-light); font-size: 14px; pointer-events: none; }
79    .sfbar-input { width: 100%; padding: 10px 14px 10px 38px; border: 1.5px solid var(--border); border-radius: var(--r-sm); font-size: 15px; font-family: inherit; color: var(--text-dark); background: #fff; transition: border-color .2s; }
80    .sfbar-input:focus { outline: none; border-color: var(--accent); }
81    .alliance-btns { display: flex; gap: 6px; flex-wrap: wrap; }
82    .abtn { padding: 7px 13px; border-radius: 100px; font-size: 13px; font-weight: 600; border: 1.5px solid var(--border); background: #fff; color: var(--text-gray); cursor: pointer; transition: all .18s; white-space: nowrap; font-family: inherit; }
83    .abtn:hover { border-color: var(--accent); color: var(--accent); }
84    .abtn.active { color: #fff; border-color: transparent; }
85    .abtn[data-al="all"].active     { background: var(--primary); }
86    .abtn[data-al="star"].active    { background: #00395D; }
87    .abtn[data-al="skyteam"].active { background: #004B96; }
88    .abtn[data-al="oneworld"].active{ background: #C41230; }
89    .abtn[data-al="independent"].active { background: #4A5568; }
90    .ag-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; margin-bottom: 20px; }
91    @media (max-width:1100px){ .ag-grid { grid-template-columns: repeat(3,1fr); } }
92    @media (max-width:760px) { .ag-grid { grid-template-columns: repeat(2,1fr); } }
93    @media (max-width:500px) { .ag-grid { grid-template-columns: 1fr; } }
94    .agcard { background: #fff; border: 1.5px solid var(--border); border-radius: var(--r-lg); padding: 20px; cursor: pointer; transition: all .2s; }
95    .agcard:hover { border-color: var(--accent); box-shadow: var(--shadow-md); transform: translateY(-2px); }
96    .agcard.open { border-color: var(--accent); box-shadow: var(--shadow-md); }
97    .agcard-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 10px; }
98    .agcard-badge { padding: 3px 8px; border-radius: 100px; font-size: 11px; font-weight: 700; letter-spacing: .3px; white-space: nowrap; }
99    .ab-star        { background: #E6EFF8; color: #00395D; }
100    .ab-skyteam     { background: #E6EEFB; color: #004B96; }
101    .ab-oneworld    { background: #FAE8EB; color: #C41230; }
102    .ab-independent { background: #EEEFF2; color: #4A5568; }
103    .agcard-name    { font-size: 15px; font-weight: 800; color: var(--text-dark); margin-bottom: 2px; line-height: 1.3; }
104    .agcard-program { font-size: 12px; color: var(--text-light); font-weight: 500; margin-bottom: 10px; }
105    .agcard-sep     { height: 1px; background: var(--border); margin: 10px 0; }
106    .agcard-mini    { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
107    .agstat-label   { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; color: var(--text-light); margin-bottom: 2px; }
108    .agstat-val     { font-size: 12px; font-weight: 600; color: var(--text-dark); line-height: 1.3; }
109    .agxfer-head    { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; color: var(--text-light); margin-bottom: 7px; }
110    .agxfer-pills   { display: flex; flex-wrap: wrap; gap: 5px; min-height: 24px; }
111    .xpill          { padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; }
112    .xp-chase { background: #E8F0FB; color: #0A2342; }
113    .xp-amex  { background: #FBF3E8; color: #9A6B0C; }
114    .xp-cap   { background: #EBE8FB; color: #1A1A3E; }
115    .xp-citi  { background: #E8F0FB; color: #003B70; }
116    .xp-bilt  { background: #E8F9EF; color: #0B5C2A; }
117    .xp-none  { color: var(--text-light); font-size: 12px; font-style: italic; }
118    .agcard-expand    { display: none; margin-top: 12px; }
119    .agcard.open .agcard-expand { display: block; }
120    .agcard-sweet     { background: #EBF4FF; border-radius: var(--r-sm); padding: 12px 14px; margin-top: 10px; }
121    .agcard-sweet-lbl { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; color: var(--accent); margin-bottom: 5px; }
122    .agcard-sweet p   { font-size: 12px; color: var(--text-gray); line-height: 1.55; }
123    .agcard-tip       { background: var(--bg-light); border-radius: var(--r-sm); padding: 10px 12px; margin-top: 8px; font-size: 12px; color: var(--text-gray); line-height: 1.55; }
124    .agcard-hint      { text-align: center; margin-top: 10px; font-size: 11px; color: var(--accent); font-weight: 600; }
125    .no-ag-results    { text-align: center; padding: 60px 24px; display: none; }
126    .no-ag-results i  { font-size: 40px; color: var(--border); display: block; margin-bottom: 16px; }
127    .no-ag-results p  { font-size: 16px; color: var(--text-gray); }
128
129  </style>
130</head>
131<body>
132
133<nav class="navbar">
134  <div class="nav-inner">
135    <a href="/" class="logo">
136      <div class="logo-icon"><img src="images/logo-icon.svg" alt="CardCompass compass logo" width="40" height="40"></div>
137      <span class="logo-text">Card<span>Compass</span></span>
138    </a>
139    <div class="nav-links" id="nav-links">
140      <div class="nav-item">
141        <button class="nav-link" aria-expanded="false" aria-haspopup="true">Credit Cards <i class="fas fa-chevron-down"></i></button>
142        <div class="dropdown">
143          <a href="/all-cards" style="font-weight:700"><i class="fas fa-th-list"></i> All Credit Cards</a>
144          <div style="height:1px;background:#E2E8F0;margin:6px 0;"></div>
145          <a href="/bonus-offers"><i class="fas fa-gift"></i> Current Bonus Offers</a>
146          <a href="/cards?cat=cashback"><i class="fas fa-star"></i> Best Cash Back Cards</a>
147          <a href="/cards?cat=travel"><i class="fas fa-plane"></i> Best Travel Cards</a>
148          <a href="/cards?cat=hotel"><i class="fas fa-hotel"></i> Best Hotel Cards</a>
149          <a href="/cards?cat=airline"><i class="fas fa-plane-departure"></i> Best Airline Cards</a>
150          <a href="/cards?cat=gas"><i class="fas fa-gas-pump"></i> Best Gas Cards</a>
151          <a href="/cards?cat=dining"><i class="fas fa-utensils"></i> Best Dining Cards</a>
152          <a href="/cards?cat=nofee"><i class="fas fa-shield-alt"></i> No Annual Fee Cards</a>
153          <a href="/cards?cat=balancetransfer"><i class="fas fa-sync-alt"></i> Balance Transfer Cards</a>
154          <a href="/cards?cat=business"><i class="fas fa-briefcase"></i> Best Business Cards</a>
155          <a href="/cards?cat=student"><i class="fas fa-graduation-cap"></i> Student Cards</a>
156          <a href="/cards?cat=secured"><i class="fas fa-lock"></i> Build Credit / Secured</a>
157        </div>
158      </div>
159      <div class="nav-item">
160        <button class="nav-link" aria-expanded="false" aria-haspopup="true">Rewards <i class="fas fa-chevron-down"></i></button>
161        <div class="dropdown">
162          <a href="/rewards-calculator"><i class="fas fa-calculator"></i> Points Calculator</a>
163          <a href="/rewards-partners"><i class="fas fa-exchange-alt"></i> Transfer Partners</a>
164          <a href="/rewards-maximize"><i class="fas fa-chart-line"></i> Maximize Your Points</a>
165          <a href="/rewards-award-travel"><i class="fas fa-suitcase"></i> Award Travel Guide</a>
166          <a href="/rewards-optimizer"><i class="fas fa-dollar-sign"></i> Cash Back Optimizer</a>
167          <a href="/balance-transfer-calculator"><i class="fas fa-sync-alt"></i> Balance Transfer Calc</a>
168        </div>
169      </div>
170      <div class="nav-item">
171        <button class="nav-link active" aria-expanded="false" aria-haspopup="true">Airlines <i class="fas fa-chevron-down"></i></button>
172        <div class="dropdown">
173          <a href="/airlines" style="font-weight:700"><i class="fas fa-plane"></i> All Airlines</a>
174          <div style="height:1px;background:#E2E8F0;margin:6px 0;"></div>
175          <a href="/airline-transfer-matrix"><i class="fas fa-table"></i> Transfer Partner Matrix</a>
176          <a href="/airline-search-programs"><i class="fas fa-search"></i> Search All 23 Programs</a>
177          <div style="height:1px;background:#E2E8F0;margin:6px 0;"></div>
178          <a href="/airlines/united"><i class="fas fa-plane-departure"></i> United MileagePlus</a>
179          <a href="/airlines/delta"><i class="fas fa-plane-departure"></i> Delta SkyMiles</a>
180          <a href="/airlines/american"><i class="fas fa-plane-departure"></i> American AAdvantage</a>
181          <a href="/airlines/southwest"><i class="fas fa-plane-departure"></i> Southwest Rapid Rewards</a>
182          <a href="/airlines/alaska"><i class="fas fa-plane-departure"></i> Alaska Mileage Plan</a>
183          <a href="/airlines/jetblue"><i class="fas fa-plane-departure"></i> JetBlue TrueBlue</a>
184          <a href="/airlines/hawaiian"><i class="fas fa-plane-departure"></i> Hawaiian Miles</a>
185        </div>
186      </div>
187      <a href="/quiz" class="nav-link">Card Quiz</a>
188      <a href="/compare" class="nav-link">Compare Cards</a>
189      <a href="/my-current-wallet" class="nav-link">My Current Wallet</a>
190      <a href="/guides" class="nav-link">Guides</a>
191    </div>
192    <div class="nav-actions">
193      <a href="/login" class="btn-outline">Log In</a>
194      <a href="/get-started" class="btn-primary">Get Started Free</a>
195    </div>
196    <button class="hamburger" id="hamburger" aria-label="Toggle menu">
197      <span></span><span></span><span></span>
198    </button>
199  </div>
200</nav>
201
202<section class="page-hero">
203  <div class="page-hero-inner">
204    <div class="breadcrumb">
205      <a href="/">Home</a>
206      <i class="fas fa-chevron-right"></i>
207      <a href="/airlines">Airlines</a>
208      <i class="fas fa-chevron-right"></i>
209      <span>Search All Programs</span>
210    </div>
211    <h1>Search World's Top <span>20</span> Airline Programs</h1>
212    <p>Find any airline loyalty program and instantly see which credit cards transfer points — and at what ratio. Filter by alliance or search by name. Click any card for sweet spots and strategy tips.</p>
213  </div>
214</section>
215
216<div class="page-main">
217<div class="tool-wrap">
218  <div class="tool-sect-head">
219    <div class="tool-sect-label">GLOBAL AIRLINE COMPARISON</div>
220    <h2 class="tool-sect-title">Search World's Top 20 Airline Programs</h2>
221    <p class="tool-sect-desc">Find any airline loyalty program and instantly see which credit cards transfer points — and at what ratio. Filter by alliance or search by name. Click any card for sweet spots and strategy tips.</p>
222  </div>
223
224  <div class="sfbar">
225    <div class="sfbar-search">
226      <i class="fas fa-search"></i>
227      <input type="text" id="airline-search-input" class="sfbar-input" placeholder="Search airline name, program, or IATA code…">
228    </div>
229    <div class="alliance-btns">
230      <button class="abtn active" data-al="all">All Airlines</button>
231      <button class="abtn" data-al="star">Star Alliance</button>
232      <button class="abtn" data-al="skyteam">SkyTeam</button>
233      <button class="abtn" data-al="oneworld">Oneworld</button>
234      <button class="abtn" data-al="independent">Independent</button>
235    </div>
236  </div>
237
238  <div class="ag-grid" id="ag-grid"></div>
239  <div class="no-ag-results" id="no-ag-results">
240    <i class="fas fa-search"></i>
241    <p>No airlines match your search. Try a different term or reset the alliance filter.</p>
242  </div>
243</div>
244
245</div>
246
247<footer>
248  <div class="footer-inner">
249    <div class="footer-top">
250      <div class="footer-brand">
251        <a href="/" class="logo" style="text-decoration:none;display:inline-flex;align-items:center;gap:10px;">
252          <div class="logo-icon"><img src="images/logo-icon.svg" alt="CardCompass compass logo" width="40" height="40"></div>
253          <span class="logo-text">Card<span>Compass</span></span>
254        </a>
255        <p>CardCompass helps you navigate the crowded world of credit cards with honest, data-driven recommendations.</p>
256      </div>
257      <div class="footer-col">
258        <h4>Airline Programs</h4>
259        <a href="/airline-search-programs">Search All 23 Programs</a>
260        <a href="/airline-transfer-matrix">Transfer Partner Matrix</a>
261        <a href="/airlines/united">United MileagePlus</a>
262        <a href="/airlines/delta">Delta SkyMiles</a>
263        <a href="/airlines/american">American AAdvantage</a>
264        <a href="/airlines/southwest">Southwest Rapid Rewards</a>
265        <a href="/airlines/alaska">Alaska Mileage Plan</a>
266        <a href="/airlines/british-airways">British Airways Avios</a>
267        <a href="/airlines/emirates">Emirates Skywards</a>
268        <a href="/airlines/singapore">Singapore KrisFlyer</a>
269        <a href="/airlines/turkish">Turkish Miles&amp;Smiles</a>
270        <a href="/airlines/air-canada">Air Canada Aeroplan</a>
271      </div>
272      <div class="footer-col">
273        <h4>Credit Cards</h4>
274        <a href="/cards?cat=travel">Best Travel Cards</a>
275        <a href="/cards?cat=cashback">Best Cash Back</a>
276        <a href="/rewards-partners">Transfer Partners</a>
277        <a href="/compare">Compare Cards</a>
278        <a href="/my-current-wallet">My Current Wallet</a>
279      </div>
280      <div class="footer-col">
281        <h4>Company</h4>
282        <a href="/guides">Guides</a>
283        <a href="/about">About Us</a>
284        <a href="/about#methodology">How We Rate Cards</a>
285        <a href="/contact">Contact Us</a>
286        <a href="/advertiser-disclosure">Advertiser Disclosure</a>
287        <a href="/editorial-policy">Editorial Policy</a>
288        <a href="/privacy-policy">Privacy Policy</a>
289        <a href="/terms">Terms of Service</a>
290      </div>
291    </div>
292    <div class="footer-bottom">
293      <span>© 2026 CardCompass, Inc. Compensation from issuers does not influence our rankings. <span class="footer-social" style="display:inline-flex;align-items:center;gap:14px;vertical-align:middle;margin-left:10px;"><a href="https://www.instagram.com/cardcompassapp/" target="_blank" rel="noopener" aria-label="CardCompass on Instagram" style="display:inline-flex;margin:0;"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="20" height="20" x="2" y="2" rx="5" ry="5"/><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"/><line x1="17.5" x2="17.51" y1="6.5" y2="6.5"/></svg></a><a href="https://www.facebook.com/cardcompassapp" target="_blank" rel="noopener" aria-label="CardCompass on Facebook" style="display:inline-flex;margin:0;"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a></span></span>
294      <div class="foot-links"><a href="/privacy-policy">Privacy</a><a href="/terms">Terms</a><a href="/advertiser-disclosure">Disclosure</a></div>
295    </div>
296  </div>
297</footer>
298
299<script>
300// ══════════════════════════════════════════════════
301// TOP 20 AIRLINE DATA
302// ══════════════════════════════════════════════════
303const AIRLINES_20 = [
304  { id:'aa', name:'American Airlines', program:'AAdvantage', iata:'AA', flag:'🇺🇸',
305    alliance:'oneworld', milesExpiry:'18 mo. inactivity', awardPricing:'Dynamic',
306    keyPartners:'British Airways, Cathay Pacific, Japan Airlines, Iberia',
307    transfers:{ 'Bilt':'1:1' },
308    sweetSpot:'Book short U.S. domestic AA flights via British Airways Avios (Chase/Citi → BA → book AA) for just 7,500 Avios one-way under 1,150 miles.',
309    tip:'Bilt is the only major flexible currency with direct AAdvantage transfers. Chase and Citi reach AA via British Airways Avios partner bookings.' },
310
311  { id:'dl', name:'Delta Air Lines', program:'SkyMiles', iata:'DL', flag:'🇺🇸',
312    alliance:'skyteam', milesExpiry:'Never expire', awardPricing:'Fully Dynamic',
313    keyPartners:'Air France, KLM, Korean Air, Virgin Atlantic',
314    transfers:{ 'Amex MR':'1:1' },
315    sweetSpot:'Transfer Amex MR → Air France Flying Blue instead of Delta directly — Flying Blue\'s monthly Promo Awards often show Delta flights 30–40% cheaper.',
316    tip:'Amex Membership Rewards is the only major flexible currency with a direct Delta SkyMiles transfer. Dynamic pricing means fewer sweet spots.' },
317
318  { id:'ua', name:'United Airlines', program:'MileagePlus', iata:'UA', flag:'🇺🇸',
319    alliance:'star', milesExpiry:'No expiry (with activity)', awardPricing:'Dynamic (partner flat)',
320    keyPartners:'Lufthansa, ANA, Singapore Airlines, Air Canada',
321    transfers:{ 'Chase UR':'1:1', 'Bilt':'1:1' },
322    sweetSpot:'Book ANA or Lufthansa First/Business Class for 88K–120K United miles one-way — partner pricing still uses chart rates, delivering far more value.',
323    tip:'Chase Ultimate Rewards and Bilt both transfer 1:1 to United. Best used for Star Alliance partner redemptions, not United-operated flights.' },
324
325  { id:'wn', name:'Southwest Airlines', program:'Rapid Rewards', iata:'WN', flag:'🇺🇸',
326    alliance:'independent', milesExpiry:'24 mo. inactivity', awardPricing:'Revenue-based (~1.5¢/pt)',
327    keyPartners:'None — U.S., Caribbean & Mexico only',
328    transfers:{ 'Chase UR':'1:1' },
329    sweetSpot:'Earn 135,000 Rapid Rewards points in a calendar year to unlock the Companion Pass — your chosen companion flies free for the rest of that year and all of next.',
330    tip:'Only Chase Ultimate Rewards transfers to Southwest. Revenue-based pricing means no complex award chart — any seat available for cash is bookable with points.' },
331
332  { id:'ek', name:'Emirates', program:'Emirates Skywards', iata:'EK', flag:'🇦🇪',
333    alliance:'independent', milesExpiry:'36 mo. inactivity', awardPricing:'Chart-based (zone)',
334    keyPartners:'Qantas, Flydubai, Alaska Airlines',
335    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
336    sweetSpot:'Emirates First Class NYC→Dubai for ~85,000 Skywards miles one-way. The A380 Private Suite with shower is one of the most iconic first-class products.',
337    tip:'All 5 major flexible currencies transfer 1:1 to Skywards, making it one of the most accessible premium cabin redemptions available.' },
338
339  { id:'ba', name:'British Airways', program:'Executive Club (Avios)', iata:'BA', flag:'🇬🇧',
340    alliance:'oneworld', milesExpiry:'36 mo. (any activity resets)', awardPricing:'Distance-based (Avios)',
341    keyPartners:'American Airlines, Iberia, Qatar Airways, Japan Airlines, Aer Lingus',
342    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
343    sweetSpot:'Book U.S. domestic American Airlines segments under 1,150 miles for just 7,500 Avios one-way — the best domestic award value available from any flexible currency.',
344    tip:'Avios is the most broadly accepted flexible currency: accepted from all 5 major U.S. programs. BA Avios can also be used on Qatar, Iberia, Aer Lingus, and more.' },
345
346  { id:'af', name:'Air France / KLM', program:'Flying Blue', iata:'AF/KL', flag:'🇫🇷',
347    alliance:'skyteam', milesExpiry:'24 mo. inactivity', awardPricing:'Dynamic + Promo Awards',
348    keyPartners:'Delta, Korean Air, Kenya Airways, Air Europa',
349    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'
3491:1', 'Bilt':'1:1' },
350    sweetSpot:'Flying Blue\'s monthly Promo Awards drop 30–50% off select routes — including Delta flights. Check the first week of each month for flash deals to Europe and beyond.',
351    tip:'Transfers from all 5 major currencies. Booking Delta flights via Flying Blue during Promo Award periods routinely beats SkyMiles prices by 40%+.' },
352
353  { id:'lh', name:'Lufthansa', program:'Miles & More', iata:'LH', flag:'🇩🇪',
354    alliance:'star', milesExpiry:'36 months from earned', awardPricing:'Chart-based (distance zones)',
355    keyPartners:'United, Swiss, Austrian, Brussels Airlines, Singapore Airlines',
356    transfers:{},
357    sweetSpot:'Lufthansa First Class to Frankfurt can be booked using United MileagePlus (via Chase UR → United) for ~100K miles. Miles & More itself has no major U.S. flexible currency transfers.',
358    tip:'No direct transfer from any major U.S. flexible currency program. To fly Lufthansa on miles, transfer Chase UR → United and book Lufthansa as a Star Alliance partner.' },
359
360  { id:'qr', name:'Qatar Airways', program:'Privilege Club (Avios)', iata:'QR', flag:'🇶🇦',
361    alliance:'oneworld', milesExpiry:'36 mo. inactivity', awardPricing:'Distance-based (Avios)',
362    keyPartners:'American Airlines, British Airways, Iberia, Cathay Pacific, Japan Airlines',
363    transfers:{ 'Amex MR':'1:1', 'Citi TY':'1:1' },
364    sweetSpot:'Qatar Qsuites business class — widely rated the world\'s best — from ~70,000 Avios one-way U.S. to Doha. Award availability is notably better than most premium programs.',
365    tip:'Qatar now uses Avios currency (same as BA/Iberia). Amex MR and Citi TY transfer directly. Chase UR users can transfer to BA Avios and then book Qatar flights.' },
366
367  { id:'sq', name:'Singapore Airlines', program:'KrisFlyer', iata:'SQ', flag:'🇸🇬',
368    alliance:'star', milesExpiry:'36 mo. from date earned', awardPricing:'Chart-based (distance)',
369    keyPartners:'United, Air Canada, ANA, Lufthansa, Turkish Airlines',
370    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
371    sweetSpot:'Singapore Suites (First Class) NYC→Singapore for ~215,000 KrisFlyer miles round-trip. The A380 Suites with private cabins are considered a bucket-list redemption.',
372    tip:'All 5 major flexible currencies transfer to KrisFlyer. Star Alliance partner awards (ANA, Lufthansa, Air Canada) often deliver excellent value at chart-based rates.' },
373
374  { id:'cx', name:'Cathay Pacific', program:'Asia Miles', iata:'CX', flag:'🇭🇰',
375    alliance:'oneworld', milesExpiry:'18 mo. from last earn/redeem', awardPricing:'Chart-based (regions)',
376    keyPartners:'American Airlines, British Airways, Qatar Airways, Japan Airlines',
377    transfers:{ 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
378    sweetSpot:'Cathay Pacific Business Class from U.S. West Coast to Hong Kong from ~67,500 Asia Miles one-way. Strong value for Oneworld partner bookings to Asia.',
379    tip:'Amex, Cap One, Citi, and Bilt all transfer to Asia Miles. Chase UR doesn\'t directly — but Chase → United MileagePlus can book Cathay Pacific as a Star Alliance partner.' },
380
381  { id:'jl', name:'Japan Airlines', program:'JAL Mileage Bank', iata:'JL', flag:'🇯🇵',
382    alliance:'oneworld', milesExpiry:'36 mo. (calendar year cycle)', awardPricing:'Distance-based table',
383    keyPartners:'American Airlines, British Airways, Qantas, Finnair',
384    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Bilt':'1:1' },
385    sweetSpot:'Round-trip to Tokyo in JAL Business Class Sky Suite from ~80,000 miles off-peak. JAL\'s herringbone flat beds are among the most comfortable in the industry.',
386    tip:'Chase UR, Amex MR, and Bilt transfer 1:1 to JAL Mileage Bank. Excellent for Oneworld partner bookings — book American, BA, or Qantas flights too.' },
387
388  { id:'nh', name:'ANA (All Nippon Airways)', program:'ANA Mileage Club', iata:'NH', flag:'🇯🇵',
389    alliance:'star', milesExpiry:'36 mo. from earned', awardPricing:'Chart-based (exceptional rates)',
390    keyPartners:'United, Lufthansa, Singapore Airlines, Air Canada',
391    transfers:{ 'Amex MR':'1:1' },
392    sweetSpot:'ANA Round-the-World First Class for ~150K miles. Domestic redemptions start at just 5,000 miles. Transatlantic business class from ~88K miles one-way.',
393    tip:'Only Amex Membership Rewards transfers directly to ANA Mileage Club from major U.S. programs. Chase UR users can book ANA via United MileagePlus Star Alliance partner awards.' },
394
395  { id:'ac', name:'Air Canada', program:'Aeroplan', iata:'AC', flag:'🇨🇦',
396    alliance:'star', milesExpiry:'No expiry (any activity)', awardPricing:'Distance-based + stopovers',
397    keyPartners:'United, Lufthansa, Singapore Airlines, Turkish Airlines, ANA',
398    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'
3981:1', 'Bilt':'1:1' },
399    sweetSpot:'Aeroplan\'s free stopover rule on one-way awards lets you visit two cities for the price of one. Book Copenhagen stopover en route to Tokyo without paying extra miles.',
400    tip:'All 5 major flexible currencies transfer to Aeroplan. Free stopovers + Star Alliance\'s 26-airline network make this one of the most strategically versatile programs.' },
401
402  { id:'tk', name:'Turkish Airlines', program:'Miles&Smiles', iata:'TK', flag:'🇹🇷',
403    alliance:'star', milesExpiry:'36 mo. from last earn', awardPricing:'Chart-based (low rates)',
404    keyPartners:'United, Lufthansa, Singapore Airlines, ANA, Air Canada',
405    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
406    sweetSpot:'Chicago → Tokyo in United Polaris Business Class for just ~45,000 Miles&Smiles — roughly half what United charges for the same seat. One of the biggest gaps in the industry.',
407    tip:'One of the best-kept secrets in travel hacking. All 5 currencies transfer 1:1 and the award chart has some of the lowest Star Alliance partner rates anywhere.' },
408
409  { id:'vs', name:'Virgin Atlantic', program:'Flying Club', iata:'VS', flag:'🇬🇧',
410    alliance:'independent', milesExpiry:'36 mo. inactivity', awardPricing:'Chart-based (distance)',
411    keyPartners:'Delta, Air France, KLM, ANA, Singapore Airlines',
412    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
413    sweetSpot:'ANA First Class to Japan from the U.S. via Flying Club for ~60K miles one-way — roughly 40% less than booking directly through ANA\'s own program.',
414    tip:'Hugely underrated program. Can book ANA, Delta, and Air France at very competitive rates. All 5 flexible currencies transfer 1:1 to Flying Club.' },
415
416  { id:'qf', name:'Qantas', program:'Qantas Frequent Flyer', iata:'QF', flag:'🇦🇺',
417    alliance:'oneworld', milesExpiry:'18 mo. inactivity', awardPricing:'Chart-based (regions)',
418    keyPartners:'American Airlines, British Airways, Emirates, Cathay Pacific, Japan Airlines',
419    transfers:{ 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1' },
420    sweetSpot:'Qantas First Class LAX→Sydney from ~80,000 miles one-way. The Qantas First Lounge in Sydney is among the finest airport experiences in the world.',
421    tip:'Amex MR, Capital One, and Citi TY all transfer to Qantas. Chase UR does not. Also strong for Oneworld partner redemptions across Asia-Pacific.' },
422
423  { id:'ke', name:'Korean Air', program:'SKYPASS', iata:'KE', flag:'🇰🇷',
424    alliance:'skyteam', milesExpiry:'10 years from earned', awardPricing:'Chart-based',
425    keyPartners:'Delta, Air France, KLM, China Airlines',
426    transfers:{ 'Citi TY':'1:1' },
427    sweetSpot:'Korean Air First Class to Seoul from the U.S. for ~80,000 SKYPASS miles round-trip — generous chart rates and a genuinely premium cabin product.',
428    tip:'Only Citi ThankYou Points transfer directly to Korean Air SKYPASS among major U.S. flexible currencies. Notable for its 10-year mile expiry — unusually generous.' },
429
430  { id:'ey', name:'Etihad Airways', program:'Etihad Guest', iata:'EY', flag:'🇦🇪',
431    alliance:'independent', milesExpiry:'24 mo. inactivity', awardPricing:'Chart-based',
432    keyPartners:'American Airlines, Royal Air Maroc, Air Serbia',
433    transfers:{ 'Amex MR':'1:1', 'Cap One':'1:1', 'Citi TY':'1:1', 'Bilt':'1:1' },
434    sweetSpot:'Etihad The Residence (3-room A380 suite) to Abu Dhabi from ~615,000 miles. Business class starts from ~55K miles — a more realistic aspirational goal.',
435    tip:'Amex MR, Capital One, Citi TY, and Bilt all transfer 1:1 to Etihad Guest. Limited partner network but exceptional in-flight product — especially for Middle East routes.' },
436
437  { id:'ib', name:'Iberia', program:'Iberia Plus (Avios)', iata:'IB', flag:'🇪🇸',
438    alliance:'oneworld', milesExpiry:'36 mo. inactivity', awardPricing:'Distance-based (Avios)',
439    keyPartners:'British Airways, American Airlines, Qatar Airways, Japan Airlines',
440    transfers:{ 'Chase UR':'1:1', 'Amex MR':'1:1', 'Bilt':'1:1' },
441    sweetSpot:'NYC→Madrid in Iberia Business Class (Oneworld Business) for ~34,000 Avios one-way off-peak — widely considered the single best transatlantic business class value in points.',
442    tip:'Iberia Avios is the same currency as BA Avios — pools across both programs. Chase UR, Amex MR, and Bilt all transfer 1:1. The Madrid sweet spot is a genuine travel-hacking classic.' }
443];
444const PILL_CLASS = { 'Chase UR':'xp-chase', 'Amex MR':'xp-amex', 'Cap One':'xp-cap', 'Citi TY':'xp-citi', 'Bilt':'xp-bilt' };
445const BADGE_CLASS = { star:'ab-star', skyteam:'ab-skyteam', oneworld:'ab-oneworld', independent:'ab-independent' };
446const BADGE_LABEL = { star:'Star Alliance', skyteam:'SkyTeam', oneworld:'Oneworld', independent:'Independent' };
447// ── RENDER AIRLINE GRID ──
448function renderAirlineGrid(alliance, query) {
449  const grid = document.getElementById('ag-grid');
450  const none = document.getElementById('no-ag-results');
451  const q = (query || '').toLowerCase().trim();
452  const filtered = AIRLINES_20.filter(a => {
453    const matchAl = alliance === 'all' || a.alliance === alliance;
454    const matchQ  = !q || a.name.toLowerCase().includes(q) || a.program.toLowerCase().includes(q) || a.iata.toLowerCase().includes(q);
455    return matchAl && matchQ;
456  });
457  if (!filtered.length) { grid.innerHTML = ''; none.style.display = 'block'; return; }
458  none.style.display = 'none';
459
460  grid.innerHTML = filtered.map(a => {
461    const xferKeys = Object.keys(a.transfers);
462    const pills = xferKeys.length
463      ? xferKeys.map(k => `<span class="xpill ${PILL_CLASS[k]}">${k} <strong>${a.transfers[k]}</strong></span>`).join('')
464      : '<span class="xp-none">No direct U.S. card transfers</span>';
465    return `
466<div class="agcard" onclick="toggleAirlineCard(this)" data-id="${a.id}">
467  <div class="agcard-top">
468    <span class="agcard-badge ${BADGE_CLASS[a.alliance]}">${BADGE_LABEL[a.alliance]}</span>
469  </div>
470  <div class="agcard-name">${a.name}</div>
471  <div class="agcard-program">${a.program} · ${a.iata}</div>
472  <div class="agcard-sep"></div>
473  <div class="agcard-mini">
474    <div><div class="agstat-label">Miles Expiry</div><div class="agstat-val">${a.milesExpiry}</div></div>
475    <div><div class="agstat-label">
475Award Pricing</div><div class="agstat-val">${a.awardPricing}</div></div>
476  </div>
477  <div class="agxfer-head">Credit Card Transfer Partners</div>
478  <div class="agxfer-pills">${pills}</div>
479  <div class="agcard-expand">
480    <div class="agcard-sep"></div>
481    <div style="font-size:12px;color:var(--text-gray);line-height:1.6;margin-bottom:10px;"><strong style="color:var(--text-dark)">Key Partners:</strong> ${a.keyPartners}</div>
482    <div class="agcard-sweet">
483      <div class="agcard-sweet-lbl">Sweet Spot</div>
484      <p>${a.sweetSpot}</p>
485    </div>
486    <div class="agcard-tip">${a.tip}</div>
487  </div>
488  <div class="agcard-hint">Click for details ▾</div>
489</div>`;
490  }).join('');
491}
492
493function toggleAirlineCard(el) {
494  const wasOpen = el.classList.contains('open');
495  document.querySelectorAll('.agcard.open').forEach(c => {
496    c.classList.remove('open');
497    const h = c.querySelector('.agcard-hint'); if (h) h.textContent = 'Click for details ▾';
498  });
499  if (!wasOpen) {
500    el.classList.add('open');
501    const h = el.querySelector('.agcard-hint'); if (h) h.textContent = 'Click to collapse ▴';
502  }
503}
504
505// ── INIT ──
506renderAirlineGrid('all', '');
507
508document.querySelectorAll('.abtn').forEach(function(btn) {
509  btn.addEventListener('click', function() {
510    document.querySelectorAll('.abtn').forEach(function(b) { b.classList.remove('active'); });
511    this.classList.add('active');
512    renderAirlineGrid(this.dataset.al, document.getElementById('airline-search-input').value);
513  });
514});
515
516document.getElementById('airline-search-input').addEventListener('input', function() {
517  var al = document.querySelector('.abtn.active').dataset.al;
518  renderAirlineGrid(al, this.value);
519});
520
521var hamburger = document.getElementById('hamburger');
522var navLinks = document.getElementById('nav-links');
523if (hamburger && navLinks) {
524  hamburger.addEventListener('click', function() {
525    var open = hamburger.classList.toggle('open');
526    navLinks.classList.toggle('mobile-open', open);
527    hamburger.setAttribute('aria-expanded', open ? 'true' : 'false');
528  });
529  document.addEventListener('click', function(e) {
530    if (!hamburger.contains(e.target) && !navLinks.contains(e.target)) {
531      hamburger.classList.remove('open');
532      navLinks.classList.remove('mobile-open');
533    }
534  });
535}
536</script>
vendor: 1 bytes, line 536
536
537<script src="nav-auth.js?v=2"></script>
vendor: 1 bytes, line 537
537
538<script src="/newsletter-popup.js" defer></script>
vendor: 1 bytes, line 538
538
539<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a43fd74d0d144e06',t:'MTc5MDkwMzU2OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
539<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"e79d8b0449fb411087aba9b1640e3938","r":1,"spa":2}' crossorigin="anonymous"></script>
539
540</body>
541</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.