PageSourceSearch

https://anywayr.com/_next/static/chunks/99570-b7a93b901b2b1e87.js

js anywayr.com collected 2026-10-09 22:59:13 UTC 280,007 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1542,7837,99570],{1438:(e,a,r)=>{r.d(a,{by:()=>u,d$:()=>l,ms:()=>p,s1:()=>c,w3:()=>n});var i=r(2380),t=r(16320);function n(e,a){if(!e||0===a.length)return!1;let r=e.toLowerCase();return a.some(e=>r.includes(e))}function s(e,a){var r,t;if(!a)return null;let n=e.trim().toLowerCase(),s=a.trim().toLowerCase();if(!n||!s)return null;let o=null!=(t=null!=(r=i.ln.find(e=>e.name.toLowerCase()===n))?r:i.ln.find(e=>{var a;return(null!=(a=e.aliases)?a:[]).some(e=>e.toLowerCase()===n)}))?t:n.length>=4?i.ln.find(e=>{let a=e.name.toLowerCase();return a.includes(n)||n.includes(a)}):void 0,l=o?i.mG[o.name]:void 0;if(!l)return null;let c=Object.keys(l),d=c.find(e=>e.toLowerCase()===s);if(!d&&s.length>=3&&(d=c.find(e=>{let a=e.toLowerCase();return a.includes(s)||s.includes(a)})),!d)return null;let u=Object.values(l);return{rank:l[d],min:Math.min(...u),max:Math.max(...u),rungs:c.length}}function o(e,a,r){if(!(0,t.GY)(r))return 0;let i=s(e,a);if(!i){var n,o;let a=(0,t.T6)(e);return a&&(null!=(o=null==(n=a.tiers)?void 0:n.length)?o:0)===0?0:.15}if(1===i.rungs||i.rank<=i.min)return 0;let l=i.rank/i.max;return l>=.7?.3:l>=.4?.2:.1}function l(e,a,r){if(!(0,t.GY)(r))return!1;let i=s(e,a);return!!i&&1!==i.rungs&&i.rank>i.min}function c(e,a){let r=[];for(let p of e){var t,n,s,o,l,c,d,u,m;if(p.program_type!==a)continue;let e=i.ln.find(e=>e.name.toLowerCase()===p.program_name.toLowerCase()||null!=p.program_code&&e.code===p.program_code),g=(null!=(t=null==e?void 0:e.aliases)?t:[]).map(e=>e.toLowerCase());if(0===g.length){let e=p.program_name.toLowerCase().split(/\s+/).find(e=>e.length>2);e&&g.push(e)}0!==g.length&&r.push({programName:null!=(n=null==e?void 0:e.name)?n:p.program_name,tier:null!=(s=p.tier)?s:null,aliases:g,preferenceRank:null!=(o=p.preference_rank)?o:null,sightingCount:null!=(l=p.sighting_count)?l:null,emailSentAt:null!=(c=p.email_sent_at)?c:null,statusExpiration:null!=(d=p.status_expiration)?d:null,lastVerifiedAt:null!=(u=p.last_verified_at)?u:null,confidence:null!=(m=p.confidence)?m:null})}return r}function d(e,a){var r,i,n,l,c,d,u,m,p,g;let h=null!=(r=e.preferenceRank)?r:Number.MAX_SAFE_INTEGER,y=null!=(i=a.preferenceRank)?i:Number.MAX_SAFE_INTEGER;if(h!==y)return h-y;let f=s(e.programName,e.tier),b=s(a.programName,a.tier);if(f&&b){let e=f.rank/f.max,a=b.rank/b.max;if(e!==a)return a-e}else{let r=o(e.programName,e.tier),i=o(a.programName,a.tier);if(r!==i)return i-r}let v=+!!(0,t.GY)(e.statusExpiration),_=+!!(0,t.GY)(a.statusExpiration);if(v!==_)return _-v;let w=null!=(n=e.lastVerifiedAt)?n:"",C=null!=(l=a.lastVerifiedAt)?l:"";if(w!==C)return C.localeCompare(w);let A=null!=(c=e.confidence)?c:-1,k=null!=(d=a.confidence)?d:-1;if(A!==k)return k-A;let P=null!=(u=e.sightingCount)?u:0,S=null!=(m=a.sightingCount)?m:0;return P!==S?S-P:(null!=(p=a.emailSentAt)?p:"").localeCompare(null!=(g=e.emailSentAt)?g:"")}function u(e,a){if(!e||0===a.length)return null;for(let i of[...a].sort(d)){var r;if((0,t.GY)(i.statusExpiration)&&n(e,i.aliases))return(null==(r=i.tier)?void 0:r.trim())||null}return null}let m={DL:"Delta SkyMiles",UA:"United MileagePlus",AA:"American Airlines AAdvantage",B6:"JetBlue TrueBlue",WN:"Southwest Rapid Rewards",AS:"Alaska Airlines Mileage Plan",F9:"Frontier Airlines FRONTIER Miles",NK:"Spirit Airlines Free Spirit",HA:"Hawaiian Airlines HawaiianMiles (Pualani / Atmos Rewards)",AC:"Air Canada Aeroplan",BA:"British Airways Executive Club (The British Airways Club / Avios)",AF:"Air France-KLM Flying Blue",KL:"Air France-KLM Flying Blue",LH:"Lufthansa Miles & More",IB:"Iberia Plus (Club Iberia Plus)",EK:"Emirates Skywards",QR:"Qatar Airways Privilege Club",EY:"Etihad Guest",SQ:"Singapore Airlines KrisFlyer",CX:"Cathay (Asia Miles)",QF:"Qantas Frequent Flyer",VS:"Virgin Atlantic Flying Club",TK:"Turkish Airlines Miles&Smiles",NH:"ANA Mileage Club",JL:"JAL Mileage Bank",WS:"WestJet Rewards"};function p(e,a){let r=(null!=e?e:"").trim().toUpperCase();if(!r||0===a.length)return null;let i=m[r];return i?u(i,a):null}},1542:(e,a,r)=>{r.r(a),r.d(a,{__test__:()=>k,findAirportsNearCoords:()=>p,findAirportsNearIata:()=>v,findHomeAirportsNearCoords:()=>b,findNearestAirportToCoords:()=>_,findNearestMajorAirport:()=>d,getAirportCoordsByIata:()=>u,haversineKm:()=>l,isKnownAirportIata:()=>m,resolveEndpointCoords:()=>A,searchLocalAirports:()=>c});let i=null;
1function t(){return i||(i=r.e(74817).then(r.t.bind(r,74817,19)).then(e=>e.default)),i}let n={l:0,m:1,s:2};function s(e,a){let r=e.indexOf(a);for(;r>=0;){if(0===r||!/[a-z0-9]/.test(e[r-1]))return!0;r=e.indexOf(a,r+1)}return!1}function o(e){return{entityId:"",iataCode:e[0],name:e[1],city:e[2],country:e[3],isAirport:!0,placeKind:"airport",metroId:"",location:""}}function l(e,a,r,i){let t=e=>e*Math.PI/180,n=t(r-e),s=t(i-a);return 12742*Math.asin(Math.sqrt(Math.sin(n/2)**2+Math.cos(t(e))*Math.cos(t(r))*Math.sin(s/2)**2))}async function c(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,r=e.trim().toLowerCase();if(r.length<2)return[];let i=await t(),l=[];for(let e of i){let a=function(e,a){var r,i,t,o;let[l,c,d]=e,u=l.toLowerCase(),m=c.toLowerCase(),p=d.toLowerCase();return u===a?0:u.startsWith(a)?1:p.startsWith(a)?20+(null!=(r=n[e[4]])?r:2):m.startsWith(a)?30+(null!=(i=n[e[4]])?i:2):s(p,a)?40+(null!=(t=n[e[4]])?t:2):s(m,a)?50+(null!=(o=n[e[4]])?o:2):-1}(e,r);a>=0&&l.push({t:e,rank:a})}return l.sort((e,a)=>e.rank-a.rank||e.t[1].localeCompare(a.t[1])),l.slice(0,a).map(e=>{let{t:a}=e;return o(a)})}async function d(e){let a=e.trim().toUpperCase();if(3!==a.length)return null;let r=await t(),i=r.find(e=>e[0]===a);if(!i)return null;let[,,n,,s,c,d]=i;if("l"===s||!Number.isFinite(c)||!Number.isFinite(d))return null;let u=null,m=500;for(let e of r){if("l"!==e[4]||e[0]===a||n&&e[2]===n||!Number.isFinite(e[5])||!Number.isFinite(e[6]))continue;let r=l(c,d,e[5],e[6]);r<m&&(m=r,u=e)}return u?o(u):null}async function u(e){let a=(null!=e?e:"").trim().toUpperCase();if(3!==a.length)return null;let r=(await t()).find(e=>e[0]===a);if(!r)return null;let[,,,,,i,n]=r;return Number.isFinite(i)&&Number.isFinite(n)?{lat:i,lng:n}:null}async function m(e){let a=(null!=e?e:"").trim().toUpperCase();return!!/^[A-Z]{3}$/.test(a)&&(await t()).some(e=>e[0]===a)}async function p(e,a){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:6,i=arguments.length>3?arguments[3]:void 0;if(!Number.isFinite(e)||!Number.isFinite(a))return[];let n=await t(),s=(null!=i?i:"").trim().toUpperCase(),c=[];for(let r of n)(!s||r[0]!==s)&&Number.isFinite(r[5])&&Number.isFinite(r[6])&&c.push({t:r,km:l(e,a,r[5],r[6])});c.sort((e,a)=>e.km-a.km);let d=c.filter(e=>{let{t:a,km:r}=e;return"l"===a[4]?r<=400:"m"===a[4]&&r<=150});return(d.length>0?d:c).slice(0,r).map(e=>{let{t:a}=e;return o(a)})}let g=/air force base|\bafb\b|air base|airbase|naval air|army air ?field|joint base|air station|marine corps|army aviation/i,h=/airport|civil/i,y=new Set(["BED","BFI","BJC","BLD","CCR","CLD","DOV","FTW","GYY","LAL","LUK","MBW","MEB","MGC","MRI","MWL","MYL","OPF","PDK","SQL","TEB","TIW","YCM"]);function f(e){var a;return 1===e[7]&&(a=e[1],!g.test(a)||!!h.test(a))&&!y.has(e[0])}async function b(e,a){var r,i;let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:6;if(!Number.isFinite(e)||!Number.isFinite(a))return[];let s=await t(),c=[];for(let r of s)Number.isFinite(r[5])&&Number.isFinite(r[6])&&c.push({t:r,km:l(e,a,r[5],r[6])});c.sort((e,a)=>e.km-a.km);let d=c.filter(e=>{let{t:a}=e;return f(a)}),u=d.filter(e=>{let{t:a,km:r}=e;return"l"===a[4]&&r<=400}),m=d.filter(e=>{let{t:a,km:r}=e;return"m"===a[4]&&r<=150}),p=null!=(i=null!=(r=u.find(e=>{let{km:a}=e;return a<=60}))?r:m[0])?i:null,g=[...p?[p]:[],...u,...m],h=new Set,y=g.filter(e=>{let{t:a}=e;return!h.has(a[0])&&h.add(a[0])});return(y.length>0?y:d.length>0?d:c).slice(0,n).map(e=>{let{t:a,km:r}=e;return{...o(a),distanceKm:Math.round(r)}})}async function v(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,r=(null!=e?e:"").trim().toUpperCase();if(3!==r.length)return[];let i=await u(r);return i?p(i.lat,i.lng,a,r):[]}async function _(e,a,r){if(!Number.isFinite(e)||!Number.isFinite(a))return null;let i=await C(e,a,()=>!0);if(!r||!i)return i?o(i.t):null;if(r(i.t[3]))return o(i.t);let t=await C(e,a,e=>r(e[3]));return o(t&&t.km<=i.km+w?t.t:i.t)}let w=25;async function C(e,a,r){let i=await t(),n=null,s=null;for(let t of i){if(!Number.isFinite(t[5])||!Number.isFinite(t[6])||!f(t)||!r(t))continue;let i=l(e,a,t[5],t[6]);"l"===t[4]?i<=300&&(!n||i<n.km)&&(n={t,km:i}):"m"===t[4]&&i<=120&&(!s||i<s.km)&&(s={t,km:i})}return null!=n?n:s}async function A(e){let a=(null!=e?e:"").trim();if(!a)return null;let r=await t();if(/^[A-Za-z]{3}$/.test(a)){let e=a.toUpperCase(),i=r.find(a=>a[0]===e);if(!i)return null;let t=i[5],n=i[6];return Number.isFinite(t)&&Number.isFinite(n)?[t,n]:null}let i=a.toLowerCase(),n=r.filter(e=>e[2].toLowerCase()===i);if(0===n.length)return null;let s=1===n.length?n[0]:(()=>{let e=n.filter(e=>"l"===e[4]);return 1===e.length?e[0]:null})();if(!s)return null;
1let o=s[5],l=s[6];return Number.isFinite(o)&&Number.isFinite(l)?[o,l]:null}let k={loadDataset:t}},2380:(e,a,r)=>{r.d(a,{L0:()=>n,ln:()=>i,mG:()=>t});let i=[{name:"Aegean Miles+Bonus",type:"airline",code:null,aliases:["aegean","aegean airlines","miles+bonus","miles and bonus","milesandbonus","miles + bonus","olympic air","olympic"],tiers:["Blue","Silver","Gold","Platinum"],senderDomains:["aegeanair.com","en.aegeanair.com","email.aegeanair.com","news.aegeanair.com","olympicair.com"]},{name:"Aer Lingus AerClub",type:"airline",code:null,aliases:["aer lingus","aerclub","aer club","concierge","avios"],tiers:["Green","Silver","Platinum","Concierge"],senderDomains:["aerlingus.com","email.aerlingus.com","news.aerlingus.com","e.aerlingus.com"]},{name:"Aeromexico Rewards (Club Premier)",type:"airline",code:null,aliases:["aeromexico","aeromexico rewards","club premier","clubpremier","skyteam"],tiers:["Plata (Silver)","Oro (Gold)","Platino (Platinum)","Titanio (Titanium)"],senderDomains:["aeromexico.com","aeromexico.com.mx","aeromexicorewards.com","clubpremier.com","email.aeromexico.com"]},{name:"Air Canada Aeroplan",type:"airline",code:null,aliases:["air canada","aircanada","aeroplan","aeroplan 25k","aeroplan 35k","aeroplan 50k","aeroplan 75k","super elite","super elite 100k","star alliance"],tiers:["25K","35K","50K","75K","Super Elite"],senderDomains:["aircanada.com","aircanada.ca","aeroplan.com","email.aircanada.com","news.aircanada.com"]},{name:"Air China PhoenixMiles",type:"airline",code:null,aliases:["air china","phoenixmiles","phoenix miles","air china phoenixmiles"],tiers:["Silver","Gold","Platinum","Lifetime Platinum"],senderDomains:["airchina.com","airchina.com.cn","email.airchina.com","phoenixmiles.com"]},{name:"Air France-KLM Flying Blue",type:"airline",code:null,aliases:["flying blue","flyingblue","air france","air france klm","air france-klm","transavia","ultimate"],tiers:["Explorer","Silver","Gold","Platinum","Ultimate"],senderDomains:["flyingblue.com","flyingblue.us","airfrance.com","airfrance.fr","klm.com","email.airfrance.com","email.klm.com","news.airfrance.com","transavia.com"]},{name:"Air New Zealand Airpoints",type:"airline",code:null,aliases:["air new zealand","airpoints","air nz","koru","airpoints dollars","koru silver","koru gold","koru platinum"],tiers:["Silver","Gold","Elite"],senderDomains:["airnewzealand.co.nz","airnewzealand.com","email.airnz.co.nz","airnz.co.nz","e.airnewzealand.co.nz"]},{name:"AirAsia rewards",type:"airline",code:null,aliases:["airasia","air asia","airasia rewards","airasia big","big loyalty","big rewards"],tiers:["Red","Gold","Platinum","Black"],senderDomains:["airasia.com","email.airasia.com","e.airasia.com","airasiarewards.com"]},{name:"Alaska Airlines Mileage Plan",type:"airline",code:null,aliases:["alaska","alaska airlines","mileage plan","mileageplan","mvp","mvp gold","mvp gold 75k","mvp gold 100k","atmos rewards","atmos","horizon air","oneworld"],tiers:["Silver","Gold","Platinum","Titanium"],senderDomains:["alaskaair.com","email.alaskaair.com","e.alaskaair.com","alaskaairlines.com"]},{name:"Allegiant Allways Rewards",type:"airline",code:null,aliases:["allegiant","allegiant air","allegiant airlines","allways rewards","allways"],tiers:[],senderDomains:["allegiantair.com","email.allegiantair.com","e.allegiantair.com"]},{name:"American Airlines AAdvantage",type:"airline",code:null,aliases:["american","american airlines","aadvantage","aadvantage gold","aadvantage platinum","platinum pro","executive platinum","concierge key","oneworld"],tiers:["Gold","Platinum","Platinum Pro","Executive Platinum","Concierge Key"],senderDomains:["aa.com","email.aa.com","info.email.aa.com","americanairlines.com"]},{name:"ANA Mileage Club",type:"airline",code:null,aliases:["ana mileage club","all nippon airways","super flyers"],tiers:["Bronze","Platinum","Diamond"],senderDomains:["ana.co.jp","121.ana.co.jp","amc.ana.co.jp","ana.jp"]},{name:"Avelo Airlines",type:"airline",code:null,aliases:["avelo","avelo air","avelo plus"],tiers:[],senderDomains:["aveloair.com","email.aveloair.com","e.aveloair.com"]},{name:"Avianca LifeMiles",type:"airline",code:null,aliases:["avianca","lifemiles","life miles","avianca lifemiles","red plus"],tiers:["Red Plus","Silver","Gold","Diamond"],senderDomains:["avianca.com","email.avianca.com","e.avianca.com","lifemiles.com"]},{name:"British Airways Executive Club (The British Airways Club / Avios)",type:"airline",code:null,aliases:["british airways","executive club","the british airways club","ba club","avios","gold guest list"],tiers:["Blue","Bronze","Silver","Gold","Gold Guest List"],senderDomains:["britishairways.com","email.britishairways.com","ba.com","comms.britishairways.com","avios.com"]},{name:"Breeze Airways BreezePoints",type:"airline",code:null,aliases:["breeze","breeze airways","breezepoints","breeze points","breezy rewards","breezy"],tiers:["Breezy 1","Breezy 2","Breezy 3","Breezy Club"],senderDomains:["flybreeze.com","email.flybreeze.com","e.flybreeze.com"]},{name:"Cathay (Asia Miles)",type:"airline",code:null,aliases:["cathay","cathay pacific","asia miles","cathay membership","cathay member"],tiers:["Green","Silver","Gold","Diamond"],senderDomains:["cathaypacific.com","cathay.com","asiamiles.c
1om","e.cathaypacific.com","email.cathaypacific.com","member.cathaypacific.com"]},{name:"China Eastern Eastern Miles",type:"airline",code:null,aliases:["china eastern","eastern miles","china eastern airlines"],tiers:["Silver","Gold","Platinum"],senderDomains:["ceair.com","easternmiles.com","email.ceair.com","mail.ceair.com"]},{name:"China Southern Sky Pearl Club",type:"airline",code:null,aliases:["china southern","sky pearl","sky pearl club","china southern airlines"],tiers:["Silver","Gold","Platinum"],senderDomains:["csair.com","skypearl.csair.com","email.csair.com","mail.csair.com"]},{name:"Copa Airlines ConnectMiles",type:"airline",code:null,aliases:["copa","copa airlines","connectmiles","connect miles","prefermember"],tiers:["Silver","Gold","Platinum","Presidential"],senderDomains:["copaair.com","email.copaair.com","e.copaair.com"]},{name:"Delta SkyMiles",type:"airline",code:null,aliases:["delta","delta air lines","skymiles","sky miles","medallion","silver medallion","gold medallion","platinum medallion","diamond medallion","skyteam"],tiers:["Silver Medallion","Gold Medallion","Platinum Medallion","Diamond Medallion"],senderDomains:["delta.com","news.delta.com","email.delta.com","e.delta.com"]},{name:"easyJet Plus / Flight Club",type:"airline",code:null,aliases:["easyjet","easy jet","easyjet plus","flight club","easyjet flight club"],tiers:[],senderDomains:["easyjet.com","email.easyjet.com","e.easyjet.com","plus.easyjet.com"]},{name:"Emirates Skywards",type:"airline",code:null,aliases:["emirates","skywards","emirates skywards","fly emirates"],tiers:["Blue","Silver","Gold","Platinum"],senderDomains:["emirates.com","emirates.email","e.emirates.com","skywards.emirates.com","mail.emirates.com"]},{name:"Etihad Guest",type:"airline",code:null,aliases:["etihad","etihad guest","etihad airways"],tiers:["Bronze","Silver","Gold","Platinum","Emerald"],senderDomains:["etihad.com","etihadguest.com","email.etihad.com","e.etihad.com"]},{name:"EVA Air Infinity MileageLands",type:"airline",code:null,aliases:["eva air","infinity mileagelands","mileagelands","eva air infinity"],tiers:["Green","Silver","Gold","Diamond"],senderDomains:["evaair.com","email.evaair.com","e.evaair.com","mail.evaair.com"]},{name:"Finnair Plus",type:"airline",code:null,aliases:["finnair","finnair plus","platinum lumo","lumo"],tiers:["Basic","Silver","Gold","Platinum","Platinum Lumo"],senderDomains:["finnair.com","email.finnair.com","news.finnair.com","go.finnair.com"]},{name:"Frontier Airlines FRONTIER Miles",type:"airline",code:null,aliases:["frontier","frontier airlines","frontier miles","frontiermiles","elite silver","elite gold","elite platinum","elite diamond","elite 20k","elite 50k","elite 100k"],tiers:["Elite Silver","Elite Gold","Elite Platinum","Elite Diamond"],senderDomains:["flyfrontier.com","emails.flyfrontier.com","email.flyfrontier.com"]},{name:"Hawaiian Airlines HawaiianMiles (Pualani / Atmos Rewards)",type:"airline",code:null,aliases:["hawaiian","hawaiian airlines","hawaiianmiles","hawaiian miles","pualani","pualani gold","pualani platinum","premier club","atmos rewards","atmos"],tiers:["Premier Club","Pualani Gold","Pualani Platinum"],senderDomains:["hawaiianairlines.com","email.hawaiianairlines.com","alaskaair.com"]},{name:"Iberia Plus (Club Iberia Plus)",type:"airline",code:null,aliases:["iberia","iberia plus","club iberia plus","iberia club","clasica","cl\xe1sica","platino prime","infinita","infinita prime","avios"],tiers:["Clasica","Plata","Oro","Platino","Platino Prime","Infinita","Infinita Prime"],senderDomains:["iberia.com","email.iberia.com","news.iberia.com","iberiaplus.com","grupo.iberia.es"]},{name:"IndiGo BluChip",type:"airline",code:null,aliases:["indigo","indi go","bluchip","blu chip","indigo bluchip","6e"],tiers:["Blu 3","Blu 2","Blu 1"],senderDomains:["goindigo.in","email.goindigo.in","e.goindigo.in"]},{name:"ITA Airways Volare",type:"airline",code:null,aliases:["ita airways","volare","alitalia","smart","premium","executive"],tiers:["Smart","Plus","Premium","Executive"],senderDomains:["ita-airways.com","itaspa.com","email.ita-airways.com","news.ita-airways.com"]},{name:"JAL Mileage Bank",type:"airline",code:null,aliases:["jal mileage bank","japan airlines","jal global club","fly on"],tiers:["Crystal","Sapphire","JGC Premier","Diamond"],senderDomains:["jal.com","jal.co.jp","121.jal.co.jp","mail.jal.com","info.jal.co.jp"]},{name:"JetBlue TrueBlue",type:"airline",code:null,aliases:["jetblue","jet blue","trueblue","true blue","mosaic","mosaic 1","mosaic 2","mosaic 3","mosaic 4"],tiers:["Mosaic 1","Mosaic 2","Mosaic 3","Mosaic 4"],senderDomains:["jetblue.com","needtoknow.jetblue.com","email.jetblue.com","mail.jetblue.com"]},{name:"Korean Air SKYPASS",type:"airline",code:null,aliases:["korean air","skypass","morning calm","morning calm club","million miler","korean air skypass"],tiers:["Morning Calm Club","Morning Calm Premium Club","Million Miler Club"],senderDomains:["koreanair.com","email.koreanair.com","e.koreanair.com","mail.koreanair.com"]},{name:"LATAM Pass",type:"airline",code:null,aliases:["latam","latam airlines","latam pass","latampass"],tiers:["Gold","Platinum","Black","Black Signature"],senderDomains:["latamairlines.com","latam.com","email.latamairlines.com","e.latamairlines.com"]},{name:"LOT Polish Airlines Miles & More",type:"airline",code:null,aliases:["lot polish airlines","polish airlines","miles & more","miles and more","miles&more","frequent traveller","senator","hon circle"],tiers:["Frequent Traveller","Senator","HON Circle"],senderDomains:["lot.com","email.lot.com","news.lot.com","miles-and-more.com"]},{name:"Lufthansa Miles & More",type:"airline",code:null,aliases:["miles & more","miles and more","miles&more","milesandmore","lufthansa","lufthansa miles & more","swiss","austrian airlines","austrian","brussels airlines","eurowings","discover airlines","air dolomiti","croatia airlines","luxair","frequent traveller","senator","hon circle"],tiers:["Frequent Traveller","Senator","HON Circle"],senderDomains:["miles-and-more.com","lufthansa.com","newsletter.lufthansa.com","email.lufthansa.com","swiss.com","austrian.com","brusselsairlines.com","eurowings.com"]},{name:"Norwegian Reward",type:"airline",code:null,aliases:["norweg
1ian air","norwegian air shuttle","norwegian reward","norwegianreward","cashpoints","fly norwegian"],tiers:[],senderDomains:["norwegian.com","email.norwegian.com","e.norwegian.com","norwegianreward.com"]},{name:"Porter Airlines VIPorter",type:"airline",code:null,aliases:["porter","porter airlines","viporter","vi porter","avid traveller"],tiers:["Member","Passport","Venture","Ascent","First"],senderDomains:["flyporter.com","email.flyporter.com","e.flyporter.com"]},{name:"Qantas Frequent Flyer",type:"airline",code:null,aliases:["qantas","qantas frequent flyer","qantas points","qantas red"],tiers:["Bronze","Silver","Gold","Platinum","Platinum One"],senderDomains:["qantas.com","loyalty.qantas.com","email.qantas.com","mail.qantas.com","qantasloyalty.com"]},{name:"Qatar Airways Privilege Club",type:"airline",code:null,aliases:["qatar","qatar airways","privilege club","qatar privilege club","qatar avios","qpoints"],tiers:["Burgundy","Silver","Gold","Platinum"],senderDomains:["qatarairways.com","email.qatarairways.com","e.qatarairways.com","privilegeclub.qatarairways.com"]},{name:"Ryanair",type:"airline",code:null,aliases:["ryanair","ryan air","myryanair","ryanair prime","ryanair choice"],tiers:[],senderDomains:["ryanair.com","email.ryanair.com","e.ryanair.com","care.ryanair.com"]},{name:"SAS EuroBonus",type:"airline",code:null,aliases:["scandinavian airlines","eurobonus","sas eurobonus","pandion"],tiers:["Member","Silver","Gold","Diamond","Pandion"],senderDomains:["flysas.com","sas.se","sas.dk","sas.no","email.flysas.com","news.flysas.com"]},{name:"Singapore Airlines KrisFlyer",type:"airline",code:null,aliases:["singapore airlines","krisflyer","kris flyer","singapore air","pps club","ppskrisflyer"],tiers:["KrisFlyer","Elite Silver","Elite Gold","PPS Club","Solitaire PPS Club"],senderDomains:["singaporeair.com","email.singaporeair.com","e.singaporeair.com","krisflyer.com"]},{name:"Southwest Rapid Rewards",type:"airline",code:null,aliases:["southwest","southwest airlines","rapid rewards","rapidrewards","a-list","a list","a-list preferred","a list preferred","companion pass"],tiers:["A-List","A-List Preferred"],senderDomains:["southwest.com","luv.southwest.com","iluv.southwest.com","mail.southwest.com","email.southwest.com"]},{name:"Spirit Airlines Free Spirit",type:"airline",code:null,aliases:["spirit","spirit airlines","free spirit","freespirit","free spirit silver","free spirit gold"],tiers:["Silver","Gold"],senderDomains:["spirit.com","email.spirit.com","emails.spirit.com"]},{name:"Sun Country Rewards",type:"airline",code:null,aliases:["sun country","sun country airlines","sun country rewards","ufly"],tiers:[],senderDomains:["suncountry.com","email.suncountry.com","e.suncountry.com"]},{name:"TAP Miles&Go",type:"airline",code:null,aliases:["tap air portugal","tap portugal","miles&go","miles and go","milesandgo","miles & go","victoria","navigator"],tiers:["Silver","Gold","Navigator"],senderDomains:["flytap.com","email.flytap.com","tap.pt","news.flytap.com","milesandgo.flytap.com"]},{name:"Thai Airways Royal Orchid Plus",type:"airline",code:null,aliases:["thai airways","royal orchid plus","thai","royal orchid"],tiers:["Member","Silver","Gold","Platinum"],senderDomains:["thaiairways.com","thaiairways.co.th","email.thaiairways.com","rop.thaiairways.com"]},{name:"Turkish Airlines Miles&Smiles",type:"airline",code:null,aliases:["turkish airlines","turkish","miles&smiles","miles and smiles","milesandsmiles","miles & smiles","classic plus","elite plus"],tiers:["Classic","Classic Plus","Elite","Elite Plus"],senderDomains:["turkishairlines.com","email.turkishairlines.com","news.turkishairlines.com","thy.com","milesandsmiles.com"]},{name:"United MileagePlus",type:"airline",code:null,aliases:["united","united airlines","mileageplus","mileage plus","premier silver","premier gold","premier platinum","premier 1k","global services","star alliance"],tiers:["Premier Silver","Premier Gold","Premier Platinum","Premier 1K","Global Services"],senderDomains:["united.com","mileageplus.com","news.united.com","email.united.com","unitedairlines.com"]},{name:"Virgin Atlantic Flying Club",type:"airline",code:null,aliases:["virgin atlantic","flying club","virgin flying club","virgin atlantic flying club"],tiers:["Red","Silver","Gold"],senderDomains:["virginatlantic.com","email.virginatlantic.com","flywith.virginatlantic.com","virgin-atlantic.com"]},{name:"Virgin Australia Velocity Frequent Flyer",type:"airline",code:null,aliases:["velocity","velocity frequent flyer","virgin australia","virgin australia velocity","platinum plus"],tiers:["Red","Silver","Gold","Platinum","Beyond"],senderDomains:["velocityfrequentflyer.com","virginaustralia.com","email.virginaustralia.com","e.velocityfrequentflyer.com"]},{name:"Volaris altitude",type:"airline",code:null,aliases:["volaris","altitude by volaris","volaris altitude","v.club","vclub"],tiers:[],senderDomains:["volaris.com","email.volaris.com","e.volaris.com"]},{name:"Vueling Club",type:"airline",code:null,aliases:["vueling","vueling club","vueling airlines"],tiers:["Basic","Smart","Plus","Premium"],senderDomains:["vueling.com","email.vueling.com","e.vueling.com"]},{name:"WestJet Rewards",type:"airline",code:null,aliases:["westjet","west jet","westjet rewards","westjet dollars"],tiers:["Teal","Silver","Gold","Platinum"],senderDomains:["westjet.com","itinerary.westjet.com","email.westjet.com","mail.westjet.com"]}
1,{name:"Wizz Air WIZZ Discount Club",type:"airline",code:null,aliases:["wizz","wizz air","wizzair","wizz discount club","wdc"],tiers:["Light","Standard","Premium"],senderDomains:["wizzair.com","email.wizzair.com","e.wizzair.com"]},{name:"Alamo Insiders",type:"car",code:null,aliases:["alamo","alamo insiders","alamo rent a car","insiders"],tiers:[],senderDomains:["alamo.com","email.alamo.com","e.alamo.com","ehi.com"]},{name:"Avis Preferred",type:"car",code:"ZI",aliases:["avis","avis preferred","avis preferred plus","preferred plus","avis president's club","avis presidents club","avis chairman's club"],tiers:["Preferred","Preferred Plus","President's Club"],senderDomains:["avis.com","e.avis.com","email.avis.com","avisbudgetgroup.com","ir.avisbudgetgroup.com"]},{name:"Budget Fastbreak",type:"car",code:null,aliases:["budget","budget fastbreak","fastbreak","budget rent a car","budget bucks"],tiers:[],senderDomains:["budget.com","e.budget.com","email.budget.com","avisbudgetgroup.com"]},{name:"Dollar Express Rewards",type:"car",code:null,aliases:["dollar","dollar express","dollar express rewards","dollar rent a car"],tiers:[],senderDomains:["dollar.com","email.dollar.com","e.dollar.com"]},{name:"Enterprise Plus",type:"car",code:"ET",aliases:["enterprise","enterprise plus","enterprise rent-a-car","enterprise rewards","enterprise silver","enterprise gold","enterprise platinum"],tiers:["Plus","Silver","Gold","Platinum"],senderDomains:["enterprise.com","email.enterprise.com","e.enterprise.com","ehi.com"]},{name:"Europcar Privilege",type:"car",code:null,aliases:["europcar","europcar privilege","privilege club","privilege executive","privilege elite","privilege elite vip"],tiers:["Club","Executive","Elite","Elite VIP"],senderDomains:["europcar.com","email.europcar.com","e.europcar.com","europcar.fr"]},{name:"Hertz Gold Plus Rewards",type:"car",code:"ZD",aliases:["hertz","hertz gold","hertz gold plus","gold plus rewards","hertz rewards","hertz five star","hertz president's circle","presidents circle"],tiers:["Gold","Five Star","President's Circle"],senderDomains:["hertz.com","emails.hertz.com","pub.emails.hertz.com","e.hertz.com","mail.hertz.com"]},{name:"National Emerald Club",type:"car",code:"ZL",aliases:["national","emerald club","national car rental","national emerald","emerald executive","executive elite","national executive"],tiers:["Emerald Club","Executive","Executive Elite"],senderDomains:["nationalcar.com","email.nationalcar.com","e.nationalcar.com","ehi.com"]},{name:"SIXT ONE Rewards",type:"car",code:null,aliases:["sixt","sixt one","sixt rewards","sixt one rewards","sixt advantage circle","sixt gold","sixt platinum","sixt diamond"],tiers:["Silver","Gold","Platinum","Diamond"],senderDomains:["sixt.com","e.sixt.com","email.sixt.com","mail.sixt.com","sixt.de"]},{name:"Thrifty Blue Chip Rewards",type:"car",code:null,aliases:["thrifty","blue chip","blue chip rewards","thrifty blue chip","thrifty car rental"],tiers:[],senderDomains:["thrifty.com","email.thrifty.com","e.thrifty.com"]},{name:"Turo",type:"car",code:null,aliases:["turo","turo bonus","turo loyalty","all-star host"],tiers:[],senderDomains:["turo.com","email.turo.com","e.turo.com","mail.turo.com"]},{name:"Carnival VIFP Club",type:"cruise",code:null,aliases:["carnival","vifp","vifp club","very important fun person","carnival rewards","carnival cruise line","carnival platinum","carnival diamond"],tiers:["Blue","Red","Gold","Platinum","Diamond"],senderDomains:["carnival.com","e.carnival.com","email.carnival.com","mail.carnival.com"]},{name:"Celebrity Cruises Captain's Club",type:"cruise",code:null,aliases:["celebrity","celebrity cruises","captain's club","captains club","celebrity select","celebrity elite","elite plus","zenith"],tiers:["Preview","Classic","Select","Elite","Elite Plus","Zenith"],senderDomains:["celebritycruises.com","email.celebritycruises.com","e.celebritycruises.com","celebrity.com"]},{name:"MSC Voyagers Club",type:"cruise",code:null,aliases:["msc cruises","voyagers club","msc voyagers","msc silver","msc gold","msc diamond","blue diamond"],tiers:["Welcome","Classic","Silver","Gold","Diamond","Blue Diamond"],senderDomains:["msccruises.com","msccruisesusa.com","email.msccruises.com","e.msccruises.com"]},{name:"Norwegian Cruise Line Latitudes Rewards",type:"cruise",code:null,aliases:["norweg
1ian","latitudes","latitudes rewards","norwegian cruise line","ncl latitudes","ambassador"],tiers:["Bronze","Silver","Gold","Platinum","Sapphire","Diamond","Ambassador"],senderDomains:["ncl.com","email.ncl.com","e.ncl.com","mail.ncl.com"]},{name:"Princess Cruises Captain's Circle",type:"cruise",code:null,aliases:["princess","princess cruises","captain's circle","captains circle","princess gold","princess ruby","princess platinum","princess elite"],tiers:["Gold","Ruby","Platinum","Elite"],senderDomains:["princess.com","email.princess.com","e.princess.com","princesscruises.com"]},{name:"Royal Caribbean Crown & Anchor Society",type:"cruise",code:null,aliases:["royal caribbean","crown and anchor","crown & anchor","crown anchor society","royal caribbean international","diamond plus","pinnacle club"],tiers:["Gold","Platinum","Emerald","Diamond","Diamond Plus","Pinnacle Club"],senderDomains:["royalcaribbean.com","rccl.com","email.royalcaribbean.com","e.royalcaribbean.com","club.royalcaribbean.com"]},{name:"Accor Live Limitless (ALL)",type:"hotel",code:null,aliases:["accor","accor live limitless","accorhotels","all.accor","raffles","orient express","fairmont","sofitel","sofitel legend","the house collective","rixos","banyan tree","delano","mondrian","hyde","art series","mgallery","mgallery hotel collection","pullman","swissotel","swiss\xf4tel","angsana","25hours","movenpick","m\xf6venpick","novotel","mercure","adagio","tribe","mama shelter","ibis","ibis styles","ibis budget","greet","jo&joe","emblems","handwritten collection","ennismore","le club accorhotels"],tiers:["Classic","Silver","Gold","Platinum","Diamond"],senderDomains:["accor.com","all.accor.com","email.accor.com","e.accor.com","accorhotels.com","mail.accor.com","info.accor.com"]},{name:"Best Western Rewards",type:"hotel",code:null,aliases:["best western","best western rewards","best western plus","best western premier","bw premier collection","sure stay","surestay","surestay plus","executive residency","aiden","sadie","the modern","worldhotels","world hotels","bw signature collection","bw signature"],tiers:["Blue","Gold","Platinum","Diamond","Diamond Select"],senderDomains:["bestwestern.com","email.bestwestern.com","e.bestwestern.com","bestwesternrewards.com","mail.bestwestern.com"]},{name:"Choice Privileges",type:"hotel",code:null,aliases:["choice","choice privileges","choice hotels","comfort inn","comfort suites","comfort","quality inn","sleep inn","clarion","cambria","ascend","ascend hotel collection","mainstay suites","mainstay","suburban","econo lodge","rodeway inn","rodeway","everhome suites","everhome","woodspring suites","woodspring","park inn"],tiers:["Member","Gold","Platinum","Diamond","Titanium"],senderDomains:["choicehotels.com","email.choicehotels.com","e.choicehotels.com","choiceprivileges.com","mail.choicehotels.com"]},{name:"Fans of M.O. (Mandarin Oriental)",type:"hotel",code:null,aliases:["mandarin oriental","mandarin","fans of m.o.","fans of mo","fans of mandarin oriental","fan club","m.o.","the residences at mandarin oriental"],tiers:["Fan of M.O.","Silk","Pearl"],senderDomains:["mandarinoriental.com","email.mandarinoriental.com","e.mandarinoriental.com","mail.mandarinoriental.com"]},{name:"Four Seasons Preferred Partner",type:"hotel",code:null,aliases:["four seasons","four seasons hotels","four seasons resorts","preferred partner","four seasons preferred partner","fshr"],tiers:[],senderDomains:["fourseasons.com","email.fourseasons.com","e.fourseasons.com","mail.fourseasons.com","reservations.fourseasons.com"]},{name:"Hilton Honors",type:"hotel",code:null,aliases:["hilton","honors","hilton honors","hhonors","waldorf astoria","waldorf-astoria","conrad","canopy","curio","curio collection","doubletree","double tree","tapestry","embassy suites","hilton garden inn","hampton","hampton inn","homewood suites","home2 suites","home2","motto","signia","tempo","spark","graduate by hilton"],tiers:["Silver","Gold","Diamond","Diamond Reserve"],senderDomains:["hilton.com","mail.hilton.com","e.hilton.com","email.hilton.com","news.hilton.com","hiltonhonors.com","members.hilton.com"]},{name:"IHG One Rewards",type:"hotel",code:null,aliases:["ihg one rewards","ihg rewards","intercontinental","inter-continental","kimpton","regent","six senses","hotel indigo","indigo","voco","hualuxe","crowne plaza","even hotels","even","holiday inn","holiday inn express","holiday inn club vacations","avid","staybridge suites","staybridge","candlewood suites","candlewood","atwell suites","atwell","iberostar","vignette collection","garner","intercontinental ambassador","ambassador"],tiers:["Silver Elite","Gold Elite","Platinum Elite","Diamond Elite"],senderDomains:["ihg.com","email.ihg.com","ihgrewardsclub.com","ihgonerewards.com","e.ihg.com","mail.ihg.com","members.ihg.com"]},{name:"Leading Hotels of the World Leaders Club",type:"hotel",code:null,aliases:["leading hotels","leading hotels of the world","leaders club","leadersclub","leading hotels leaders club"],tiers:["Club","Sterling","Aurelian"],senderDomains:["lhw.com","email.lhw.com","e.lhw.com","mail.lhw.com","leadinghotels.com"]},{name:"Marriott Bonvoy",type:"hotel",code:null,aliases:["marriott","bonvoy","marriott bonvoy","ritz-carlton","ritz carlton","st. regis","st regis","w hotels","westin","sheraton","le meridien","le m\xe9ridien","jw marriott","the luxury collection","autograph collection","renaissance","courtyard","fairfield","fairfield inn","residence inn","springhill suites","towneplace","four points","aloft","element","moxy","ac hotels","delta hotels","gaylord","tribute portfolio","design hotels","edition","protea","starwood"],tiers:["Silver Elite","Gold Elite","Platinum Elite","Titanium Elite","Ambassador Elite"],senderDomains:["marriott.com","email-marriott.com","my.marriott.com","email.marriott.com","e.marriott.com","ritzcarlton.com","marriott-email.com","res-marriott.com"]},{name:"Meli\xe1Rewards",type:"hotel",code:null,aliases:["melia","meli\xe1","melia rewards","meliarewards","meli\xe1 rewards","melia hotels","gran melia","gran meli\xe1","paradisus","me b
1y melia","me by meli\xe1","innside","innside by melia","sol by melia","tryp by wyndham","the meli\xe1 collection","affiliated by melia","circle by melia"],tiers:["White","Silver","Gold","Platinum"],senderDomains:["melia.com","email.melia.com","e.melia.com","meliahotelsinternational.com","mail.melia.com","meliarewards.com"]},{name:"Omni Select Guest",type:"hotel",code:null,aliases:["omni","omni hotels","omni select guest","select guest","omni hotels & resorts","omni hotels and resorts"],tiers:["Member","Insider","Champion","Icon"],senderDomains:["omnihotels.com","email.omnihotels.com","e.omnihotels.com","mail.omnihotels.com","selectguest.omnihotels.com"]},{name:"Radisson Rewards (Global)",type:"hotel",code:null,aliases:["radisson","radisson rewards","radisson rewards global","radisson blu","radisson red","radisson collection","park plaza","park inn by radisson","art'otel","prizeotel","radisson hotel group","radisson individuals"],tiers:["Club","Premium","VIP"],senderDomains:["radissonhotels.com","email.radissonhotels.com","e.radissonhotels.com","radissonrewards.com","mail.radissonhotels.com"]},{name:"Radisson Rewards Americas",type:"hotel",code:null,aliases:["radisson","radisson rewards","radisson rewards americas","radisson blu","radisson red","radisson collection","radisson individuals","country inn","country inn & suites","country inn and suites","park plaza","park inn","art'otel","artotel","prizeotel","radisson hotel group"],tiers:["Club","Silver","Gold","Platinum"],senderDomains:["radissonhotels.com","radissonhotelsamericas.com","email.radissonhotels.com","e.radissonhotels.com","radissonrewards.com","mail.radissonhotels.com"]},{name:"Shangri-La Circle",type:"hotel",code:null,aliases:["shangri-la","shangri la","shangrila","shangri-la circle","golden circle","kerry hotels","kerry","hotel jen","traders","shangri-la residences","shangri-la hotels and resorts"],tiers:["Gold","Jade","Diamond","Polaris"],senderDomains:["shangri-la.com","email.shangri-la.com","e.shangri-la.com","mail.shangri-la.com","shangrila.com"]},{name:"Sonesta Travel Pass",type:"hotel",code:null,aliases:["sonesta","sonesta travel pass","travel pass","royal sonesta","sonesta es suites","sonesta select","sonesta simply suites","americas best value inn","abvi","red lion","red lion hotels","signature inn","knights inn","guesthouse","settle inn","the james","classico","the james hotels"],tiers:["Bronze","Silver","Gold","Platinum"],senderDomains:["sonesta.com","travelpass.sonesta.com","email.sonesta.com","e.sonesta.com","mail.sonesta.com"]},{name:"World of Hyatt",type:"hotel",code:null,aliases:["hyatt","world of hyatt","park hyatt","grand hyatt","hyatt regency","hyatt place","hyatt house","andaz","alila","thompson","the unbound collection","destination by hyatt","destination hotels","joie de vivre","hyatt centric","caption by hyatt","miraval","hyatt ziva","hyatt zilara","secrets","dreams","breathless","zoetry","hyatt vivid","impression","small luxury hotels","mr & mrs smith","mr and mrs smith"],tiers:["Discoverist","Explorist","Globalist"],senderDomains:["hyatt.com","email.hyatt.com","e.hyatt.com","mail.hyatt.com","loyalty.hyatt.com","worldofhyatt.com"]},{name:"Wyndham Rewards",type:"hotel",code:null,aliases:["wyndham","wyndham rewards","ramada","days inn","super 8","super8","la quinta","laquinta","baymont","microtel","howard johnson","hojo","travelodge","wingate","ramada encore","tryp","dolce","dazzler","esplendor","trademark collection","americinn","hawthorn suites","hawthorn","wyndham grand","wyndham garden","registry collection","vienna house","echo suites"],tiers:["Blue","Gold","Platinum","Diamond"],senderDomains:["wyndhamhotels.com","wyndhamrewards.com","email.wyndhamhotels.com","e.wyndhamrewards.com","mail.wyndhamrewards.com","wyndham.com"]},{name:"Amtrak Guest Rewards",type:"rail",code:null,aliases:["amtrak","amtrak guest rewards","guest rewards","amtrak select","select plus","select executive"],tiers:["Member","Select","Select Plus","Select Executive"],senderDomains:["amtrak.com","em.amtrak.com","e.amtrak.com","email.amtrak.com","amtrak.bfi0.com"]},{name:"Club Eurostar",type:"rail",code:null,aliases:["eurostar","club eurostar","eurostar club","avantage","carte blanche","etoile"],tiers:["Classique","Avantage","Carte Blanche","Etoile"],senderDomains:["eurostar.com","email.eurostar.com","e.eurostar.com","newsletter.eurostar.com"]},{name:"SNCF Grand Voyageur",type:"rail",code:null,aliases:["sncf","grand voyageur","grand voyageur le club","le club","voyageur","sncf connect","tgv inoui","tgv max"],tiers:["Grand Voyageur","Grand Voyageur Le Club"],senderDomains:["sncf.com","sncf-connect.com","email.sncf-connect.com","voyages-sncf.com","sncf-voyageurs.com"]},{name:"Trenitalia CartaFRECCIA",type:"rail",code:null,aliases:["trenitalia","cartafreccia","carta freccia","cartafreccia argento","cartafreccia oro","cartafreccia platino","frecce","freccialounge"],tiers:["CartaFRECCIA","Argento","Oro","Platino","Platino Infinito"],senderDomains:["trenitalia.com","email.trenitalia.com","newsletter.trenitalia.com","fsitaliane.it"]},{name:"Priority Pass",type:"other",code:null,aliases:["priority pass","prioritypass"],tiers:[],senderDomains:["prioritypass.com","email.prioritypass.com"]}],t=Object.fromEntries(i.filter(e=>{var a,r;return(null!=(r=null==(a=e.tiers)?void 0:a.length)?r:0)>0}).map(e=>{var a;return[e.name,Object.fromEntries((null!=(a=e.tiers)?a:[]).map((e,a)=>[e,a+1]))]})),n=[{product:"amex_platinum",displayName:"American Express Platinum",aliases:["the platinum card","amex platinum"]},{product:"amex_business_platinum",displayName:"American Express Business Platinum",aliases:["business platinum"]},{product:"amex_gold",displayName:"American Express Gold",aliases:["the gold card","amex gold"]},{product:"chase_sapphire_reserve",displayName:"Chase Sapphire Reserve",aliases:["sapphire reserve"]},{product:"chase_sapphire_preferred",displayName:"Chase Sapphire Preferred",aliases:["sapphire preferred"]}
1,{product:"capital_one_venture_x",displayName:"Capital One Venture X",aliases:["venture x"]},{product:"capital_one_venture",displayName:"Capital One Venture Rewards",aliases:["venture rewards"]},{product:"citi_strata_premier",displayName:"Citi Strata Premier",aliases:["strata premier","citi strata"]},{product:"bilt_mastercard",displayName:"Bilt Mastercard",aliases:["bilt mastercard","bilt rewards"]},{product:"hilton_aspire",displayName:"Hilton Honors Aspire (Amex)",aliases:["hilton honors aspire","hilton aspire","aspire card"]},{product:"hilton_surpass",displayName:"Hilton Honors Surpass (Amex)",aliases:["hilton honors surpass","hilton surpass","surpass card"]},{product:"hilton_business",displayName:"Hilton Honors Business (Amex)",aliases:["hilton honors business","hilton business"]},{product:"hilton_nofee",displayName:"Hilton Honors (Amex, no fee)",aliases:["hilton honors american express card"]},{product:"marriott_brilliant",displayName:"Marriott Bonvoy Brilliant (Amex)",aliases:["bonvoy brilliant"]},{product:"marriott_bevy",displayName:"Marriott Bonvoy Bevy (Amex)",aliases:["bonvoy bevy"]},{product:"marriott_business",displayName:"Marriott Bonvoy Business (Amex)",aliases:["bonvoy business"]},{product:"marriott_boundless",displayName:"Marriott Bonvoy Boundless (Chase)",aliases:["bonvoy boundless"]},{product:"marriott_bountiful",displayName:"Marriott Bonvoy Bountiful (Chase)",aliases:["bonvoy bountiful"]},{product:"world_of_hyatt",displayName:"World of Hyatt Card (Chase)",aliases:["world of hyatt credit card"]},{product:"world_of_hyatt_business",displayName:"World of Hyatt Business (Chase)",aliases:["world of hyatt business"]},{product:"ihg_premier",displayName:"IHG One Rewards Premier (Chase)",aliases:["ihg one rewards premier","ihg premier"]},{product:"ihg_traveler",displayName:"IHG One Rewards Traveler (Chase)",aliases:["ihg one rewards traveler","ihg traveler"]},{product:"delta_reserve",displayName:"Delta SkyMiles Reserve (Amex)",aliases:["delta skymiles reserve","delta reserve"]},{product:"delta_platinum",displayName:"Delta SkyMiles Platinum (Amex)",aliases:["delta skymiles platinum","delta platinum"]},{product:"delta_gold",displayName:"Delta SkyMiles Gold (Amex)",aliases:["delta skymiles gold","delta gold"]},{product:"united_club_infinite",displayName:"United Club Infinite (Chase)",aliases:["united club infinite","united club card"]},{product:"united_explorer",displayName:"United Explorer (Chase)",aliases:["united explorer"]},{product:"aa_executive",displayName:"Citi AAdvantage Executive",aliases:["aadvantage executive","citi aadvantage executive"]},{product:"aa_platinum_select",displayName:"Citi AAdvantage Platinum Select",aliases:["aadvantage platinum select"]},{product:"alaska_visa",displayName:"Alaska Airlines Visa (BofA)",aliases:["alaska airlines visa","alaska visa"]},{product:"southwest_priority",displayName:"Southwest Rapid Rewards Priority (Chase)",aliases:["rapid rewards priority","southwest priority"]},{product:"aaa",displayName:"AAA Membership",kind:"membership",aliases:["aaa membership"]},{product:"clear_plus",displayName:"CLEAR Plus",kind:"membership",aliases:["clear plus"],senderDomains:["clearme.com"]},{product:"costco",displayName:"Costco Membership",kind:"membership",aliases:["costco membership"]},{product:"amex_business_gold",displayName:"American Express Business Gold Card",aliases:["business gold","amex business gold","biz gold"]},{product:"amex_green",displayName:"American Express Green Card",aliases:["amex green","green card","green"]},{product:"delta_skymiles_blue",displayName:"Delta SkyMiles Blue American Express Card",aliases:["delta blue","delta skymiles blue","skymiles blue"]},{product:"delta_skymiles_gold_business",displayName:"Delta SkyMiles Gold Business American Express Card",aliases:["delta gold business","delta skymiles gold business","delta gold biz"]},{product:"delta_skymiles_platinum_business",displayName:"Delta SkyMiles Platinum Business American Express Card",aliases:["delta platinum business","delta skymiles platinum business","delta platinum biz"]},{product:"delta_skymiles_reserve_business",displayName:"Delta SkyMiles Reserve Business American Express Card",aliases:["delta reserve business","delta skymiles reserve business","delta reserve biz"]},{product:"united_gateway",displayName:"United Gateway Card",aliases:["united gateway","gateway card"]},{product:"united_quest",displayName:"United Quest Card",aliases:["united quest","quest card"]},{product:"united_business",displayName:"United Business Card",aliases:["united business","united business card"]},{product:"united_club_business",displayName:"United Club Business Card",aliases:["united club business","club business card"]},{product:"southwest_rapid_rewards_plus",displayName:"Southwest Rapid Rewards Plus Credit Card",aliases:["southwest plus","rapid rewards plus"]},{product:"southwest_rapid_rewards_premier",displayName:"Southwest Rapid Rewards Premier Credit Card",aliases:["southwest premier"]},{product:"southwest_rapid_rewards_premier_business",displayName:"Southwest Rapid Rewards Premier Business Credit Card",aliases:["southwest premier business","rapid rewards premier business"]},{product:"southwest_rapid_rewards_performance_business",displayName:"Southwest Rapid Rewards Performance Business Credit Card",aliases:["southwest performance business","rapid rewards performance business"]},{product:"ihg_one_rewards_premier_business",displayName:"IHG One Rewards Premier Business Credit Card",aliases:["ihg premier business","ihg one rewards premier business"]},{product:"ritz_carlton",displayName:"The Ritz-Carlton Credit Card",aliases:["ritz-carlton","ritz carlton card"]},{product:"chase_aeroplan",displayName:"Aeroplan Credit Card",aliases:["air canada aeroplan","chase aeroplan"]},{product:"british_airways_visa_signature",displayName:"British Airways Visa Signature Card",aliases:["ba visa","british airways visa signature"]},{product:"aer_lingus_visa_signature",displayName:"Aer Lingus Visa Signature Card",aliases:["aer lingus","aer lingus visa signature"]}
1,{product:"iberia_visa_signature",displayName:"Iberia Visa Signature Card",aliases:["iberia","iberia visa signature"]},{product:"citi_strata_elite",displayName:"Citi Strata Elite Card",aliases:["strata elite","citi strata elite","strata elite card"]},{product:"citi_aadvantage_mileup",displayName:"American Airlines AAdvantage MileUp Card",aliases:["aadvantage mileup","mileup","citi mileup"]},{product:"citibusiness_aadvantage_platinum_select",displayName:"CitiBusiness / AAdvantage Platinum Select World Elite Mastercard",aliases:["citibusiness aadvantage","aadvantage business platinum select","citi business aadvantage"]},{product:"barclays_aadvantage_aviator_red",displayName:"AAdvantage Aviator Red World Elite Mastercard",aliases:["aviator red","aadvantage aviator red","barclays aviator red"]},{product:"barclays_aadvantage_aviator_silver",displayName:"AAdvantage Aviator Silver World Elite Mastercard",aliases:["aviator silver","aadvantage aviator silver","barclays aviator silver"]},{product:"barclays_jetblue_plus",displayName:"JetBlue Plus Card",aliases:["jetblue plus","barclays jetblue plus","jetblue plus card"]},{product:"barclays_jetblue_business",displayName:"JetBlue Business Card",aliases:["jetblue business","barclays jetblue business","jetblue business card"]},{product:"barclays_jetblue_premier",displayName:"JetBlue Premier Card",aliases:["jetblue premier","barclays jetblue premier","jetblue premier card"]},{product:"barclays_wyndham_rewards_earner",displayName:"Wyndham Rewards Earner Card",aliases:["wyndham earner","wyndham rewards earner card"]},{product:"barclays_wyndham_rewards_earner_plus",displayName:"Wyndham Rewards Earner Plus Card",aliases:["wyndham rewards earner plus","wyndham earner plus","wyndham rewards earner plus card"]},{product:"barclays_wyndham_rewards_earner_business",displayName:"Wyndham Rewards Earner Business Card",aliases:["wyndham rewards earner business","wyndham earner business","wyndham business"]},{product:"barclays_hawaiian_airlines_world_elite",displayName:"Hawaiian Airlines World Elite Mastercard",aliases:["hawaiian airlines world elite","hawaiian airlines mastercard","barclays hawaiian airlines"]},{product:"barclays_frontier_airlines_world",displayName:"Frontier Airlines World Mastercard",aliases:["frontier airlines world mastercard","frontier mastercard","barclays frontier"]},{product:"barclays_emirates_skywards_rewards",displayName:"Emirates Skywards Rewards World Elite Mastercard",aliases:["emirates skywards rewards","emirates skywards world elite","emirates rewards mastercard"]},{product:"barclays_emirates_skywards_premium",displayName:"Emirates Skywards Premium World Elite Mastercard",aliases:["emirates skywards premium","emirates premium world elite","emirates premium mastercard"]},{product:"amex_uk_gold",displayName:"American Express Preferred Rewards Gold Card",aliases:["amex gold","preferred rewards gold","amex uk gold"]},{product:"ba_amex_premium_plus",displayName:"British Airways American Express Premium Plus Card",aliases:["ba amex premium plus","british airways premium plus","ba premium plus","ba amex blue"]},{product:"marriott_bonvoy_amex_uk",displayName:"Marriott Bonvoy American Express Card",aliases:["marriott bonvoy amex","marriott amex","bonvoy amex uk","marriott bonvoy american express"]},{product:"barclaycard_avios_plus",displayName:"Barclaycard Avios Plus Mastercard",aliases:["barclaycard avios plus","avios plus","barclays avios plus"]},{product:"barclaycard_avios_standard",displayName:"Barclaycard Avios Mastercard",aliases:["free barclaycard avios","barclays avios","avios mastercard"]},{product:"virgin_atlantic_reward_plus",displayName:"Virgin Atlantic Reward+ Mastercard",aliases:["virgin atlantic reward plus","virgin reward+","virgin atlantic reward+","virgin money reward plus"]},{product:"hsbc_premier_world_elite",displayName:"HSBC Premier World Elite Mastercard",aliases:["hsbc premier world elite","hsbc world elite","premier world elite mastercard"]},{product:"lloyds_world_elite",displayName:"Lloyds Bank World Elite Mastercard",aliases:["lloyds world elite","lloyds bank world elite","world elite mastercard lloyds"]},{product:"amex_ca_aeroplan_reserve",displayName:"American Express Aeroplan Reserve Card",aliases:["aeroplan reserve","amex aeroplan reserve","aeroplan reserve card"]},{product:"amex_ca_cobalt",displayName:"American Express Cobalt Card",aliases:["cobalt","amex cobalt","cobalt card"]},{product:"td_aeroplan_visa_infinite_privilege",displayName:"TD Aeroplan Visa Infinite Privilege Card",aliases:["td aeroplan visa infinite privilege","td aeroplan vip","aeroplan visa infinite privilege td"]},{product:"td_aeroplan_visa_infinite",displayName:"TD Aeroplan Visa Infinite Card",aliases:["aeroplan visa infinite td"]},{product:"cibc_aeroplan_visa_infinite_privilege",displayName:"CIBC Aeroplan Visa Infinite Privilege Card",aliases:["cibc aeroplan visa infinite privilege","cibc aeroplan vip","aeroplan visa infinite privilege cibc"]},{product:"cibc_aventura_visa_infinite_privilege",displayName:"CIBC Aventura Visa Infinite Privilege Card",aliases:["cibc aventura visa infinite privilege","aventura vip","cibc aventura privilege"]},{product:"rbc_avion_visa_infinite_privilege",displayName:"RBC Avion Visa Infinite Privilege Card",aliases:["rbc avion visa infinite privilege","avion vip","rbc avion privilege"]},{product:"rbc_westjet_world_elite_mastercard",displayName:"WestJet RBC World Elite Mastercard",aliases:["westjet rbc world elite","rbc westjet world elite mastercard","westjet world elite"]},{product:"scotiabank_passport_visa_infinite",displayName:"Scotiabank Passport Visa Infinite Card",aliases:["scotiabank passport visa infinite","passport visa infinite","scotia passport"]},{product:"scotiabank_gold_amex",displayName:"Scotiabank Gold American Express Card",aliases:["scotiabank gold amex","scotia gold american express","scotiabank gold american express card"]},{product:"bmo_ascend_world_elite_mastercard",displayName:"BMO Ascend World Elite Mastercard",aliases:["bmo ascend world elite","bmo ascend","ascend world elite mastercard"]},{product:"amex_au_explorer",displayName:"American Express Explorer Credit Card (Australia)",aliases:["amex explorer","explorer credit card australia"]},{product:"amex_au_qantas_ultimate",displayName:"Qantas American Express Ultimate Card",aliases:["qantas amex ultimate","qantas ultimate card"]},{product:"amex_au_velocity_platinum",displayName:"American Express Velocity Platinum Card",aliases:["velocity platinum","amex velocity platinum"]},{product:"amex_sg_platinum_charge",displayName:"American Express Platinum Charge Card (Singapore)",aliases:["amex platinum singapore","platinum charge sg","amex plat charge"]},{product:"amex_sg_krisflyer_ascend",displayName:"American Express Singapore Airlines KrisFlyer Ascend Credit Card",aliases:["krisflyer ascend","amex krisflyer ascend"]},{product:"citi_premiermiles_sg",displayName:"Citi PremierMiles Card (Singapore)",aliases:["citi premiermiles","premiermiles singapore"]},{product:"dbs_altitude_sg",displayName:"DBS Altitude Card (Singapore)",aliases:["dbs altitude","altitude visa signature"]},{product:"uob_prvi_miles_sg",displayName:"UOB PRVI Miles Card (Singapore)",aliases:["uob prvi miles","prvi miles"]},{product:"ana_amex_premium_jp",displayName:"ANA American Express Premium Card (Japan)",aliases:["ana amex premium","ana card premium"]},{product:"jal_amex_platinum_jp",displayName:"JAL American Express Platinum Card (Japan)",aliases:["jal amex platinum","jalcard platinum"]},{product:"hdfc_infinia",displayName:"HDFC Bank Infinia Credit Card (Metal Edition)",aliases:["hdfc infinia","infinia metal"]},{product:"hdfc_diners_club_black",displayName:"HDFC Bank Diners Club Black Credit Card",aliases:["hdfc diners black","diners club black"]},{product:"axis_magnus",displayName:"Axis Bank Magnus Credit Card",aliases:["axis magnus","magnus burgundy"]},{product:"axis_reserve",displayName:"Axis Bank Reserve Credit Card",aliases:["axis reserve","reserve credit card"]},{product:"aaa_premier",displayName:"AAA Premier (top tier)",kind:"membership",aliases:[]},{product:"caa",displayName:"CAA (Canadian Automobile Association)",kind:"membership",aliases:[]},{product:"rac_uk",displayName:"RAC (UK)",kind:"membership",aliases:[]},{product:"the_aa_uk",displayName:"The AA (UK) — AA Smart Benefits",kind:"membership",aliases:[]},{product:"adac",displayName:"ADAC (Germany)",kind:"membership",aliases:[]},{product:"nrma",displayName:"NRMA (Australia)",kind:"membership",aliases:[]},{product:"racv",displayName:"RACV (Australia — Victoria)",kind:"membership",aliases:[]}
1,{product:"racq",displayName:"RACQ (Australia — Queensland)",kind:"membership",aliases:[]},{product:"sams_club",displayName:"Sam's Club + Sam's Club Travel",kind:"membership",aliases:[]},{product:"bjs",displayName:"BJ's Wholesale Club + BJ's Travel",kind:"membership",aliases:[]},{product:"aarp",displayName:"AARP",kind:"membership",aliases:[]},{product:"wesalute_veterans_advantage",displayName:"WeSalute (formerly Veterans Advantage) — WeSalute+",kind:"membership",aliases:[]},{product:"usaa",displayName:"USAA (membership perks / USAA Perks)",kind:"membership",aliases:[]},{product:"govx",displayName:"GovX / GOVX ID",kind:"membership",aliases:[]},{product:"id_me",displayName:"ID.me",kind:"membership",aliases:[]},{product:"isic",displayName:"ISIC (International Student Identity Card)",kind:"membership",aliases:[]},{product:"student_beans",displayName:"Student Beans",kind:"membership",aliases:[]},{product:"unidays",displayName:"UNiDAYS",kind:"membership",aliases:[]},{product:"global_entry",displayName:"Global Entry (CBP Trusted Traveler)",kind:"membership",aliases:[],senderDomains:["ttp.cbp.dhs.gov","cbp.dhs.gov"]},{product:"tsa_precheck",displayName:"TSA PreCheck",kind:"membership",aliases:[],senderDomains:["tsa.dhs.gov","universalenroll.dhs.gov","identogo.com"]},{product:"nexus",displayName:"NEXUS (CBP/CBSA Trusted Traveler)",kind:"membership",aliases:[],senderDomains:["ttp.cbp.dhs.gov","cbp.dhs.gov"]},{product:"sentri",displayName:"SENTRI (CBP Trusted Traveler)",kind:"membership",aliases:[],senderDomains:["ttp.cbp.dhs.gov","cbp.dhs.gov"]},{product:"priority_pass",displayName:"Priority Pass",kind:"membership",aliases:[],senderDomains:["prioritypass.com","email.prioritypass.com"]},{product:"loungekey",displayName:"LoungeKey",kind:"membership",aliases:[],senderDomains:["loungekey.com"]},{product:"dragonpass",displayName:"DragonPass",kind:"membership",aliases:[],senderDomains:["dragonpass.com","en.dragonpass.com"]},{product:"plaza_premium_smart_traveller",displayName:"Plaza Premium — Smart Traveller",kind:"membership",aliases:[],senderDomains:["plazapremiumlounge.com","plaza-network.com"]},{product:"hostelling_international",displayName:"Hostelling International (HI)",kind:"membership",aliases:[]}]},4965:(e,a,r)=>{r.d(a,{N:()=>d,y:()=>c});var i=r(80236),t=r(16320),n=r(2380),s=r(75930),o=r(37352),l=r(89334);function c(e,a){return d((0,l.up)(e),a)}function d(e,a){let r=e.filter(i.kF),l=r.filter(e=>"hotel"===e.program_type).length,c=r.filter(e=>"airline"===e.program_type).length,d="balanced";l>c+1?d="hotel":c>l+1&&(d="airline");let u=r.length,m=r.reduce((e,a)=>Math.max(e,function(e){var a;let r=(0,t.T6)(e.program_name),i=r?n.mG[r.name]:n.mG[e.program_name];if(!i||!(null==(a=e.tier)?void 0:a.trim()))return 0;let s=e.tier.trim().toLowerCase(),o=Object.keys(i).find(e=>e.toLowerCase()===s);return o?i[o]:0}(a)),0),p=a.filter(e=>n.L0.some(a=>{var r;return a.product===e.card_product&&(null!=(r=a.kind)?r:"card")==="card"})).length,g=(0,s.it)(a),h=e.length,y=function(e){let a=[];for("hotel"===e.lean&&e.hotelCount>0?a.push("Hotel status is your strong suit (".concat(e.hotelCount," program").concat(1===e.hotelCount?"":"s",").")):"airline"===e.lean&&e.airlineCount>0?a.push("You lean airline (".concat(e.airlineCount," program").concat(1===e.airlineCount?"":"s"," with real status).")):e.statusDepth>0?a.push("Balanced traveler with ".concat(e.statusDepth," status program").concat(1===e.statusDepth?"":"s",".")):e.programBreadth>
10?a.push("On the books with ".concat(e.programBreadth," program").concat(1===e.programBreadth?"":"s",".")):a.push("Your travel setup is ready to grow as you travel."),e.cardPower>0?e.cardAnnualValueTotal>=300?a.push((0,o.dR)(e.cardPower,e.cardAnnualValueTotal)):a.push("".concat(e.cardPower," travel card").concat(1===e.cardPower?"":"s"," in your travel setup.")):e.statusDepth>=2&&a.push("Deep status stack, even without a co-brand card on file."),e.programBreadth>=4&&a.length<3?a.push("".concat(e.programBreadth," programs tracked across your travel setup.")):e.highestTierRank>=3&&a.length<3&&a.push("You hold high-tier status that upgrades trip planning.");a.length<2;)a.push("We will use what we find to upgrade your trip suggestions.");return a.slice(0,3)}({lean:d,statusDepth:u,highestTierRank:m,cardPower:p,cardAnnualValueTotal:g,programBreadth:h,hotelCount:l,airlineCount:c});return{lean:d,statusDepth:u,highestTierRank:m,cardPower:p,cardAnnualValueTotal:g,programBreadth:h,insights:y}}},6058:(e,a,r)=>{r.d(a,{Bj:()=>l,V$:()=>c,je:()=>d,n2:()=>u});var i=r(7837),t=r(16320);function n(e,a){let r=(0,i.LA)(e).filter(e=>"other"!==e.travelerScope),t=(0,i.cp)(a),n=r.filter(e=>{let a=Date.parse(e.checkIn);return Number.isFinite(a)&&a>=t}),s=n.length>=5?"trailing24mo":"allTime";return{scoped:"trailing24mo"===s?n:r,basis:s}}function s(e,a){let r={...e};for(let e of Object.keys(a))e in r&&(r[e]=a[e]);return r}function o(e){let a=new Set;for(let r of e){let e=(0,t.Xg)(r.city,r.country).city;e&&a.add(e)}return[...a]}function l(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),{scoped:t,basis:l}=n(e,r),c=(0,i.X0)(t),d=new Map;for(let e of c){let a=e.reduce((e,a)=>a.checkIn>e?a.checkIn:e,"");for(let r of o(e)){var u;let e=null!=(u=d.get(r))?u:{count:0,lastVisit:""};e.count+=1,a>e.lastVisit&&(e.lastVisit=a),d.set(r,e)}}return s({favorites:[...d.entries()].filter(e=>{let[,a]=e;return a.count>=2}).sort((e,a)=>a[1].count-e[1].count||a[1].lastVisit.localeCompare(e[1].lastVisit)||e[0].localeCompare(a[0])).slice(0,5).map(e=>{let[a,r]=e;return{city:a,visits:r.count}}),basis:l,sampleSize:t.length},a)}function c(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),{scoped:t,basis:l}=n(e,r),c=(0,i.X0)(t),d=new Map;for(let e of c){let a=(0,i.Ju)([...e].sort((e,a)=>e.checkIn.localeCompare(a.checkIn))[0].checkIn);if(a)for(let r of o(e)){var u;let e="".concat(r,"::").concat(a),i=null!=(u=d.get(e))?u:{place:r,season:a,visits:0};i.visits+=1,d.set(e,i)}}return s({recurring:[...d.values()].filter(e=>e.visits>=2).sort((e,a)=>a.visits-e.visits||e.place.localeCompare(a.place)||e.season.localeCompare(a.season)),basis:l,sampleSize:t.length},a)}function d(e){let a=e.filter(e=>"other"!==e.travelerScope),r={},i=0;for(let e of a){var n;let a=(0,t.h)(e.cabin);a&&(i+=1,r[a]=(null!=(n=r[a])?n:0)+1)}return i<4?null:{counts:r,knownLegs:i,sampleLegs:a.length}}function u(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),{scoped:r}=n(e,a);return function(e){var a,r,n;let s={usualNights:null,bigTrips:null,bigTripShare:null},o=e.map(e=>({cluster:e,nights:function(e){let a=Math.min(...e.map(e=>Date.parse(e.checkIn))),r=Math.max(...e.map(e=>Date.parse(e.checkOut)));return Number.isFinite(a)&&Number.isFinite(r)?(0,i.Z)(r-a,864e5):null}(e)})).filter(e=>null!=e.nights);if(o.length<4)return s;let l=new Map;for(let{cluster:e}of o)for(let a of e){let e=(0,t.Xg)(null,a.country).country;e&&l.set(e,(null!=(r=l.get(e))?r:0)+1)}let c=null!=(n=null==(a=[...l.entries()].sort((e,a)=>a[1]-e[1]||e[0].localeCompare(a[0]))[0])?void 0:a[0])?n:null,d=o.map(e=>{let{cluster:a}=e;return null!=c&&a.some(e=>{let a=(0,t.Xg)(null,e.country).country;return null!=a&&a!==c})}),u=d.filter(Boolean).length,m=o.length-u>u,p=(0,i.JZ)(o.map(e=>e.nights));if(null==p)return s;let g=o.map((e,a)=>e.nights>=2*p&&e.nights>=5||m&&d[a]),h=g.filter(Boolean).length;return{usualNights:(0,i.JZ)(o.filter((e,a)=>!g[a]).map(e=>e.nights)),bigTrips:h,bigTripShare:(0,i.Z)(h,o.length)}}((0,i.X0)(r))}},7837:(e,a,r)=>{function i(e,a){return Number.isFinite(e)&&Number.isFinite(a)&&!(a<=0)?e/a:null}function t(e,a){return!Number.isInteger(e)||e<0||!Number.isFinite(a)||a<=0?null:e/a*365}function n(e){var a,r;if(0===e.length)return null;let i=[...e].sort((e,a)=>e-a),t=Math.floor(i.length/2);
1return i.length%2==1?i[t]:(a=i[t-1],r=i[t],Number.isFinite(a)&&Number.isFinite(r)?(a+r)/2:null)}function s(e){if(0===e.length)return null;let a=n(e);return null==a?null:{min:Math.min(...e),max:Math.max(...e),median:a,sampleSize:e.length}}function o(e){let a=new Date(e);return a.setUTCMonth(a.getUTCMonth()-24),a.getTime()}function l(e){if(0===e.length)return[];let a=new Map;for(let t of e){var r,i;let e=null!=(r=t.country)?r:"__unknown__",n=null!=(i=a.get(e))?i:[];n.push(t),a.set(e,n)}let t=[];for(let e of a.values()){let a=[...e].sort((e,a)=>e.checkIn.localeCompare(a.checkIn)),r=[],i=null;for(let e of a){let a=Date.parse(e.checkIn),n=Date.parse(e.checkOut);0===r.length||null==i||a-i<=864e5?r.push(e):(t.push(r),r=[e]),i=null==i?n:Math.max(i,n)}r.length>0&&t.push(r)}return t}function c(e){let a=new Map;for(let t of e){var r,i;let e="".concat(null!=(r=t.brand)?r:"","::").concat(t.checkIn,"::").concat(t.checkOut,"::").concat(null!=(i=t.totalAmount)?i:"");a.set(e,t)}return[...a.values()]}function d(e){let a=new Date(e).getUTCMonth();return Number.isNaN(a)?null:11===a||0===a||1===a?"winter":a>=2&&a<=4?"spring":a>=5&&a<=7?"summer":"fall"}function u(e,a){var r,u;let m=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),p=c(e).filter(e=>"other"!==e.travelerScope),g=o(m),h=p.filter(e=>{let a=Date.parse(e.checkIn);return Number.isFinite(a)&&a>=g}),y=h.length>=5?"trailing24mo":"allTime",f="trailing24mo"===y?h:p,b=f.filter(e=>"hotel"!==e.lodgingKind),v=f.length>0?i(b.length,f.length):null,_={};for(let e of f){if(!e.tier)continue;let a=e.tier;_[a]=(null!=(r=_[a])?r:0)+1}let w=f.filter(e=>!e.isAward&&!(null!=e.guests&&e.guests>6)),C=w.filter(e=>"hotel"!==e.lodgingKind&&null!=e.totalAmount).map(e=>i(e.totalAmount,e.nights)).filter(e=>null!=e),A=w.filter(e=>"hotel"===e.lodgingKind&&null!=e.totalAmount).map(e=>i(e.totalAmount,e.nights)).filter(e=>null!=e),k=w.filter(e=>null!=e.guests&&e.guests>0&&null!=e.totalAmount).map(e=>{var a,r,i;return a=e.totalAmount,r=e.nights,i=e.guests,!Number.isFinite(a)||a<0||!Number.isInteger(r)||r<=0||!Number.isInteger(i)||i<=0?null:a/r/i}).filter(e=>null!=e),P=l(f),S=P.map(e=>{var a,r;let t=Math.min(...e.map(e=>Date.parse(e.checkIn))),n=i(Math.max(...e.map(e=>Date.parse(e.checkOut)))-t,864e5);if(null==n)return null;let s=[...e].sort((e,a)=>e.checkIn.localeCompare(a.checkIn))[0];return{nights:n,label:null!=(r=null!=(a=s.city)?a:s.country)?r:null,start:s.checkIn}}).filter(e=>null!=e).sort((e,a)=>e.start.localeCompare(a.start)),T=n(S.map(e=>e.nights)),M=null;if(P.length>0){let e=P.map(e=>Math.min(...e.map(e=>Date.parse(e.checkIn)))),a=i(Math.max(...e)-Math.min(...e),864e5);M=null!=a?t(P.length,a):null}let G={};for(let e of P){let a=d([...e].sort((e,a)=>e.checkIn.localeCompare(a.checkIn))[0].checkIn);a&&(G[a]=(null!=(u=G[a])?u:0)+1)}let E=f.some(e=>null!=e.guests&&e.guests>6),D={...{rentalShare:v,tierHistogram:_,nightlyBandRentals:s(C),nightlyBandHotels:s(A),nightlyBandPerPerson:s(k),tripsPerYear:M,medianTripLength:T,tripShapes:S,seasonality:G,booksForOthers:E,basis:y,sampleSize:f.length}};for(let e of Object.keys(a))e in D&&(D[e]=a[e]);return D}r.d(a,{JZ:()=>n,Ju:()=>d,LA:()=>c,Rb:()=>t,X0:()=>l,Z:()=>i,computeTravelStyle:()=>u,cp:()=>o})},16320:(e,a,r)=>{r.d(a,{A8:()=>f,By:()=>l,GY:()=>g,O4:()=>y,T6:()=>o,TV:()=>p,Xg:()=>k,h:()=>v,hn:()=>h,k3:()=>P,xx:()=>u});var i=r(2380),t=r(19789);function n(e){return(null!=e?e:"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}function s(e){let a=n(e);return a?a.split(" "):[]}function o(e){let a=n(e);if(!a)return null;let r=i.ln.find(e=>n(e.name)===a);if(r)return r;let t=i.ln.find(e=>e.aliases.some(e=>n(e)===a));if(t)return t;if(a.length>=5){let a=s(e),r=i.ln.filter(e=>(function(e,a){let[r,i]=e.length<=a.length?[e,a]:[a,e];if(r.length<2)return!1;let t=new Set(i);return r.every(e=>t.has(e))})(a,s(e.name)));if(1===r.length)return r[0]}return null}function l(e,a){let r=o(e),i=p(a);if(!r)return{program_name:(null!=e?e:"").trim(),tier:i};let t=i?function(e,a){var r,i;if(!(null==(r=e.tiers)?void 0:r.length))return a;let t=a.toLowerCase(),n=e.tiers.find(e=>e.toLowerCase()===t),s=!n&&t.length>=3?e.tiers.filter(e=>{let a=e.toLowerCase();return a.includes(t)||t.includes(a)}):[],o=1===s.length?s[0]:void 0;return null!=(i=null!=n?n:o)?i:a}(r,i):i;return{program_name:r.name,tier:t}}let c=/\b(card|platinum|gold|sapphire|reserve|venture|centurion|aspire|surpass|freedom|ink|premier|privilege|rewards|delta|hilton|marriott|hyatt|united|
1southwest|aadvantage|skymiles)\b/;function d(e){return(null!=e?e:"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}function u(e,a){let r=d(e);if(!r)return null;let t=a?d(a):"",n=null,s=0;for(let e of i.L0){var o;if((null!=(o=e.kind)?o:"card")==="card"){if(t){let a=d("".concat(e.product," ").concat(e.displayName," ").concat(e.aliases.join(" ")));if(!t.split(" ").filter(e=>e.length>=3).some(e=>a.includes(e)))continue}for(let a of e.aliases){let i=d(a);if(!i)continue;let t=0;r.includes(i)?t=i.length:i.length>=8&&r.length>=8&&c.test(r)&&i.includes(r)&&(t=r.length),t>s&&(n=e,s=t)}}}return n}function m(e){if(null==e)return null;let a=e.trim();return a.length?a:null}function p(e){let a=m(e);return!a||/^(none|n\/a|-)$/i.test(a)?null:a}function g(e,a){let r=m(null!=e?e:null);if(!r)return!0;let i=new Date(r);if(Number.isNaN(i.getTime()))return!0;let t=a?new Date(a):new Date,n=Number.isNaN(t.getTime())?Date.now():t.getTime();return/^\d{4}-\d{2}-\d{2}$/.test(r)?i.getTime()+864e5>n:i.getTime()>=n}function h(e,a){var r,i;if("gmail"!==e.source||m(null!=(r=e.status_expiration)?r:null))return!1;let t=m(null!=(i=e.email_sent_at)?i:null);if(!t)return!1;let n=Date.parse(t);if(Number.isNaN(n))return!1;let s=a?new Date(a):new Date;return(Number.isNaN(s.getTime())?Date.now():s.getTime())-n>473472e5}function y(e){var a,r,t;let n=e.program_name.trim(),s=void 0!==e.program_code&&null!==e.program_code?e.program_code:function(e){let a=e.trim().toLowerCase();if(!a)return null;for(let e of i.ln)if(null!==e.code&&(e.name.toLowerCase()===a||e.aliases.some(e=>a.includes(e))))return e.code;return null}(n);return{program_type:e.program_type,program_name:n,program_code:s,membership_number:m(e.membership_number),tier:m(e.tier),status_expiration:m(e.status_expiration),confidence:null!=(a=e.confidence)?a:null,source:null!=(r=e.source)?r:"manual",review_state:null!=(t=e.review_state)?t:"confirmed"}}function f(e){let a=null==e?void 0:e.trim();return a?(0,t.mu)("air",a):null}let b=[[/\bpremium\b/,"premium"],[/\beconomy plus\b/,"premium"],[/\beconomy comfort\b/,"premium"],[/\bcomfort\b/,"premium"],[/\bmain cabin extra\b/,"premium"],[/\bmain cabin select\b/,"premium"],[/\bextra legroom\b/,"premium"],[/\beven more space\b/,"premium"],[/\bexit row\b/,"premium"],[/\bstretch\b/,"premium"],[/\bbusinessfirst\b/,"business"],[/\bbusiness\b/,"business"],[/\bdelta one\b/,"business"],[/\bpolaris\b/,"business"],[/\bmint\b/,"business"],[/\bclub world\b/,"business"],[/\bupper class\b/,"business"],[/\bflagship business\b/,"business"],[/\bfirst\b/,"first"],[/\bsuites\b/,"first"],[/\bbasic\b/,"economy"],[/\bmain\b/,"economy"],[/\beconomy\b/,"economy"],[/\bcoach\b/,"economy"],[/\bblue\b/,"economy"],[/\bsaver\b/,"economy"],[/\bwanna get away\b/,"economy"]];function v(e){if(!e)return null;let a=n(e.replace(/\([^)]*\)/g," "));if(!a)return null;for(let[e,r]of b)if(e.test(a))return r;return null}let _={us:"US",usa:"US","u s":"US","u s a":"US","united states":"US","united states of america":"US"};function w(e){if(null==e)return null;let a=e.trim();return 0===a.length||"null"===a.toLowerCase()?null:a}function C(e){return e.split("-").map(e=>0===e.length?e:e[0].toUpperCase()+e.slice(1).toLowerCase()).join("-")}function A(e){let a=e.replace(/[^a-zA-Z]/g,"");if(a.length<2)return e;let r=a===a.toUpperCase(),i=a===a.toLowerCase();return r||i?e.split(/\s+/).map(C).join(" "):e}function k(e,a){let r=w(e),i=w(a),t=i?_[n(i)]:void 0;return{city:r?A(r):null,country:null!=t?t:i?A(i):null}}function P(e){if(!e)return null;let a=e.split(/[,;/|]/).map(e=>e.trim()).find(e=>e.length>0);return null!=a?a:null}},19789:(e,a,r)=>{r.d(a,{mu:()=>n,uL:()=>s});var i=r(2380);let t={air:"airline",hotel:"hotel",car:"car",rail:"rail",cruise:"cruise"};function n(e,a){var r,n;let s=null!=(r=null==a?void 0:a.toLowerCase().trim())?r:"";if(s.length<2)return null;let o=t[e];for(let e of i.ln)if((!o||e.type===o)&&[e.name,...null!=(n=e.aliases)?n:[]].map(e=>e.toLowerCase()).some(e=>s.includes(e)||e.includes(s)))return e.name.toLowerCase();return null}function s(e){let a=new Map;for(let r of e){let e="".concat(r.program_type,"|").concat(r.provider),i=a.get(e);i?(i.bookings+=1,r.last_seen_at>i.last_seen_at&&(i.last_seen_at=r.last_seen_at)):a.set(e,{program_type:r.program_type,provider:r.provider,bookings:1,last_seen_at:r.last_seen_at})}return Array.from(a.values())}},37352:(e,a,r)=>{r.d(a,{OC:()=>t,dR:()=>n,fn:()=>s,nP:()=>
1c,yI:()=>u});let i=["one","two","three","four","five","six","seven","eight","nine"];function t(e){return Number.isInteger(e)&&e>=1&&e<=9?i[e-1]:String(e)}function n(e,a){let r=Math.max(0,Math.floor(e)),i=Math.max(0,Math.floor(a));return"".concat(r," ").concat(1===r?"travel card":"travel cards"," with about $").concat(i.toLocaleString("en-US")," in annual perks (estimate, if you enroll).")}function s(e){let a=Math.round(e);return 0===a||1===a?"booked about a day out":"booked about ".concat(a," days out")}let o={air:{singular:"trip",plural:"trips"},hotel:{singular:"stay",plural:"stays"},car:{singular:"rental",plural:"rentals"},rail:{singular:"trip",plural:"trips"},cruise:{singular:"trip",plural:"trips"}},l={air:"airline",hotel:"hotel pick",car:"rental pick",rail:"rail pick",cruise:"cruise pick"};function c(e,a){let r=1===e.count?o[a].singular:o[a].plural,i=l[a],t="".concat(e.displayProvider," is your ").concat(i),n=["".concat(e.count," ").concat(r)];return e.windowed?n.push("last 2 years"):n.push("all time"),"emails"===e.evidence&&n.push("from booking emails"),{statement:t,meta:n.join(" \xb7 ")}}let d=["air","hotel","car","rail","cruise"];function u(e){if(!e)return null;let a=null;for(let r of d){let i=e[r];i&&!(i.count<2)&&(!a||i.count>a[1].count)&&(a=[r,i])}return a?function(e,a){let r=1===e.count?o[a].singular:o[a].plural,i=e.windowed?" in the last 2 years":", all time",t="emails"===e.evidence?", from booking emails":"";return"you book ".concat(e.displayProvider," most (").concat(e.count," ").concat(r).concat(i).concat(t,")")}(a[1],a[0]):null}},40317:(e,a,r)=>{r.d(a,{cB:()=>s,nR:()=>i});let i={amex_platinum:[{category:"hotel_booking_program",name:"Fine Hotels + Resorts & The Hotel Collection",description:"FHR perks on eligible bookings via Amex Travel: daily breakfast for 2, guaranteed 4 p.m. late checkout, noon check-in (subject to availability), room upgrade (subject to availability), complimentary Wi-Fi, and a $100 property amenity credit. The Hotel Collection (2+ nights) adds a $100 property credit and room upgrade subject to availability.",conditions:"Must book through Amex Travel. FHR is the premium tier; The Hotel Collection requires a 2-night minimum."},{category:"statement_credit",name:"Prepaid Hotel Credit (FHR / Hotel Collection)",description:"Up to $600 in annual statement credits ($300 semi-annually) on prepaid Fine Hotels + Resorts or The Hotel Collection stays booked through Amex Travel.",annual_value_usd:600,conditions:"Split $300 Jan-Jun and $300 Jul-Dec; prepaid bookings only."},{category:"statement_credit",name:"Resy Dining Credit",description:"Up to $400 per year (up to $100 per calendar quarter) in statement credits at U.S. Resy restaurants and eligible Resy purchases.",annual_value_usd:400,conditions:"Enrollment required; quarterly cap."},{category:"statement_credit",name:"Uber Cash",description:"Up to $200 in annual Uber Cash for U.S. rides and Uber Eats orders.",annual_value_usd:200,conditions:"Must add the Platinum card to Uber account; monthly allotment."},{category:"statement_credit",name:"Uber One Membership Credit",description:"Up to $120 per calendar year in statement credits ($10/month) toward an auto-renewing Uber One membership.",annual_value_usd:120,conditions:"New in 2025 refresh; auto-renewing Uber One membership required."},{category:"statement_credit",name:"Airline Fee Credit",description:"Up to $200 per calendar year in statement credits for incidental fees (checked bags, in-flight food/drink) with one selected qualifying airline.",annual_value_usd:200,conditions:"Must select one qualifying airline; incidental fees only (not airfare)."},{category:"airport_security_credit",name:"CLEAR Plus Credit",description:"Up to $209 per calendar year in statement credits toward a CLEAR Plus membership.",annual_value_usd:209},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck Credit",description:"Up to $120 statement credit for Global Entry (every 4 years) or up to $85 for TSA PreCheck (every 4.5 years).",annual_value_usd:120},{category:"lounge_access",name:"American Express Global Lounge Collection",description:"Unlimited Amex Centurion Lounge access, Priority Pass Select (cardh
1older + 2 guests, enrollment required), 10 Delta Sky Club visits per year when flying Delta same-day (unlimited Delta Sky Club unlocks after $75,000 annual spend), plus Escape Lounges, Plaza Premium, and select Lufthansa/Virgin clubhouses. Note upcoming policy changes: from Jul 8, 2026 Centurion guest allowance drops to 1 guest (same flight) with a 5-hour layover-access window; from Oct 1, 2026 additional cardmembers lose complimentary Priority Pass.",conditions:"Priority Pass Select requires enrollment. Delta Sky Club capped at 10 visits/year unless $75k spend unlocks unlimited."},{category:"statement_credit",name:"Digital Entertainment Credit",description:"Monthly statement credits for select digital entertainment subscriptions.",conditions:"Enrollment required; specific eligible services. Verify the current monthly amount on the Amex benefits page."},{category:"statement_credit",name:"Walmart+ Membership Credit",description:"Up to $155 per year (covers monthly Walmart+ membership cost).",annual_value_usd:155},{category:"statement_credit",name:"Lululemon Credit",description:"Up to $300 per year in statement credits at lululemon (new in 2025 refresh).",annual_value_usd:300,conditions:"Enrollment required."},{category:"statement_credit",name:"Equinox Credit",description:"Up to $300 per year in statement credits toward Equinox or Equinox+ membership.",annual_value_usd:300,conditions:"Enrollment required."},{category:"statement_credit",name:"Oura Ring Credit",description:"Up to $200 per calendar year in statement credits on eligible Oura Ring hardware purchases made at the U.S. website ouraring.com (added in the 2025/2026 refresh).",annual_value_usd:200,conditions:"Enrollment required; excludes Oura membership, accessories, gift cards, and third-party/intermediary purchases."},{category:"rental_insurance",name:"Car Rental Loss & Damage Insurance",description:"Secondary car rental loss and damage coverage when you charge the rental to the card and decline the rental company's CDW.",conditions:"Secondary coverage."},{category:"travel_insurance",name:"Trip Cancellation/Interruption & Cell Phone Protection",description:"Trip cancellation/interruption insurance, baggage insurance, and cell phone protection when eligible purchases are charged to the card."}],amex_business_platinum:[{category:"hotel_booking_program",name:"Fine Hotels + Resorts & The Hotel Collection",description:"FHR perks on eligible Amex Travel bookings: daily breakfast for 2, guaranteed 4 p.m. late checkout, noon check-in, room upgrade (subject to availability), $100 property amenity credit, complimentary Wi-Fi. The Hotel Collection adds $100 property credit + room upgrade on 2+ night stays.",conditions:"Must book through Amex Travel."},{category:"statement_credit",name:"Prepaid Hotel Credit (FHR / Hotel Collection)",description:"Up to $600 per year in statement credits on prepaid Fine Hotels + Resorts / The Hotel Collection stays booked through Amex Travel (new in 2025 refresh).",annual_value_usd:600,conditions:"Enrollment required."},{category:"statement_credit",name:"Hilton Statement Credit",description:"Up to $200 per calendar year in statement credits for eligible purchases at participating Hilton properties.",annual_value_usd:200,conditions:"Enrollment required."},{category:"statement_credit",name:"Airline Fee Credit",description:"Up to $200 per calendar year in statement credits for incidental fees with one selected qualifying airline.",annual_value_usd:200,conditions:"Select one qualifying airline; incidentals only."},{category:"airport_security_credit",name:"CLEAR Plus Credit",description:"Up to $209 per calendar year toward a CLEAR Plus membership.",annual_value_usd:209,conditions:"Enrollment required."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck Credit",description:"Up to $120 statement credit for Global Entry (every 4 years) or TSA PreCheck (every 4.5 years).",annual_value_usd:120},{category:"lounge_access",name:"American Express Global Lounge Collection",description:"Centurion Lounge access, Priority Pass Select (1,550+ lounges, enrollment required), 10 Delta Sky Club visits per year (unlimited Delta Sky Club at $75k annual spend), plus Escape, Plaza Premium, and Lufthansa lounges.",conditions:"Priority Pass requires enrollment. Delta Sky Club 10 visits/year unless $75k spend unlocks unlimited."},{category:"statement_credit",name:"Dell Technologies Credit",description:"Up to $1,150 per year: up to $150 in statement credits on U.S. Dell purchases plus an additional $1,000 after spending $5,000+ on Dell in a calendar year.",annual_value_usd:1150,conditions:"Enrollment required."},{category:"statement_credit",name:"Adobe Credit",description:"Up to $250 per year in statement credits after spending $600+ on eligible U.S. Adobe purchases.",annual_value_usd:250,conditions:"Enrollment required."},{category:"statement_credit",name:"Indeed Credit",description:"Up to $360 per year in statement credits on eligible Indeed purchases.",annual_value_usd:360,conditions:"Enrollment required."},{category:"statement_credit",name:"Wireless Service Credit",description:"Up to $120 per year in statement credits on eligible U.S. wireless phone service purchases.",annual_value_usd:120,conditions:"Enrollment required."},{category:"rental_insurance",name:"Car Rental Loss & Damage Insurance",description:"Secondary car rental loss and damage coverage when the rental is charged to the card and the company's CDW is declined.",conditions:"Secondary coverage."},{category:"travel_insurance",name:"Baggage & Travel Accident Insurance",description:"Baggage insurance and travel accident coverage on eligible travel charged to the card."}],amex_gold:[{category:"hotel_booking_program",name:"The Hotel Collection",description:"Booking program perks at 1,300+ upscale hotels via Amex Travel: room upgrade upon arrival (subject to availability) and a $100 property credit toward eligible charges (dining, spa, etc.) on 2+ night stays. The Gold Card does 
1NOT include Fine Hotels + Resorts (that is Platinum-only).",conditions:"Must book The Hotel Collection through AmexTravel.com / Amex Travel app; 2-night minimum for the $100 credit."},{category:"statement_credit",name:"Resy Dining Credit",description:"Up to $100 per calendar year in statement credits ($50 Jan-Jun, $50 Jul-Dec) at 10,000+ qualifying U.S. Resy restaurants.",annual_value_usd:100,conditions:"Enrollment required; semi-annual cap."},{category:"statement_credit",name:"Dining Credit (Grubhub, Five Guys, Cheesecake Factory, etc.)",description:"Up to $120 per year ($10/month) in statement credits at participating partners: Grubhub (including Seamless), Buffalo Wild Wings, Five Guys, The Cheesecake Factory, and Wonder.",annual_value_usd:120,conditions:"Enrollment required; monthly allotment."},{category:"statement_credit",name:"Dunkin' Credit",description:"Up to $84 per year (up to $7/month) in statement credits at U.S. Dunkin' locations.",annual_value_usd:84,conditions:"Enrollment required; monthly allotment."},{category:"statement_credit",name:"Uber Cash",description:"Up to $120 per year ($10/month in Uber Cash) for U.S. Uber rides and Uber Eats orders.",annual_value_usd:120,conditions:"Must add the Gold Card to the Uber account; monthly allotment."},{category:"rental_insurance",name:"Car Rental Loss & Damage Insurance",description:"Secondary car rental loss and damage coverage when the rental is charged to the card and the company's CDW is declined.",conditions:"Secondary coverage."},{category:"travel_insurance",name:"Baggage Insurance & Trip Protections",description:"Baggage insurance plan and purchase protection on eligible purchases charged to the card."}],chase_sapphire_reserve:[{category:"statement_credit",name:"Annual Travel Credit",description:"$300 annual travel credit, automatically applied to the first $300 in travel purchases each cardmember year.",annual_value_usd:300,conditions:"Auto-applied to travel purchases."},{category:"hotel_booking_program",name:"The Edit by Chase Travel",description:"Luxury hotel booking program: complimentary daily breakfast for 2, a $100 on-property credit, room upgrade when available, early check-in / late checkout when available, and guaranteed best available rate on stays booked through The Edit.",conditions:"Book through The Edit / Chase Travel; perks apply per stay."},{category:"statement_credit",name:"The Edit Hotel Credits",description:"Up to $500 per year in statement credits for prepaid bookings through The Edit by Chase Travel: two $250 credits. For 2026 both $250 credits can be redeemed anytime during the year (previously one per half-year).",annual_value_usd:500,conditions:"2-night minimum per booking; prepaid Edit bookings only."},{category:"statement_credit",name:"Select Chase Travel Hotel Credit (2026 only)",description:"Up to $250 one-time statement credit for prepaid Chase Travel bookings at IHG, Montage, Pendry, Omni, Virgin Hotels, Minor Hotels, and Pan Pacific. Available through 12/31/2026 only.",annual_value_usd:250,conditions:"2-night minimum; prepaid Chase Travel bookings; limited-time 2026 benefit; this spend does not earn Ultimate Rewards points."},{category:"statement_credit",name:"Sapphire Reserve Exclusive Tables Dining Credit",description:"Up to $300 per year ($150 semi-annually) in statement credits for dining via Sapphire Reserve Exclusive Tables (OpenTable).",annual_value_usd:300,conditions:"Semi-annual cap; eligible dining bookings."},{category:"statement_credit",name:"StubHub / viagogo Credit",description:"Up to $300 per year ($150 semi-annually) in statement credits for StubHub and viagogo purchases (through 12/31/2027).",annual_value_usd:300,conditions:"Semi-annual cap."},{category:"statement_credit",name:"Lyft Credit",description:"Up to $120 per year ($10/month) in Lyft statement credits (through 9/30/2027), plus boosted Lyft points earning.",annual_value_usd:120,conditions:"Add card to Lyft; monthly allotment."},{category:"statement_credit",name:"Peloton Credit",description:"Up to $120 per year ($10/month) in Peloton membership statement credits (through 12/31/2027).",annual_value_usd:120,conditions:"Monthly allotment."},{category:"statement_credit",name:"DoorDash DashPass & Credits",description:"Complimentary DashPass membership plus monthly DoorDash promo credits (approx. $120 annual value).",annual_value_usd:120,conditions:"Activation required; DashPass must be added."},{category:"lounge_access",name:"Priority Pass Select & Chase Sapphire Lounges",description:"Priority Pass Select membership (cardholder + 2 guests) and access to the growing Chase Sapphire Lounge by The Club network. Authorized users ($195 each
1) get full lounge access.",conditions:"Priority Pass enrollment required."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS Credit",description:"Up to $120 statement credit toward Global Entry, TSA PreCheck, or NEXUS, once every 4 years.",annual_value_usd:120},{category:"statement_credit",name:"Apple TV+ & Apple Music",description:"Complimentary Apple TV+ and Apple Music subscriptions (activation required by 6/22/2027).",conditions:"Activation required."},{category:"rental_insurance",name:"Primary Auto Rental CDW",description:"Primary auto rental collision damage waiver, up to $75,000, when you charge the rental to the card and decline the company's CDW.",conditions:"Primary coverage."},{category:"travel_insurance",name:"Trip Cancellation/Interruption & Delay Insurance",description:"Trip cancellation/interruption up to $10,000 per traveler; trip delay reimbursement of $500 after a 6-hour delay; plus lost luggage and emergency evacuation coverage."}],chase_sapphire_preferred:[{category:"statement_credit",name:"Hotel Credit",description:"Up to $100 annual statement credit for prepaid hotels booked through Chase Travel (increased from $50 in the June 15, 2026 refresh).",annual_value_usd:100,conditions:"Prepaid Chase Travel hotel bookings; effective June 15, 2026."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS Credit",description:"Up to $120 statement credit toward Global Entry, TSA PreCheck, or NEXUS, once every four years (new in the June 15, 2026 refresh).",annual_value_usd:120,conditions:"Once every 4 years; effective June 15, 2026."},{category:"rental_insurance",name:"Auto Rental Collision Damage Waiver",description:"Primary auto rental collision damage waiver when you charge the rental to the card and decline the rental company's coverage.",conditions:"Primary coverage for rentals in the cardholder's name."},{category:"travel_insurance",name:"Trip Cancellation/Interruption, Delay & Emergency Evacuation",description:"Trip cancellation/interruption insurance, trip delay reimbursement, baggage delay, lost luggage, and (added in the 2026 refresh) Emergency Evacuation and Transportation coverage.",conditions:"Eligible travel charged to the card."},{category:"statement_credit",name:"Apple TV+ Subscription",description:"Complimentary one-year Apple TV+ subscription when activated by Dec. 31, 2026.",conditions:"Activation required by 12/31/2026."},{category:"other",name:"DoorDash DashPass",description:"Complimentary DashPass membership for a period after activation, plus periodic DoorDash promo credits.",conditions:"Activation required."}],capital_one_venture_x:[{category:"statement_credit",name:"$300 annual Capital One Travel credit",description:"Up to $300 per year in statement credits for bookings made through the Capital One Travel portal.",annual_value_usd:300,conditions:"Must book through Capital One Travel."},{category:"other",name:"10,000 anniversary bonus miles",description:"10,000 bonus miles credited each account anniversary (worth ~$100 toward travel).",annual_value_usd:100,conditions:"Credited on each account anniversary."},{category:"lounge_access",name:"Priority Pass + Capital One Lounges + Plaza Premium (Partner) Lounges",description:"Complimentary access to Capital One Lounges (Dallas, Denver, Washington DC, Las Vegas, NYC) and 1,300+ Priority Pass lounges worldwide for the primary cardholder.",conditions:"Requires Priority Pass enrollment. Beginning Feb 1, 2026, bringing guests into Capital One Lounges/Landings for free requires $75,000 in annual card spend; otherwise guests are paid. Note: $75K threshold does NOT cover Priority Pass guests (always $35/person). Additional cardholders also lose free access Feb 1, 2026 ($125/AU fee)."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck application fee credit",description:"Up to $120 statement credit for Global Entry or TSA PreCheck application fee.",annual_value_usd:120,conditions:"Once every 4 years."},{category:"hotel_booking_program",name:"Capital One Premier Collection",description:"Luxury-hotel booking program: up to $100 experience credit, daily breakfast for two, complimentary Wi-Fi, and (when available) room upgrades, early check-in, late checkout. Earns 10X miles when booked through Capital One Travel. Exclusive to Venture X / Venture X Business.",annual_value_usd:100,conditions:"Must book an eligible Premier Collection property through Capital One Travel."}
1,{category:"hotel_booking_program",name:"Capital One Lifestyle Collection",description:"Boutique/upscale hotel booking program: up to $50 experience credit, complimentary Wi-Fi, and (when available) room upgrades, early check-in, late checkout. Earns 10X miles with Venture X when booked through Capital One Travel.",annual_value_usd:50,conditions:"Must book an eligible Lifestyle Collection property through Capital One Travel."},{category:"rental_insurance",name:"Auto Rental Collision Damage Waiver",description:"Rental car damage/theft coverage when the rental is paid with the card and the offered CDW declined."},{category:"travel_insurance",name:"Trip cancellation/interruption, trip delay, and lost luggage protection",description:"Travel protection suite including trip cancellation/interruption, trip delay reimbursement, and lost luggage coverage."}],capital_one_venture:[{category:"airport_security_credit",name:"Global Entry / TSA PreCheck application fee credit",description:"Up to $120 statement credit for Global Entry or TSA PreCheck application fee.",annual_value_usd:120,conditions:"Once every 4 years."},{category:"hotel_booking_program",name:"Capital One Lifestyle Collection",description:"Boutique/upscale hotel booking program: up to $50 experience credit plus complimentary Wi-Fi and (when available) room upgrades, early check-in/late checkout. Earns 5X miles when booked through Capital One Travel with the Venture card.",annual_value_usd:50,conditions:"Must book an eligible Lifestyle Collection property through Capital One Travel. Premier Collection is NOT available on the Venture Rewards card."},{category:"rental_insurance",name:"Auto Rental Collision Damage Waiver (MasterRental)",description:"Rental car physical damage and theft coverage when the eligible rental is paid with the card."},{category:"travel_insurance",name:"Trip cancellation/interruption, lost luggage, 24/7 travel assistance",description:"Travel protection suite: trip cancellation/interruption insurance, lost luggage insurance, and 24-hour travel assistance services."}],citi_strata_premier:[{category:"statement_credit",name:"$100 annual hotel savings benefit",description:"Once per calendar year, $100 off a single hotel stay of $500 or more (excluding taxes and fees) when booked through Citi Travel (cititravel.com). Applied at booking/after stay.",annual_value_usd:100,conditions:"Single hotel stay of $500+ booked through Citi Travel; once per calendar year."},{category:"rental_insurance",name:"MasterRental Coverage (rental car)",description:"Mastercard rental car collision/loss-damage coverage (secondary) when the eligible rental is paid with the card."},{category:"travel_insurance",name:"Trip cancellation/interruption, trip delay, and lost/damaged luggage protection",description:"Travel protection suite: common-carrier trip cancellation & interruption protection (up to $5,000/traveler), trip delay protection (12-hour minimum), and lost or damaged luggage coverage."}],bilt_mastercard:[{category:"rental_insurance",name:"Auto rental collision damage waiver (World Elite Mastercard)",description:"Rental car coverage for physical damage and theft when the eligible rental is paid with the card and the offered CDW declined."},{category:"travel_insurance",name:"Trip delay reimbursement",description:"Up to $200 per covered traveler (max $1,800/year) when a trip is delayed 6+ hours or requires an overnight stay.",annual_value_usd:200,conditions:"Trip delayed 6+ hours or overnight; trip charged to the card."},{category:"travel_insurance",name:"Trip cancellation & interruption insurance",description:"Reimburses up to $5,000 in non-refundable passenger fares for covered trip cancellation or interruption.",annual_value_usd:5e3,conditions:"Trip charged to the card; covered reasons only."},{category:"other",name:"Cell phone protection",description:"Up to $800 in protection against covered damage or theft of a phone ($25 deductible) when the monthly cell phone bill is paid with the card.",annual_value_usd:800,conditions:"Must pay monthly cell phone bill with the card; $25 deductible per claim."}],hilton_aspire:[{category:"free_night_cert",name:"Annual Free Night Reward",description:"One free night certificate each year upon card renewal (and on acquisition). No published Hilton point cap; redeemable at nearly any Hilton property, frequently valued up to ~250,000 Hilton Honors points at top luxury properties.",conditions:"Issued on card renewal; no hard point cap stated by Hilton (standard-room award nights at participating properties)."},{category:"free_night_cert",name:"Second Free Night Reward (spend threshold)",description:"An additional free night certificate after spending $30,000 in eligible purchases in a calendar year.",conditions:"Requires $30,000 in eligible annual purchases."},{category:"free_night_cert",name:"Third Free Night Reward (spend threshold)",description:"A third free night certificate after spending an additional $30,000 ($60,000 total) in eligible purchases in a calendar year.",conditions:"Requires $60,000 total in eligible annual purchases."},{category:"statement_credit",name:"Hilton Resort credit",description:"Up to $400 per year in statement credits for eligible purchases at participating Hilton Resorts, split as up to $200 semiannually (Jan-Jun and Jul-Dec).",annual_value_usd:400,conditions:"Eligible purchases at participating Hilton Resorts; $200 max per half-year (does not roll over)."},{category:"statement_credit",name:"Airline flight credit",description:"Up to $200 per year in statement credits ($50 per quarter) on flights booked directly with airlines or through Amex Travel.",annual_value_usd:200,conditions:"$50 per 
1calendar quarter; flights booked direct with airline or via Amex Travel."},{category:"statement_credit",name:"CLEAR Plus credit",description:"Up to $209 per year in statement credits to cover a CLEAR Plus membership.",annual_value_usd:209,conditions:"Applied to CLEAR Plus membership charged to the card."}],hilton_surpass:[{category:"statement_credit",name:"Hilton statement credit ($200/yr)",description:"Up to $200 in statement credits annually, structured as up to $50 each quarter for purchases made directly with a property in the Hilton portfolio. Credits do not roll over between quarters.",annual_value_usd:200,conditions:"$50 per quarter cap; eligible Hilton portfolio purchases only."},{category:"free_night_cert",name:"Free Night Reward (spend-earned)",description:"Earn one Free Night Reward after spending $15,000 in eligible purchases on the card in a calendar year. The reward is uncapped (no points ceiling) and can be used at any participating Hilton property, including luxury hotels worth thousands per night.",conditions:"Requires $15,000 in eligible calendar-year spend."},{category:"rental_insurance",name:"Car rental loss & damage insurance (secondary)",description:"Secondary car rental loss and damage insurance when you charge the rental to the card and decline the rental company's collision coverage."},{category:"travel_insurance",name:"Baggage insurance & Global Assist Hotline",description:"Baggage insurance for lost or stolen luggage, plus access to the American Express Global Assist Hotline for 24/7 emergency assistance when traveling. No foreign transaction fees."}],hilton_nofee:[{category:"other",name:"Fifth night free on award stays",description:"Via complimentary Silver status, get the fifth night free when booking a standard-room award stay paid 100% in points. This is an elite-only (Silver and above) Hilton Honors benefit, conferred by the card's Silver tier."},{category:"travel_insurance",name:"Global Assist Hotline",description:"Access to the American Express Global Assist Hotline for 24/7 emergency assistance (medical/legal referrals, emergency cash wires, missing luggage assistance) when traveling more than 100 miles from home; cardmember pays third-party service costs. No foreign transaction fees."}],hilton_business:[{category:"statement_credit",name:"Hilton statement credit ($240/yr)",description:"Up to $240 back each year on eligible Hilton purchases, structured as up to $60 in statement credits per quarter for purchases made directly with a property in the Hilton portfolio. Credits do not roll over between quarters.",annual_value_usd:240,conditions:"$60 per quarter cap; eligible Hilton portfolio purchases only."},{category:"rental_insurance",name:"Car rental loss & damage insurance",description:"Rental car loss and damage insurance retained after the refresh."},{category:"travel_insurance",name:"Baggage insurance & purchase protection",description:"Baggage insurance, purchase protection, and other Amex coverages retained after the refresh. No foreign transaction fees."}],marriott_brilliant:[{category:"elite_night_credits",name:"25 Elite Night Credits per year",description:"Receive 25 Elite Night Credits each calendar year toward the next level of Marriott Bonvoy Elite status."},{category:"free_night_cert",name:"Annual Free Night Award (85,000-point cap)",description:"One Free Night Award every year after the card renewal month, usable for one night at a redemption level at or under 85,000 Marriott Bonvoy points at participating hotels.",conditions:"Point cap of 85,000; available after card renewal month."},{category:"statement_credit",name:"Dining statement credit ($300/yr)",description:"Up to $300 in statement credits annually (up to $25 per month) for eligible purchases at restaurants worldwide.",annual_value_usd:300,conditions:"$25 per month cap; restaurant purchases worldwide."},{category:"statement_credit",name:"Ritz-Carlton / St. Regis property credit ($100)",description:"Up to a $100 property credit for qualifying charges when booking a two-night minimum stay directly at The Ritz-Carlton or St. Regis properties.",annual_value_usd:100,conditions:"Two-night minimum, booked directly, at Ritz-Carlton or St. Regis only."},{category:"lounge_access",name:"Priority Pass Select membership",description:"Complimentary Pri
1ority Pass Select membership with unlimited visits to 1,200+ airport lounges in 130+ countries (enrollment required)."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck credit",description:"Statement credit for Global Entry ($120, every 4 years) or TSA PreCheck (up to $85, every 4.5 years) application fee.",annual_value_usd:120,conditions:"One credit per renewal cycle (every 4 / 4.5 years)."},{category:"other",name:"Brilliant Earned Choice Award",description:"Up to one Brilliant Earned Choice Award annually after spending $60,000 on eligible purchases in a calendar year (choice of benefits such as additional elite nights, suite night awards, a free night certificate, or a 50,000-point bonus added June 2025).",conditions:"Requires $60,000 in eligible calendar-year spend."},{category:"travel_insurance",name:"Trip cancellation/interruption insurance",description:"Trip cancellation and interruption insurance coverage. No foreign transaction fees."}],marriott_bevy:[{category:"elite_night_credits",name:"15 Elite Night Credits per year",description:"15 Elite Night Credits annually toward the next Marriott Bonvoy Elite status tier (e.g., reduces nights needed for Platinum from 50 to 35)."},{category:"free_night_cert",name:"Free Night Award (50,000-point cap, spend-earned)",description:"Earn one Free Night Award after spending $15,000 on eligible purchases in a calendar year, usable for one night at a redemption level at or under 50,000 Marriott Bonvoy points (can top up with up to 25,000 additional points for stays up to 75,000 points).",conditions:"Requires $15,000 in eligible calendar-year spend; point cap of 50,000."},{category:"other",name:"1,000 bonus points per paid stay",description:"1,000 Marriott Bonvoy bonus points per paid eligible stay."},{category:"rental_insurance",name:"Car rental loss & damage insurance",description:"Car rental loss and damage insurance (secondary)."},{category:"travel_insurance",name:"Baggage insurance, purchase protection & Global Assist",description:"Baggage insurance for covered loss or damage, purchase protection against damage or theft, and the Global Assist Hotline for emergency assistance. No foreign transaction fees."}],marriott_business:[{category:"free_night_cert",name:"Annual Free Night Award (up to 35,000 points)",description:"One Free Night Award every year after the card renewal month, valid for a one-night stay at a property with a redemption level up to 35,000 points. Can be topped off with up to 25,000 additional points to reach properties up to 60,000 points (top-off raised to 25K effective March 12, 2026).",annual_value_usd:250,conditions:"Issued each year after card renewal month; up to 35,000-point redemption cap (extendable to 60,000 with up to 25,000 points)."},{category:"free_night_cert",name:"Second Free Night Award via $60K spend (up to 35,000 points)",description:"An additional Free Night Award (up to 35,000 points) after spending $60,000 in purchases on the card in a calendar year.",annual_value_usd:250,conditions:"Requires $60,000 in purchases in a calendar year."},{category:"elite_night_credits",name:"15 Elite Night Credits per year",description:"15 Elite Night Credits each calendar year toward the next level of Marriott Bonvoy Elite status.",conditions:"Automatic each calendar year."},{category:"rental_insurance",name:"Car rental loss and damage insurance",description:"Car rental loss and damage insurance when renting an eligible vehicle and charging it to the card.",conditions:"Secondary coverage; terms apply."},{category:"travel_insurance",name:"Baggage insurance",description:"Baggage insurance coverage for lost, damaged, or stolen baggage when the travel fare is purchased with the card.",conditions:"Terms apply."},{category:"statement_credit",name:"Free premium in-room internet",description:"Complimentary premium internet access at participating Marriott Bonvoy hotels (in addition to the standard member benefit)."}],marriott_boundless:[{category:"free_night_cert",name:"Annual Free Night Award (up to 35,000 points)",description:"One Free Night Award every year after the account anniversary, valid for a one-night stay at a property with a redemption level up to 35,000 points (topping off with up to 25,000 points to reach up to 60,000-point properties is allowed).",annual_value_usd:250,conditions:"Awarded each anniversary after paying the renewal fee; up to 35,000-point cap."},{category:"elite_night_credits",name:"15 Elite Night Credits + 1 per $5,000 spent",description:"15 Elite Night Credits annually toward the next status tier, plus 1 additional Elite Night Credit for every $5,000 spent on the card."},{category:"statement_credit",name:"Up to $100 airline statement credit (2026 only)",description:"Limited-time 2026-only benefit: up to $100 in statement credits across two half-year windows — spend $250+ directly with an airline Jan 1-Jun 30, 2026 to earn a $50 credit, and again $250+ Jul 1-Dec 31, 2026 to earn another $50. Must be booked directly with the airline (not OTAs). Existing cardholders (account opened before Jan 7, 2026) must complete a one-time activation; new applicants are auto-enrolled and can receive the benefit on accounts opened through 6/30/2027.",annual_value_usd:100,conditions:"$250 direct airline spend in each 2026 half-year window; credit is 2026-only; existing pre-1/7/2026 cardholders must activate; new-applicant enrollment window runs through 6/30/2027."},{category:"rental_insurance",name:"Auto Rental Collision Damage Waiver",description:"Auto rental collision damage waiver, primary coverage outside the U.S. and secondary within the U.S.",conditions:"Decline the rental company's CDW and charge the rental to the card."},{category:"travel_insurance",name:"Trip Delay Reimbursement",description:"Trip delay reimbursement up to $500 per ticket for delays of more than 12 hours or requiring an overnight stay.",annual_value_usd:500},{category:"travel_insurance",name:"Lost Luggage & Baggage Delay Insurance",description:"Lost luggage reimbursement up to $3,000 per trip and baggage delay insurance up to $100/day for up to 5 days."}],marriott_bountiful:[{category:"free_night_cert",name:"Free Night Award via $15K spend (up to 50,000 points)",description:"Free Night Award after $15,000 in purchases each calendar year, valid for a one-night stay in a standard guest room with a redemption level up to 50,000 points. Can be combined with up to 25,000 additional points to reach properties up to 75,000 points (top-off raised to 25K effective March 12, 2026).",annual_value_usd:350,conditions:"Requires $15,000 in purchases in a calendar year; up to 50,000-point cap (extendable +25,000 points to 75,000)."},{category:"elite_night_credits",name:"15 Elite Night Credits per year",description:"15 Elite Night Credits every calendar year toward the next level of Marriott Bonvoy Elite status."},{category:"rental_insurance",name:"Auto Rental Collision Damage Waiver",description:"Auto rental coverage with collision damage reimbursement when the rental is charged to the card and the rental company's CDW is declined."},{category:"travel_insurance",name:"Trip Delay Reimbursement",description:"Trip delay reimbursement up to $500 per 
1covered traveler for delays exceeding 12 hours.",annual_value_usd:500},{category:"travel_insurance",name:"Lost Luggage & Baggage Delay Insurance",description:"Lost luggage reimbursement up to $3,000 per traveler and baggage delay insurance up to $100/day for up to 5 days."},{category:"travel_insurance",name:"Travel Accident Insurance",description:"Travel accident insurance with up to $500,000 in accidental death and dismemberment coverage when transportation is paid with the card."}],world_of_hyatt:[{category:"free_night_cert",name:"Anniversary Free Night Award (Category 1-4)",description:"One free night each year after the cardmember anniversary at any Category 1-4 Hyatt hotel or resort.",annual_value_usd:150,conditions:"Category 1-4 properties only."},{category:"free_night_cert",name:"Second Free Night Award via $15K spend (Category 1-4)",description:"An additional Category 1-4 Free Night Award after spending $15,000 in purchases in a calendar year.",annual_value_usd:150,conditions:"Requires $15,000 in purchases in a calendar year; Category 1-4 only."},{category:"elite_night_credits",name:"5 tier-qualifying nights + 2 per $5,000 spent",description:"5 tier-qualifying night credits toward the next status tier each year, plus 2 additional qualifying night credits for every $5,000 spent on the card."},{category:"travel_insurance",name:"Trip Cancellation/Interruption & Baggage Insurance",description:"Trip cancellation/interruption insurance and lost/delayed luggage insurance, plus purchase protection."}],world_of_hyatt_business:[{category:"statement_credit",name:"Up to $100 annual Hyatt statement credit",description:"Up to $100 in Hyatt statement credits per anniversary year: a $50 statement credit for each $50+ spent at any Hyatt property, earned up to twice per anniversary year. No registration required; primary cardmember and authorized users can trigger it.",annual_value_usd:100,conditions:"Requires $50+ in eligible Hyatt spend in each window, up to two times per anniversary year."},{category:"elite_night_credits",name:"5 tier-qualifying nights per $10,000 spent",description:"Earn 5 tier-qualifying night credits toward elite status for every $10,000 spent on the card in a calendar year."},{category:"statement_credit",name:"10% points redemption rebate after $50K spend",description:"Spend $50,000 in a calendar year to receive a 10% rebate of redeemed points back for the rest of the year, on up to 200,000 points redeemed (up to 20,000 points back).",conditions:"Requires $50,000 in calendar-year spend; rebate applies to remainder of year, capped at 200,000 redeemed points."},{category:"other",name:"Discoverist status for up to 5 employees",description:"Ability to grant complimentary World of Hyatt Discoverist status to up to five employees (who need not be cardholders), with employee cards at no additional cost."},{category:"other",name:"Hyatt Leverage membership",description:"Complimentary Hyatt Leverage membership providing up to 15% discounts on eligible standard rates at participating Hyatt properties (plus 5% off qualifying Oasis home rentals) for small businesses."}],ihg_premier:[{category:"free_night_cert",name:"Anniversary Free Night",description:"One reward night certificate each card anniversary, redeemable at IHG hotels priced up to a 40,000-point cap. Cardholder may add their own points to book higher-category hotels.",annual_value_usd:200,conditions:"Issued each year on the card anniversary; point cap currently 40,000 points/night."},{category:"hotel_booking_program",name:"Fourth Reward Night Free",description:"On standard-room award stays of 4 or more consecutive nights at the same IHG property, every 4th night is free.",conditions:"Standard room reward nights only; consecutive nights at the same property."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS application fee credit",description:"One statement credit of up to $120 every four years for Global Entry, TSA PreCheck, or NEXUS application fees.",annual_value_usd:30,conditions:"Once every four years."},{category:"statement_credit",name:"United TravelBank Cash",description:"Up to $50 United TravelBank cash per year, deposited as two $25 installments (arou
1nd January 5 and July 5).",annual_value_usd:50,conditions:"Requires registration with a United MileagePlus account."},{category:"statement_credit",name:"$100 statement credit + 10,000 bonus points at $20,000 spend",description:"Earn a $100 statement credit and 10,000 bonus points each calendar year after spending $20,000 on the card.",annual_value_usd:100,conditions:"Requires $20,000 in annual purchases."},{category:"other",name:"Complimentary DoorDash DashPass",description:"One year of complimentary DashPass membership.",conditions:"Activation required; promotional period applies."},{category:"travel_insurance",name:"Trip cancellation / baggage protections",description:"Trip cancellation insurance, baggage delay insurance, and lost luggage reimbursement; no foreign transaction fees; purchase protection.",conditions:"Standard Chase coverage terms and limits apply."}],ihg_traveler:[{category:"hotel_booking_program",name:"Fourth Reward Night Free",description:"On standard-room award stays of 4 or more consecutive nights, every 4th night is free.",conditions:"Standard room reward nights only; consecutive nights at the same property."},{category:"statement_credit",name:"20% discount on purchased IHG points",description:"20% savings when buying IHG One Rewards points with the Traveler card.",conditions:"Applies to point purchases made on the card."},{category:"travel_insurance",name:"Travel and purchase protections",description:"Includes baggage delay insurance, trip cancellation/interruption coverage, and purchase protection; no foreign transaction fees.",conditions:"Standard Chase coverage terms and limits apply."}],delta_reserve:[{category:"lounge_access",name:"Delta Sky Club access (15 visits/year)",description:"15 Delta Sky Club visits each Medallion Year when flying Delta same-day; unlimited visits after $75,000 in card purchases in a calendar year. Also includes 4 one-time guest passes per Medallion Year.",conditions:"Must be flying Delta same day. Unlimited access unlocked at $75,000 annual spend."},{category:"lounge_access",name:"Amex Centurion Lounge access",description:"Complimentary access to The Centurion Lounge, Sidecar by The Centurion Lounge, and Escape Lounge - The Centurion Studio Partner when the Delta flight is purchased with the card.",conditions:"Delta flight must be purchased with the Reserve card."},{category:"companion_fare",name:"Annual Companion Certificate",description:"Companion Certificate valid on a Delta First, Delta Comfort+, or Delta Main round-trip flight within the U.S. and to Mexico, the Caribbean, or Central America, issued each year after card renewal.",annual_value_usd:300,conditions:"Pay government taxes/fees of $22-$250 (up to four flight segments)."},{category:"elite_night_credits",name:"MQD Headstart + MQD earning toward Medallion status",description:"$2,500 Medallion Qualification Dollars (MQDs) deposited into the card-linked SkyMiles account each Medallion Qualification Year, plus $1 MQD earned per $10 of eligible card purchases. Accelerates Medallion qualification but does not grant a tier outright.",annual_value_usd:2500,conditions:"MQD Headstart credited each Medallion Qualification Year."},{category:"statement_credit",name:"Delta Stays credit",description:"Up to $200 back per year as a statement credit on prepaid hotels or vacation rentals booked through Delta Stays on delta.com.",annual_value_usd:200,conditions:"Calendar-year credit; Delta Stays prepaid hotel/vacation-rental bookings only."},{category:"statement_credit",name:"Resy dining credit",description:"Up to $240 per year ($20/month) in statement credits at U.S. Resy restaurants.",annual_value_usd:240,conditions:"Up to $20 per month at eligible Resy restaurants; enrollment may be required."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $120 per year ($10/month) in statement credits on U.S. rideshare purchases.",annual_value_usd:120,conditions:"Up to $10 per month; enrollment may be required."},{category:"checked_bag",name:"First checked bag free",description:"First checked bag free on Delta flights worldwide; second bag free on domestic flights, for the cardholder and up to several companions on the same reservation.",conditions:"Must use SkyMiles number on the Delta reservation."},{category:"priority_boarding",name:"Priority boarding (Zone 5)",description:"Priority boarding (Main Cabin 1 / Zone 5) on Delta flights.",conditions:"On Delta-operated flights."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck application fee credit",description:"Statement credit of up to $120 for Global Entry, or up to $85 for TSA PreCheck, every four years.",annual_value_usd:30,conditions:"Once every 4 years (Global Entry) / 4.5 years (TSA PreCheck)."}],delta_platinum:[{category:"companion_fare",name:"Annual Companion Certificate",description:"Companion Certificate valid on a Delta Main Cabin round-trip flight within the U.S. and to Mexico, the Caribbean, or Central America, issued each year after card renewal.",annual_value_usd:250,conditions:"Main Cabin only (Comfort+ and Delta Basic ineligible); pay government taxes/fees of $22-$250 (up to four flight segments)."},{category:"elite_night_credits",name:"MQD Headstart + MQD Boost toward Medallion status",description:"$2,500 Medallion Qualification Dollars (MQDs) deposited each Medallion Qualification Year, plus $1 MQD earned per $20 of card purchases (MQD Boost). Accelerates Medallion qualification but does not grant a tier.",annual_value_usd:2500,conditions:"MQD Headstart credited each Medallion Qualification Year."},{category:"statement_credit",name:"Delta Stays credit",description:"Up to $150 back per calendar year as a statement credit on prepaid hotels or vacation rentals booked through Delta Stays.",annual_value_usd:150,conditions:"Calendar-year credit; Delta Stays prepaid hotel/vacation-rental bookings only; Delta Vacations excluded."},{category:"statement_credit",name:"Resy dining credit",description:"Up to $120 per year ($10/month) in statement credits at qualifying U.S. Resy restaurants.",annual_value_usd:120,conditions:"Up to $10 per month; enrollment may be required."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $120 per year ($10/month) in statement credits on U.S. rideshare purchases.",annual_value_usd:120,conditions:"Up to $10 per month; enrollment may be required."},{category:"checked_bag",name:"First checked bag free",description:"First checked bag free on Delta flights worldwide; second bag free on domestic flights, for the cardholder and companions on the same reservation.",conditions:"Must use SkyMiles number on the Delta reservation."},{category:"priority_boarding",name:"Priority boarding",description:"Priority boarding (Zone 5) on Delta flights.",conditions:"On Delta-operated flights."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck application fee credit",description:"Statement credit of up to $120 for Global Entry, or up to $85 for TSA PreCheck, every four years.",annual_value_usd:30,conditions:"Once every 4 years."},{category:"statement_credit",name:"20% in-flight savings + 15% off award travel",description:"20% savings as a statement credit on eligible Delta in-flight purchases, plus 15% discount when using miles to book Award Travel on Delta.",conditions:"In-flight credit applies to eligible purchases; 15% award discount via delta.com / Fly Delta app."}],delta_gold:[{category:"checked_bag",name:"First checked bag free",description:"First checked bag free (up to ~$70/person value) on Delta flights worldwide; second bag free on domestic flights, for up to nine people on the same reservation.",annual_value_usd:70,conditions:"Must use SkyMiles number on the Delta reservation; max nine waivers per reservation."},{category:"priority_boarding",name:"Priority boarding (Zone 5)",description:"Zone 5 priority boarding on Delta flights.",conditions:"On Delta-operated flights."},{category:"statement_credit",name:"Delta Stays credit",description:"Up to $100 back per year as a statement credit on prepaid hotels or vacation rentals booked through Delta Stays.",annual_value_usd:100,conditions:"Calendar-year credit; Delta Stays prepaid hotel/vacation-rental bookings only."},{category:"statement_credit",name:"Annual Delta Flight Credit at $10,000 spend",description:"$200 Delta Flight Credit after spending $10,000 in card purchases in a calendar year.",annual_value_usd:200,conditions:"Requires $10,000 in annual purchases."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $120 per year ($10/month) in statement credits on eligible U.S. rideshare purchases after first card renewal.",annual_value_usd:120,conditions:"Up to $10 per month; available after first card renewal; enrollment may be required."},{category:"statement_credit",name:"20% in-flight savings + 15% off award travel",description:"20% savings as a statement credit on eligible Delta in-flight purchases, plus 15% discount when using miles to book Award Travel on Delta.",conditions:"In-flight credit applies to eligible purchases; 15% award discount via delta.com / Fly Delta app."}],united_club_infinite:[{category:"lounge_access",name:"United Club membership",description:"Full United Club membership for the primary cardmember plus eligible guests; access to 45+ United Club locations worldwide. Chase states a value of at least $750/year. Note: post-2026 overhaul, unlimited adult-guest access (Club All Access) now requires $50,000 annual spend or Premier Gold.",annual_value_usd:750,conditions:"Primary cardmember; admits cardmember plus eligible travel companions. Unlimited adult-guest tier (Club All Access) gated behind $50k spend / Premier Gold."},{category:"hotel_booking_program",name:"Renowned Hotels and Resorts (Visa Infinite Hotel Collection)",description:"Book through RenownedHotels.com for daily breakfast for two, a $100 property credit, room upgrade when available, and other amenities.",conditions:"Reservations must be made through the Renowned Hotels and Resorts portal."},{category:"statement_credit",name:"Renowned Hotels prepaid hotel credit",description:"Up to $200 per year in statement credits when prepaying for hotel accommodations directly through Renowned Hotels and Resorts using the card.",annual_value_usd:200,conditions:"Anniversary-year credit; prepaid bookings through Renowned Hotels."},{category:"airport_security_credit",name:"TSA PreCheck / Global Entry / NEXUS credit",description:"Statement credit of up to $120 every four years to reimburse the application fee for Global Entry, TSA PreCheck, or NEXUS.",annual_value_usd:30,conditions:"Up to $120 once every 4 years."},{category:"checked_bag",name:"Two free checked bags",description:"First and second checked bags free for the primary cardholder and one companion on the same United reservation when the ticket is purchased with the card (up to $360 per round trip).",conditions:"Cardholder + 1 companion on same reservation; ticket purchased with card."},{category:"priority_boarding",name:"United Premier Access",description:"Priority check-in, security screening, boarding, and baggage handling privileges on United-operated flights."},{category:"elite_night_credits",name:"United Premier Qualifying Points (PQP) earning",description:"Earn 1 PQP per $15 spent (up to 28,000 PQP/calendar year) toward United Premier elite status, plus a 1,500 PQP card bonus each qualification year (new for 2026; applied within 6-8 weeks after Feb 1). This is progress toward United status, not a conferred tier.",conditions:"Spend-based; PQP only, does not waive the spend/segment requirements for elite tiers."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $150 back as statement credits each calendar year on eligible rideshare purchases ($12/month Jan-Nov, up to $18 in December).",annual_value_usd:150}
1,{category:"statement_credit",name:"JSX flights credit",description:"Up to $200 back as a statement credit each anniversary year on JSX flight bookings.",annual_value_usd:200,conditions:"Anniversary-year credit."},{category:"statement_credit",name:"Instacart credit",description:"Up to $240 total each calendar year in Instacart statement credits (two $10 monthly credits) plus complimentary Instacart+ membership.",annual_value_usd:240,conditions:"Requires Instacart+ activation."},{category:"statement_credit",name:"Avis / Budget car rental credit",description:"$50 in United TravelBank cash on 1st and 2nd Avis or Budget rentals booked through cars.united.com, up to $100 each anniversary year.",annual_value_usd:100,conditions:"Bookings via cars.united.com paid with the card."},{category:"rental_insurance",name:"Visa Infinite car rental privileges / auto coverage",description:"Visa Infinite rental-car benefits including primary auto rental collision damage waiver when renting with the card and declining the agency CDW.",conditions:"Standard Visa Infinite terms apply."},{category:"travel_insurance",name:"Trip delay and baggage insurance",description:"Trip delay coverage up to $500 and lost/delayed baggage insurance up to $3,000."}],united_explorer:[{category:"checked_bag",name:"Free first checked bag",description:"First standard checked bag free for the primary cardholder and one companion on the same United-operated reservation (up to $50 value each way).",conditions:"Cardholder + 1 companion; ticket purchased with the card."},{category:"lounge_access",name:"United Club one-time passes",description:"Two United Club one-time passes per year (over $100 annual value). Post-overhaul these are valid only at United-branded Club lounges; partner-lounge access requires Premier Gold or $50,000 annual spend.",annual_value_usd:100,conditions:"2 passes per year."},{category:"airport_security_credit",name:"TSA PreCheck / Global Entry / NEXUS credit",description:"Up to $120 statement credit every 4 years to reimburse the application fee for Global Entry, TSA PreCheck, or NEXUS.",annual_value_usd:30,conditions:"Up to $120 once every 4 years."},{category:"priority_boarding",name:"Priority boarding",description:"Primary cardmember and companions on the same reservation board United-operated flights prior to general boarding."},{category:"statement_credit",name:"United travel credit",description:"$100 United travel credit (United TravelBank cash) after $10,000 in annual spending.",annual_value_usd:100,conditions:"Requires $10,000 annual spend."},{category:"statement_credit",name:"United Hotels credit",description:"Up to $100 in United Hotels statement credits annually ($50 back on 1st and 2nd prepaid stays booked directly through United Hotels).",annual_value_usd:100,conditions:"Bookings via United Hotels."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $60 in rideshare statement credits per year ($5/month, enrollment required).",annual_value_usd:60},{category:"statement_credit",name:"Car rental credit (Avis/Budget)",description:"Up to $50 in car rental statement credits via cars.united.com (Avis/Budget) — $25 per rental for 1st and 2nd bookings.",annual_value_usd:50,conditions:"Bookings via cars.united.com."},{category:"statement_credit",name:"Instacart credit",description:"Up to $120 in Instacart statement credits annually ($10/month, through 12/31/27).",annual_value_usd:120,conditions:"Requires Instacart+ activation; promotional period through 12/31/2027."},{category:"statement_credit",name:"JSX flight credit",description:"Up to $100 in JSX flight statement credits each anniversary year.",annual_value_usd:100},{category:"travel_insurance",name:"Trip cancellation/interruption and delay protection",description:"Trip cancellation/interruption ($1,500 per person, $6,000 per trip), trip delay reimbursement ($500), baggage delay ($100/day up to 3 days), lost luggage up to $3,000.",conditions:"Standard card travel-protection terms."},{category:"rental_insurance",name:"Auto rental collision damage waiver",description:"Rental car collision damage waiver coverage when renting with the card and declining the agency's CDW.",conditions:"Standard CDW terms apply."}],aa_executive:[{category:"lounge_access",name:"Admirals Club membership",description:"Complimentary Admirals Club membership for the primary cardmember plus up to 2 guests or immediate family; access to Admirals Club and partner lounges worldwide. Membership valued at roughly $700-$850.",annual_value_usd:850,conditions:"Primary cardmember; admits cardmember + up to 2 guests/immediate family."},{category:"checked_bag",name:"Free first checked bags",description:"First checked bag free on domestic American Airlines itineraries for the cardholder and up to 8 travel companions on the same reservation.",conditions:"Cardholder + up to 8 companions on same reservation; domestic AA flights."},{category:"priority_boarding",name:"Priority boarding and check-in",description:"Priority check-in, security lane access (where available), and preferred boarding on American Airlines flights."},{category:"airport_security_credit",name:"TSA PreCheck / Global Entry credit",description:"Statement credit up to $120 once every 4 years toward Global Entry or TSA PreCheck application fee.",annual_value_usd:30,conditions:"Up to $120 every 4 years."},{category:"elite_night_credits",name:"AAdvantage Loyalty Point status bonuses",description:"Earns 1 Loyalty Point per eligible mile; plus a 10,000 Loyalty Point bonus after reaching 50,000 Loyalty Points and another 10,000 bonus after reaching 90,000 Loyalty Points within a status qualification year. Accelerates AAdvantage elite status (progress, not a conferred tier).",conditions:"Loyalty Point thresholds within a status qualification year."},{category:"statement_credit",name:"Avis / Budget car rental credit",description:"Up to $120 in statement credits per calendar year on eligible prepaid car rentals booked directly on avis.com or budget.com.",annual_value_usd:120,conditions:"Prepaid bookings on avis.com/budget.com."},{category:"statement_credit",name:"Grubhub credit",description:"Up to $120 per year ($10 per monthly billing statement) in Grubhub statement credits.",annual_value_usd:120,conditions:"$10 cap per monthly statement; Grubhub+ membership may be required."},{category:"statement_credit",name:"Lyft credit",description:"Up to $120 per year; $10 Lyft credit after taking 3 eligible Lyft rides in a calendar month.",annual_value_usd:120,conditions:"Requires 3 eligible rides per month to earn the $10 credit."}],aa_platinum_select:[{category:"checked_bag",name:"Free first checked bag",description:"First checked bag free on domestic American Airlines itineraries for the cardholder and up to 4 travel companions on the same reservation.",conditions:"Cardholder + up to 4 companions on same reservation; domestic AA flights; cardholder must be on the reservation."},{category:"priority_boarding",name:"Preferred boarding",description:"Preferred boarding on American Airlines flights for the cardholder and up to 4 companions on the same reservation.",conditions:"Cardholder + up to 4 companions on same reservation."},{category:"other",name:"25% inflight savings",description:"25% savings (as a statement credit) on inflight food and beverage purchases on American Airlines flights when paying with the card.",conditions:"Must pay with the card onboard."},{category:"other",name:"AAdvantage flight discount",description:"$125 American Airlines flight discount after spending $20,000 or more in purchases during the card membership year and renewing the card.",annual_value_usd:125,conditions:"Requires $20,000 spend in a card membership year, then renew the card."}],alaska_visa:[{category:"companion_fare",name:"Alaska Companion Fare",description:"Annual Companion Fare: a companion flies on the same Alaska/Hawaiian itinerary (within North America, including Hawaii) for $99 plus taxes and carrier fees (from about $23). Issued each year after spending $6,000+ in the prior anniversary year.",annual_value_usd:300,conditions:"Requires $6,000+ in purchases in the prior account anniversary year; posts automatically on card anniversary."},{category:"checked_bag",name:"Free checked bag",description:"First checked bag free for the cardholder and up to 6 guests on the same Alaska or Hawaiian Airlines reservation when the flight is paid for with the card.",conditions:"Cardholder + up to 6 guests on same reservation; flight paid with the card. Does not stack with elite-status free bags."},{category:"priority_boarding",name:"Priority/preferred boarding",description:"Preferred (early group) boarding on Alaska Airlines flights for the cardholder and up to 6 guests on the same reservation when booked with the card.",conditions:"Tickets purchased with the card."},{category:"lounge_access",name:"Alaska Lounge+ membership discount",description:"$100 off an annual Alaska Lounge+ membership when purchased with the card. (This is a discount, not complimentary lounge access. Alaska is discontinuing the ability to buy discounted Lounge day passes.)",annual_value_usd:100,conditions:"Must purchase Alaska Lounge+ membership with the card."},{category:"other",name:"20% inflight purchase rebate",description:"20% back (as a statement credit) on Alaska and Hawaiian Airlines inflight food, beverage, and Wi-Fi purchases when paying with the card.",conditions:"Must pay with the card onboard."}],southwest_priority:[{category:"statement_credit",name:"Annual Southwest travel credit",description:"$75 Southwest travel credit each cardmember anniversary year, automatically applied to qualifying Southwest purchases.",annual_value_usd:75},{category:"other",name:"7,500 anniversary bonus points",description:"7,500 Rapid Rewards bonus points awarded each account anniversary year."},{category:"checked_bag",name:"First checked bag free",description:"First checked bag free for the cardmember and up to 8 additional passengers on the same reservation."},{category:"priority_boarding",name:"Group 5 boarding",description:"Group 5 boarding for the cardmember and up to 8 passengers on the same reservation (if not already assigned an earlier group by seat type, fare type, or tier status), under Southwest's 2026 Groups 1-8 boarding model effective Jan 27, 2026."},{category:"other",name:"Complimentary Preferred seat + Extra Legroom upgrades",description:"Complimentary Preferred seat at booking when available, plus upgrades to an Extra Legroom seat within 48 hours prior to departure on any fare (subject to availability), extendable to up to 8 additional passengers on the same reservation (9 Extra Legroom seats total)."},{category:"statement_credit",name:"25% inflight rebate",description:"25% back (as a statement credit) on inflight purchases including drinks and Wi-Fi."},{category:"other",name:"10,000 Companion Pass qualifying points boost",description:"10,000 Companion Pass qualifying points boost each calendar year toward earning the Southwest Companion Pass."}],aaa:[{category:"other",name:"24/7 roadside assistance",description:"24/7 emergency roadside assistance (towing, battery, lockout, fuel, flat tire) usable in your own car, a friend's car, or a rental, as driver or passenger. Number of service calls and towing distance scale with membership tier (Basic/Plus/Premier)."},{category:"other",name:"Up to 20% off Hertz base rates + free additional drivers",description:"Up to 20% off Hertz base rates, complimentary additional drivers (up to four qualified drivers), waived young renter fee for ages 20-24, one free child safety seat, and 10% off fuel purchase options. Limited-time 2026 promos run periodically (e.g. up to 30% off base rate on select booking windows)."},{category:"other",name:"AAA Discounts & Rewards (hotels, attractions, dining)",description:"Member discounts across hotels, restaurants, attraction tickets, and retail; AAA cites an average ~$220/year in savings for members who use the program.",annual_value_usd:220}],clear_plus:[{category:"airport_security_credit",name:"CLEAR Plus expedited airport security lane",description:"Biometric (facial/fingerprint) identity verification that lets members skip the boarding-pass and ID-check line at 55+ U.S. airports. Membership lasts one year from payment. Some sports stadiums and concert venues also accept CLEAR for entry screening.",annual_value_usd:209}
1],costco:[{category:"other",name:"Executive 2% reward on Costco Travel rental cars (and most purchases)",description:"Executive Members earn a 2% annual reward on qualifying Costco purchases including Costco Travel rental-car bookings. The 2% reward on rentals is earned and applied after travel is completed; member must be an Executive Member when travel starts."},{category:"other",name:"Costco Travel rental-car discounts + free additional driver",description:"Costco Travel rental-car bookings typically run 10-25% off standard rates and include one free additional driver (a fee most agencies charge $10-$15/day). Booking is limited to Alamo, Avis, Budget and Enterprise."},{category:"hotel_booking_program",name:"Costco Travel vacation/hotel packages",description:"Member-only vacation and hotel packages through Costco Travel, including 2026 'More Stay, Less Pay' bundles (e.g. stay 5 nights, pay for 4) and Digital Costco Shop Cards worth up to $400 as post-trip rebates on qualifying packages. Not a hotel elite-status program; pricing/perk bundles only."}],amex_business_gold:[{category:"statement_credit",name:"Flexible business credits",description:"Up to $240/year ($20/month) for eligible purchases at FedEx, Grubhub, and office supply stores.",annual_value_usd:240},{category:"statement_credit",name:"Walmart+ credit",description:"Up to $12.95/month (plus taxes) credit covering a Walmart+ membership when paid with the card.",annual_value_usd:155},{category:"travel_insurance",name:"Cell phone protection & car rental coverage",description:"Cell phone protection and secondary car rental loss & damage coverage; trip protections."}],amex_green:[{category:"airport_security_credit",name:"CLEAR Plus credit",description:"Up to $209/year statement credit for CLEAR Plus membership.",annual_value_usd:209},{category:"travel_insurance",name:"Trip delay insurance",description:"Up to $300 per trip for delays exceeding 12 hours.",annual_value_usd:300},{category:"travel_insurance",name:"Baggage insurance",description:"Up to $1,250 for carry-on and $500 for checked baggage."},{category:"rental_insurance",name:"Car rental loss & damage insurance",description:"Secondary car rental coverage up to $50,000."}],delta_skymiles_blue:[{category:"other",name:"Pay with Miles",description:"20% back on in-flight Delta purchases as a statement credit; pay with miles to reduce ticket cost. No annual fee."}],delta_skymiles_gold_business:[{category:"checked_bag",name:"Free checked bags",description:"First checked bag free on all Delta flights; second bag free on domestic flights."},{category:"priority_boarding",name:"Priority boarding",description:"Zone 5 priority boarding on Delta flights."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $120/year in U.S. rideshare statement credits after first renewal.",annual_value_usd:120},{category:"statement_credit",name:"Delta Stays credit",description:"Up to $150/year on prepaid Delta Stays bookings.",annual_value_usd:150},{category:"statement_credit",name:"Delta flight credit",description:"$200 Delta flight credit after spending $10,000 annually.",annual_value_usd:200}],delta_skymiles_platinum_business:[{category:"companion_fare",name:"Annual companion certificate",description:"Domestic, Caribbean, Mexico, or Central American Main Cabin round-trip companion certificate each year after renewal."},{category:"checked_bag",name:"Free checked bags",description:"First checked bag free on all Delta flights; second bag free on domestic flights."},{category:"priority_boarding",name:"Priority boarding",description:"Zone 5 priority boarding on Delta flights."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $120/year in U.S. rideshare statement credits.",annual_value_usd:120},{category:"statement_credit",name:"Delta Stays credit",description:"Up to $200/year on prepaid Delta Stays bookings.",annual_value_usd:200},{category:"statement_credit",name:"Resy dining credit",description:"Up to $120/year at U.S. Resy restaurants.",annual_value_usd:120},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck credit",description:"Global Entry ($120) or TSA PreCheck (up to $85) fee credit every 4-4.5 years.",annual_value_usd:120},{category:"elite_night_credits",name:"MQD Headstart",description:"$2,500 MQD Headstart toward Delta Medallion status each Medallion Qualification Year (boosts toward, but does not confer, Medallion status)."}],delta_skymiles_reserve_business:[{category:"lounge_access",name:"Delta Sky Club access",description:"15 
1Sky Club visits per Medallion Year; plus Centurion Lounge and Escape Lounge access when flying Delta."},{category:"companion_fare",name:"Annual companion certificate",description:"Round-trip Delta First, Comfort+, or Main Cabin companion certificate (domestic, Caribbean, Central America) each year after renewal."},{category:"checked_bag",name:"Free checked bags",description:"First checked bag free on all Delta flights; second bag free on domestic flights."},{category:"priority_boarding",name:"Priority boarding",description:"Zone 5 priority boarding on Delta flights."},{category:"statement_credit",name:"Rideshare credit",description:"Up to $120/year in U.S. rideshare statement credits.",annual_value_usd:120},{category:"statement_credit",name:"Delta Stays credit",description:"Up to $250/year on prepaid Delta Stays bookings.",annual_value_usd:250},{category:"statement_credit",name:"Resy dining credit",description:"Up to $240/year at U.S. Resy restaurants.",annual_value_usd:240},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck credit",description:"Global Entry ($120) or TSA PreCheck (up to $85) fee credit every 4-4.5 years.",annual_value_usd:120},{category:"elite_night_credits",name:"MQD Headstart",description:"$2,500 MQD Headstart toward Delta Medallion status each Medallion Qualification Year (boosts toward, but does not confer, Medallion status)."}],united_gateway:[{category:"checked_bag",name:"Two Free Checked Bags (after spend)",description:"First and second checked bags free for cardholder, but only after spending $10,000 on the card in a calendar year. No annual fee card."},{category:"other",name:"25% Back on United Inflight Purchases",description:"25% back as a statement credit on United inflight food, beverage, and Wi-Fi purchases."},{category:"other",name:"PQP Earning Toward Premier Status",description:"Earns Premier Qualifying Points via spend toward United Premier status; the card confers no automatic status."}],united_quest:[{category:"checked_bag",name:"Two Free Checked Bags (cardholder + 1 companion)",description:"First and second checked bags free for cardholder and one companion on the same reservation."},{category:"statement_credit",name:"$200 United TravelBank/Travel Credit",description:"$200 in annual United travel credit each account anniversary.",annual_value_usd:200},{category:"other",name:"Award Flight Credits & Discount",description:"10,000-mile award flight discount each anniversary plus two 5,000-mile award flight credits per year."},{category:"priority_boarding",name:"Premier Access / Priority Boarding",description:"Premier Access priority boarding on United-operated flights."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS Credit",description:"Up to $120 statement credit every 4 years for application fee.",annual_value_usd:30},{category:"other",name:"PQP Earning Toward Premier Status",description:"Earns up to 18,000 PQP annually plus 1,000 bonus PQP/year (starting 2026) toward United Premier status; confers no automatic status."}],united_business:[{category:"checked_bag",name:"Free First Checked Bag (cardholder)",description:"First checked bag free for the cardholder (and on some itineraries a companion); savings up to $200 per roundtrip."},{category:"lounge_access",name:"Two United Club One-Time Passes",description:"Two United Club one-time passes each year (no full membership)."},{category:"priority_boarding",name:"Priority Boarding",description:"Priority boarding on United-operated flights."},{category:"statement_credit",name:"Annual Partner & United Credits",description:"Annual partner credits (rideshare, Instacart, FareLock, United Hotels, Avis/Budget, JSX, CLEAR, Restaurants United) plus $125 United purchase credit after $500+ in flight purchases; 5,000-mile 'better together' bonus when held with a personal United card.",annual_value_usd:125},{category:"other",name:"PQP Earning Toward Premier Status",description:"Earns up to 4,000 PQP annually toward United Premier status; confers no automatic status."}],united_club_business:[{category:"lounge_access",name:"United Club Membership",description:"Full United Club membership for the cardholder."},{category:"checked_bag",name:"Two Free Checked Bags (cardholder + 1 companion)",description:"First and second checked bags free for cardholder and one companion on the same reservation."},{category:"priority_boarding",name:"Priority Boarding",description:"Priority boarding on United-operated flights."},{category:"other",name:"PQP Earning Toward Premier Status",description:"Earns up to 28,000 PQP annually toward United Premier status; confers no automatic status."}],southwest_rapid_rewards_plus:[{category:"checked_bag",name:"Free First Checked Bag",description:"First standard checked bag free for cardholder and up to 8 additional passengers on the same reservation."},{category:"priority_boarding",name:"Group 5 Boarding",description:"Group 5 priority boarding for cardholder and up to 8 passengers on the same reservation."},{category:"other",name:"3,000 Anniversary Points",description:"3,000 bonus Rapid Rewards points each card anniversary."},{category:"other",name:"TQP/Companion Pass Earning Toward A-List",description:"Earns 1,500 Tier Qualifying Points toward A-List status per $5,000 spent and a 10,000-point Companion Pass qualifying boost each year; confers no automatic A-List status."}],southwest_rapid_rewards_premier:[{category:"checked_bag",name:"Free First Checked Bag",description:"First standard checked bag free for cardholder and up to 8 additional passengers on the same reservation."},{category:"other",name:"Preferred Seat Selection",description:"Preferred seat selection within 48 hours of departure for cardholder and up to 8 passengers, when available."},{category:"other",name:"TQP/Companion Pass Earning Toward A-List",description:"Earns 1,500 Tier Qualifying Points toward A-List per $5,000 spent plus a 10,000-point Companion Pass qualifying boost each year; confers no automatic A-List status."},{category:"other",name:"6,000 Anniversary Points",description:"6,000 bonus Rapid Rewards points each card anniversary."}],southwest_rapid_rewards_premier_business:[{category:"checked_bag",name:"Free First Checked Bag",description:"First standard checked bag free for cardholder and up to 8 additional passengers on the same reservation."},{category:"other",name:"6,000 Anniversary Points & Companion Pass Boost",description:"6,000 bonus points each anniversary plus a 10,000-point Companion Pass qualifying boost each year."},{category:"other",name:"TQP Earning Toward A-List",description:"Earns 1,500 Tier Qualifying Points toward A-List per $5,000 spent; confers no automatic A-List status."}],southwest_rapid_rewards_performance_business:[{category:"checked_bag",name:"Free First Checked Bag",description:"First standard checked bag free for cardholder and up to 8 additional passengers on the same reservation."},{category:"priority_boarding",name:"Group 5 Boarding + Preferred/Extra Legroom Seating",description:"Group 5 boarding plus complimentary Preferred seat selection at booking and Extra Legroom upgrades 48 hours before departure, when available."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS Credit",description:"Up to $120 statement credit every 4 years for application fee.",annual_value_usd:30},{category:"other",name:"TQP/Companion Pass Earning Toward A-List",description:"Earns 2,500 Tier Qualifying Points toward A-List per $5,000 spent plus a 10,000-point Companion Pass qualifying boost each year; confers no automatic A-List status."}],ihg_one_rewards_premier_business:[{category:"free_night_cert",name:"Anniversary Free Night (up to 40,000 points)",description:"Anniversary Free Night certificate valid up to 40,000 IHG points/night; second free night after $60,000 calendar-year spend."},{category:"other",name:"Fourth Reward Night Free",description:"Fourth reward night free on award stays of 4+ consecutive nights."},{category:"statement_credit",name:"$100 Statement Credit (after spend)",description:"$100 statement credit plus 10,000 bonus points after $20,000 
1in calendar-year spend.",annual_value_usd:100},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS Credit",description:"Up to $120 statement credit every 4 years for application fee.",annual_value_usd:30}],ritz_carlton:[{category:"statement_credit",name:"$300 Annual Travel Credit",description:"Up to $300 in annual statement credits for airline incidentals (seat selection, checked bags, inflight Wi-Fi) on any airline.",annual_value_usd:300},{category:"free_night_cert",name:"Annual Free Night Award (up to 85,000 points)",description:"Free Night Award each anniversary, good for a standard room up to 85,000 points (can add up to 25,000 more points)."},{category:"lounge_access",name:"Priority Pass Select",description:"Unlimited Priority Pass Select access to 1,300+ lounges; bring up to 2 guests at no charge; also Chase Sapphire Lounge access."},{category:"other",name:"3 Club Level Upgrade Certificates",description:"3 annual upgrade certificates to Ritz-Carlton Club Level (Club Lounge access) on eligible stays."},{category:"elite_night_credits",name:"15 Elite Night Credits",description:"15 Elite Night Credits every calendar year toward the next Marriott Bonvoy tier."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck Credit",description:"Statement credit for Global Entry or TSA PreCheck application fee.",annual_value_usd:30},{category:"rental_insurance",name:"Primary Auto Rental Collision Damage Waiver",description:"Primary auto rental collision coverage."},{category:"travel_insurance",name:"Trip Delay / Cancellation / Baggage Insurance",description:"Trip delay, cancellation, and lost luggage reimbursement protections."}],chase_aeroplan:[{category:"checked_bag",name:"Free First Checked Bag",description:"Free first checked bag (up to 50 lb) for primary cardholder and up to 8 companions on the same Air Canada reservation."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck / NEXUS Credit",description:"One statement credit up to $120 every 4 years for application fee.",annual_value_usd:30},{category:"other",name:"Status Qualifying Credits Boost",description:"5,000 SQC boost at the start of each year plus the ability to earn more via spend toward higher Aeroplan Elite tiers (35K achievable with $75,000 calendar-year spend as of Jan 1, 2026). Note: retaining the automatic 25K status after the intro period requires $15,000 in calendar-year spend."}],british_airways_visa_signature:[{category:"companion_fare",name:"Travel Together Ticket",description:"Earn a Travel Together companion ticket each calendar year you spend $30,000; valid 2 years to bring a companion on an Avios reward flight (BA/Iberia/Aer Lingus) at no additional Avios, or take 50% off a solo reward flight."},{category:"statement_credit",name:"Up to $600 Reward Flight Statement Credits",description:"Statement credits of $100 (Economy/Premium Economy) or $200 (Business/First) up to 3 times per year (max $600) when booking a BA reward flight and paying taxes/fees with the card.",annual_value_usd:600},{category:"travel_insurance",name:"Lost Luggage & Purchase Protections",description:"Lost luggage reimbursement, extended warranty, and purchase protection; no foreign transaction fees."}],aer_lingus_visa_signature:[{category:"companion_fare",name:"Companion Ticket",description:"Earn an economy companion ticket (valid 12 months) each calendar year you spend $30,000; valid only on US-Ireland Aer Lingus flights, no surcharge, no blackout dates (pay taxes/fees)."},{category:"priority_boarding",name:"Priority Boarding",description:"Priority boarding for cardholder and authorized users on Aer Lingus flights departing from and returning to the US from Ireland."}],iberia_visa_signature:[{category:"companion_fare",name:"Companion Ticket / Voucher",description:"After $30,000 in calendar-year spend, earn a voucher to bring a companion on an Iberia-operated flight for taxes and fees only (described as a discount voucher toward two tickets on the same flight)."}],citi_strata_elite:[{category:"lounge_access",name:"4 Admirals Club passes per year",description:"Four Admirals Club passes each calendar year for access to dozens of American Airlines Admirals Club lounges."},{category:"lounge_access",name:"Priority Pass Select membership",description:"Complimentary Pri
1ority Pass Select membership (1,500+ lounges) for the primary cardmember and authorized users, plus up to 2 guests per visit."},{category:"statement_credit",name:"Up to $300 annual hotel benefit",description:"Up to $300 off a hotel stay of 2 nights or more booked through Citi Travel, once per calendar year.",annual_value_usd:300},{category:"statement_credit",name:"Up to $200 annual Splurge Credit",description:"Up to $200 in annual Splurge Credits on your choice of up to 2 brands including American Airlines, 1stDibs, Best Buy, Future Personal Training, and Live Nation.",annual_value_usd:200},{category:"statement_credit",name:"Up to $200 annual Blacklane credit",description:"Up to $200 in statement credits for Blacklane premium chauffeur service, split $100 (Jan-Jun) and $100 (Jul-Dec).",annual_value_usd:200},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck credit",description:"Up to $120 statement credit toward Global Entry, TSA PreCheck, or NEXUS application fee every 4 years.",annual_value_usd:30},{category:"travel_insurance",name:"Travel protection package",description:"Trip delay, enhanced trip cancellation/interruption, lost or damaged luggage protection, plus MasterRental and extended warranty/purchase assurance."}],citi_aadvantage_mileup:[{category:"other",name:"25% inflight savings",description:"25% savings as a statement credit on American Airlines inflight food and beverage purchases. No annual fee; no free checked bag and no preferred boarding."}],citibusiness_aadvantage_platinum_select:[{category:"checked_bag",name:"First checked bag free",description:"First checked bag free on domestic American Airlines itineraries for the cardholder and up to 4 companions on the same reservation."},{category:"priority_boarding",name:"Preferred boarding",description:"Preferred boarding on American Airlines flights."},{category:"companion_fare",name:"Companion certificate",description:"American Airlines domestic Companion Certificate ($99 fee plus taxes) after spending $30,000 or more in purchases each cardmembership year."},{category:"other",name:"25% inflight savings",description:"25% savings on American Airlines inflight Wi-Fi, food, and beverage purchases."}],barclays_aadvantage_aviator_red:[{category:"checked_bag",name:"First checked bag free",description:"First checked bag free on American Airlines flights for the cardholder and up to 4 companions on the same reservation."},{category:"priority_boarding",name:"Preferred boarding",description:"Preferred boarding on American Airlines flights for the cardholder and up to 4 companions on the reservation."},{category:"other",name:"25% inflight savings",description:"25% savings on American Airlines inflight food and beverage purchases. Card closed to new applications as of October 2025; existing Barclays AAdvantage cards transition to Citi in 2026."}],barclays_aadvantage_aviator_silver:[{category:"checked_bag",name:"First checked bag free",description:"First eligible checked bag free on American Airlines flights for the cardholder and up to 8 companions on the same itinerary."},{category:"priority_boarding",name:"Preferred boarding",description:"Preferred boarding on American Airlines flights for the cardholder and up to 8 companions."},{category:"companion_fare",name:"Companion certificates",description:"Two $99 (plus taxes/fees) domestic companion certificates after $20,000 in annual spend."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck credit",description:"Up to $120 statement credit for Global Entry or TSA PreCheck application fee every 5 years."},{category:"statement_credit",name:"Inflight Wi-Fi and food/beverage credits",description:"Up to $50 annual inflight Wi-Fi credit plus up to $25 in daily statement credits for inflight food/beverage purchases.",annual_value_usd:50}],barclays_jetblue_plus:[{category:"checked_bag",name:"First checked bag free",description:"First checked bag free on JetBlue-operated flights for the cardholder and up to 3 companions on the same reservation."},{category:"elite_night_credits",name:"Path to Mosaic status (Tiles)",description:"Earn 1 Tile toward JetBlue Mosaic status for every $1,000 spent on the card (card does not directly confer Mosaic)."},{category:"other",name:"10% points rebate + anniversary points",description:"10% rebate on TrueBlue points redeemed for award flights, 5,000 bonus points each account anniversary, and 50% rebate on inflight purchases.",annual_value_usd:70}],barclays_jetblue_business:[{category:"checked_bag",name:"First checked bag free",description:"First checked bag free on JetBlue-operated flights for the cardholder and up to 3 companions on the same reservation."},{category:"elite_night_credits",name:"Path to Mosaic status (Tiles)",description:"Card spend earns Tiles toward JetBlue Mosaic status; the card does not directly grant Mosaic status."},{category:"other",name:"50% inflight savings",description:"50% savings on eligible inflight food and drink purchases; no foreign transaction fees."}],barclays_jetblue_premier:[{category:"elite_night_credits",name:"25-Tile annual bonus toward Mosaic",description:"25-Tile bonus at the start of each calendar year (halfway to Mosaic 1); card spend earns 1 additional Tile per $1,000. Card does not directly confer Mosaic status."},{category:"lounge_access",name:"BlueHouse lounge access",description:"Complimentary JetBlue BlueHouse lounge access (e.g. JFK) for the cardholder and one guest when traveling on eligible fares."},{category:"statement_credit",name:"Up to $300 TrueBlue Travel credit",description:"Up to $300 in annual statement credits for qualifying TrueBlue Travel purchases (hotels, car rentals, cruises and more) booked with the card.",annual_value_usd:300},{category:"companion_fare",name:"Spend-based companion passes",description:"Companion pass (up to $500 value) after $15,000 in annual spend; an additional companion pass (up to $1,500 value) after $75,000 in annual spend."}],barclays_wyndham_rewards_earner:[{category:"other",name:"10% fewer points on Go Free awards",de
1scription:"Redeem 10% fewer Wyndham Rewards points on Go Free award nights. No annual fee."},{category:"other",name:"Gold status perks",description:"Complimentary Wyndham Rewards Gold status (held for as long as you keep the card): free Wi-Fi, preferred room selection, late checkout, and a 10% points-earning bonus."}],barclays_wyndham_rewards_earner_plus:[{category:"other",name:"10% fewer points on Go Free awards",description:"Redeem 10% fewer Wyndham Rewards points on Go Free award nights."},{category:"other",name:"Anniversary bonus points",description:"7,500 bonus points each account anniversary."},{category:"other",name:"Platinum status perks",description:"Automatic Wyndham Rewards Platinum status: 15% points-earning bonus, early check-in, late checkout, suite upgrades when available, welcome amenity, Caesars Rewards status match, and Avis/Budget rental upgrades."}],barclays_wyndham_rewards_earner_business:[{category:"other",name:"Anniversary bonus points",description:"15,000 bonus points each anniversary year with no spending requirement."},{category:"other",name:"Diamond status perks",description:"Automatic Wyndham Rewards Diamond status (highest tier): suite upgrades, early check-in, late checkout, and welcome amenity at check-in, plus all Platinum benefits."}],barclays_hawaiian_airlines_world_elite:[{category:"checked_bag",name:"Two free checked bags",description:"Primary cardmember receives 2 free checked bags on eligible Hawaiian Airlines and Alaska Airlines operated flights."},{category:"companion_fare",name:"$100 annual companion discount",description:"Annual $100 companion discount for roundtrip coach travel between Hawaii and North America on Hawaiian, or roundtrip North America coach travel on Alaska.",annual_value_usd:100},{category:"other",name:"World Elite Mastercard perks",description:"Cell phone protection on eligible plans, Mastercard Travel Rewards, roadside assistance dispatch, and identity theft protection; no foreign transaction fee."}],barclays_frontier_airlines_world:[{category:"checked_bag",name:"Two free checked bags",description:"Primary cardmember receives 2 free checked bags on all Frontier Airlines operated flights."},{category:"priority_boarding",name:"Zone 2 priority boarding",description:"Complimentary Zone 2 priority boarding (Zone 1 with Elite Gold status)."},{category:"statement_credit",name:"$100 anniversary flight voucher",description:"$100 flight voucher every account anniversary after spending $2,500 or more during the membership year (voucher valid 180 days).",annual_value_usd:100},{category:"companion_fare",name:"Companion travel (Elite Platinum/Diamond)",description:"Elite Platinum (50,000 points) or Diamond (100,000 points) members can bring a companion for the cost of government taxes/fees (from $5.60 one-way)."}],barclays_emirates_skywards_rewards:[{category:"lounge_access",name:"Emirates Business Lounge access (Dubai)",description:"Silver-tier access to Emirates Business Class lounges in Dubai for the primary cardmember."},{category:"other",name:"25% Skywards miles bonus + priority check-in/boarding",description:"Silver-tier benefits include 25% extra Skywards miles on Emirates flights, priority check-in, and priority boarding."}],barclays_emirates_skywards_premium:[{category:"lounge_access",name:"Priority Pass Select membership",description:"Complimentary Priority Pass Select membership for the primary cardmember and authorized users."},{category:"lounge_access",name:"Emirates Business Lounge access worldwide",description:"Gold-tier access to Emirates Business Class lounges worldwide with one guest."},{category:"airport_security_credit",name:"Global Entry / TSA PreCheck credit",description:"Up to $100 statement credit for Global Entry or TSA PreCheck application fee once every 5 years."},{category:"other",name:"Anniversary miles bonus",description:"10,000 bonus Skywards miles after $30,000 in annual spend."}],amex_uk_gold:[{category:"lounge_access",name:"4 complimentary lounge passes/year",description:"Four free airport lounge passes each year via The American Express Lounge Collection / Priority Pass, granting access to 1,300+ lounges worldwide."},{category:"hotel_booking_program",name:"The Hotel Collection",description:"Booking program at 500+ properties: US$100 hotel credit on 2+ night stays plus a room upgrade when available.",annual_value_usd:100},{category:"statement_credit",name:"Deliveroo credit (\xa3120/year)",description:"\xa35 back on the first two Deliveroo orders charged to the card each month (up to \xa3120/year)."},{category:"travel_insurance",name:"Travel accident & travel inconvenience cover",description:"Travel-related insurance protections provided when travel is paid on the card (enrollment/terms apply)."}],ba_amex_premium_plus:[{category:"companion_fare",name:"2-4-1 Companion Voucher (any cabin)",description:"Earned by spending \xa315,000 in a card year. Valid for 24 months, usable in ANY cabin including Club World (business) and First on British Airways, Iberia and Aer Lingus reward flights. Take a companion for the same Avios as one ticket, or fly s
1olo for 50% Avios. Unlocks extra Club World reward seats not available to standard collectors. Until 31 March 2027 can also recoup 25% of Avios used on a BA Holidays package."}],marriott_bonvoy_amex_uk:[{category:"elite_night_credits",name:"15 Elite Night Credits/year",description:"15 Elite Night Credits awarded on application and 15 more each January, automatically conferring Silver Elite and counting toward higher tiers and lifetime status."},{category:"free_night_cert",name:"Annual Free Night Award (up to 25,000 points)",description:"Free Night Award voucher issued after spending \xa325,000 in an anniversary year, valid at hotels costing up to 25,000 Marriott Bonvoy points/night (toppable with up to 15,000 personal points for a 40,000-point redemption)."}],barclaycard_avios_plus:[{category:"companion_fare",name:"British Airways upgrade voucher (or 7,000 Avios)",description:"Spend \xa310,000 in 12 months to choose either a BA cabin upgrade voucher (book a reward flight and pay the Avios of the next cabin down, or upgrade one cabin) or 7,000 bonus Avios. Selection swappable year to year in the Barclaycard app. Cannot be combined with an Amex companion voucher on the same booking."},{category:"lounge_access",name:"DragonPass lounge access (discounted; 4 free via Premier)",description:"Access to 1,000+ DragonPass lounges at a discounted ~\xa324 per person per visit. Pairing the card with a Barclays Premier account on Barclays Avios Rewards adds 4 free lounge passes/year."}],barclaycard_avios_standard:[{category:"companion_fare",name:"British Airways upgrade voucher",description:"Spend \xa320,000 in a membership year on the no-fee card to earn a BA upgrade voucher: book a return reward flight paying the Avios of the next-lowest cabin, or a one-way reward flight for two paying the same Avios. Valid two years."}],virgin_atlantic_reward_plus:[{category:"companion_fare",name:"Annual reward voucher (companion ticket or cabin upgrade)",description:"Spend \xa310,000 in a year to earn a voucher (valid 2 years) usable as either a companion ticket on a booked flight or a one-cabin upgrade for a solo traveller on Virgin Atlantic. Voucher value scales with Flying Club tier: 75,000 Virgin Points for Red, 150,000 Virgin Points for Silver/Gold."},{category:"other",name:"No FX fees in Eurozone",description:"No foreign exchange fees on spending within the Eurozone, Romania and Slovakia (saving ~2.99% vs standard cards)."}],hsbc_premier_world_elite:[{category:"lounge_access",name:"Unlimited Priority Pass lounge access",description:"Free unlimited Priority Pass access to 1,400+ airport lounges for the main cardholder; one supplementary cardholder can be added for \xa360/year. Guests are not included."},{category:"airport_security_credit",name:"Fast Track security at select UK airports",description:"Fast Track airport security at select UK airports including Gatwick, Luton and Stansted."},{category:"other",name:"Transferable reward points (Avios + 8 other airlines, 2 hotels)",description:"Earns 3 pts/\xa31 in UK and 4 pts/\xa31 abroad, transferable to Avios, Emirates, Qatar and other airline/hotel programmes; Mastercard Priceless experiences included."}],lloyds_world_elite:[{category:"lounge_access",name:"Unlimited Priority Pass lounge access",description:"Free unlimited Priority Pass access to 1,400+ airport lounges for the main cardholder; one supplementary cardholder gets matching access. Guests charged \xa324 per visit. Many airport restaurants give \xa318 food/drink credits to cardholders."},{category:"airport_security_credit",name:"Fast Track security at select UK airports",description:"Fast Track airport security lanes at select UK airports including Gatwick, Luton and Stansted."},{category:"other",name:"0% foreign exchange fees worldwide",description:"No foreign transaction fees on any overseas spending, plus 0.5%/1% cashback (Mastercard Priceless offers included)."}],amex_ca_aeroplan_reserve:[{category:"lounge_access",name:"Air Canada Maple Leaf Lounge & Caf\xe9 access",description:"Complimentary access to Air Canada Maple Leaf Lounges and Air Canada Caf\xe9s in Canada and the US for the cardholder plus one guest, when flying a same-day itinerary operated by Air Canada or a Star Alliance member. Additional guests CA$59 each."},{category:"lounge_access",name:"Priority Pass membership",description:"Complimentary Pri
1ority Pass membership (1,200+ lounges). Membership only: a pay-per-visit usage fee applies for the cardholder and guests on every visit."},{category:"checked_bag",name:"First checked bag free",description:"Free first checked bag (up to 23kg/50lb) on Air Canada for the cardholder and up to 8 companions on the same reservation."},{category:"priority_boarding",name:"Air Canada priority airport services",description:"Priority check-in, priority boarding, priority baggage handling, priority airport standby, and higher priority for eligible airport upgrades on Air Canada."},{category:"airport_security_credit",name:"NEXUS fee credit",description:"Up to $100 CAD statement credit every 4 years for NEXUS application/renewal."},{category:"other",name:"Toronto Pearson valet parking & fast-track security",description:"Complimentary valet at Express Park/Daily Park (Terminal 1) and expedited security lanes at Terminals 1 and 3 at Toronto Pearson."},{category:"companion_fare",name:"Annual Companion Pass",description:"Annual Companion Pass after $25,000 in net purchases before anniversary; buy an Air Canada economy companion ticket at a fixed base fare ($99-$599)."}],amex_ca_cobalt:[{category:"hotel_booking_program",name:"The Hotel Collection credit",description:"Book 2+ consecutive nights at participating The Hotel Collection properties via Amex Travel for a $100 USD experience credit plus room upgrade when available."},{category:"travel_insurance",name:"Travel & purchase insurance suite",description:"Includes travel insurance coverage (emergency medical, trip interruption, flight/baggage delay, car rental theft & damage) plus mobile device insurance. No airline/hotel elite status conferred."}],td_aeroplan_visa_infinite_privilege:[{category:"lounge_access",name:"Air Canada Maple Leaf Lounge access",description:"Unlimited Air Canada Maple Leaf Lounge access for the primary cardholder plus one guest."},{category:"lounge_access",name:"Visa Airport Companion Program (DragonPass)",description:"6 complimentary international airport lounge visits per year via Visa Airport Companion presented by DragonPass."},{category:"checked_bag",name:"First checked bag free",description:"Free first checked bag for cardholder and up to 8 companions on the same reservation when travel begins with an Air Canada flight."},{category:"airport_security_credit",name:"NEXUS fee rebate",description:"Rebate on NEXUS application fees (up to $100 CAD) every 48 months."}],td_aeroplan_visa_infinite:[{category:"checked_bag",name:"First checked bag free",description:"Free first checked bag for cardholder and up to 8 companions on the same reservation when travel begins with an Air Canada flight. No Maple Leaf Lounge access on this tier."},{category:"airport_security_credit",name:"NEXUS fee rebate",description:"Rebate on NEXUS application fees (up to $100 CAD) every 48 months."}],cibc_aeroplan_visa_infinite_privilege:[{category:"lounge_access",name:"Air Canada Maple Leaf Lounge access",description:"Complimentary Maple Leaf Lounge access in Canada and the US (including International Maple Leaf Lounges on an international itinerary) for primary cardholder and authorized users."},{category:"lounge_access",name:"Priority Pass / DragonPass visits",description:"Lounge access with Priority Pass membership and 6 complimentary visits annually."},{category:"checked_bag",name:"First checked bag free",description:"Free first checked bag for cardholder, authorized users, and up to 8 companions on the same reservation."},{category:"priority_boarding",name:"Air Canada priority services",description:"Priority check-in, priority boarding, and priority baggage handling for cardholder, authorized users, and up to 8 companions."}],cibc_aventura_visa_infinite_privilege:[{category:"lounge_access",name:"Visa Airport Companion Program (DragonPass)",description:"Complimentary Visa Airport Companion membership plus 6 complimentary airport lounge passes each year (1,300+ DragonPass lounges)."},{category:"statement_credit",name:"$200 annual travel credit",description:"Annual $200 travel credit.",annual_value_usd:145}
1,{category:"airport_security_credit",name:"NEXUS fee credit",description:"Up to two $200 statement credits for NEXUS membership application or renewal."}],rbc_avion_visa_infinite_privilege:[{category:"lounge_access",name:"Visa Airport Companion Program (DragonPass)",description:"6 complimentary airport lounge passes per year (Visa Airport Companion / DragonPass, 1,200+ lounges). Additional visits ~US$32/person."},{category:"other",name:"Priority security & airport parking",description:"Priority security screening and reserved parking at select Canadian airports."},{category:"travel_insurance",name:"Comprehensive travel insurance",description:"Emergency medical, trip cancellation/interruption, baggage/flight delay, and rental car collision/loss damage coverage."}],rbc_westjet_world_elite_mastercard:[{category:"companion_fare",name:"Annual round-trip companion voucher",description:"Annual round-trip World Elite companion voucher, requiring a minimum $5,000 in net purchases in the 12 months following your prior voucher's issuance (the $5,000 spend requirement applies to vouchers issued on or after Nov 5 2026). Flexible exchange options: 30% off one base airfare or a $200 WestJet/Sunwing Vacations credit."},{category:"checked_bag",name:"First checked bag free",description:"Free first checked bag for the cardholder and up to 8 guests on the same reservation (WestJet flight must be paid with the card and the WestJet Rewards ID linked to the reservation)."}],scotiabank_passport_visa_infinite:[{category:"lounge_access",name:"Visa Airport Companion Program (DragonPass)",description:"Complimentary Visa Airport Companion membership plus 6 complimentary lounge visits per year (DragonPass, 1,200+ lounges including Plaza Premium)."},{category:"other",name:"No foreign transaction fees",description:"No 2.5% foreign-currency transaction fee on purchases made in a foreign currency."}],scotiabank_gold_amex:[{category:"lounge_access",name:"Priority Pass discounted membership",description:"Discounted Priority Pass membership; visits are pay-per-use (does not include complimentary lounge passes)."},{category:"other",name:"No foreign transaction fees",description:"No foreign-currency transaction fees on purchases made in a foreign currency."}],bmo_ascend_world_elite_mastercard:[{category:"lounge_access",name:"Mastercard Travel Pass (DragonPass)",description:"Complimentary Mastercard Travel Pass membership (powered by DragonPass) plus 4 complimentary airport lounge passes per year (1,300+ lounges; additional visits ~US$32/person)."},{category:"airport_security_credit",name:"NEXUS membership credit",description:"Up to $200 statement credit toward the NEXUS application fee (charged to the card within the first year)."}],amex_au_explorer:[{category:"statement_credit",name:"$400 annual Travel Credit",description:"$400 Travel Credit each year usable on eligible flights, hotels or car hire booked through American Express Travel.",annual_value_usd:260},{category:"lounge_access",name:"Two Centurion Lounge passes",description:"Two complimentary entries per year to The Centurion Lounge at Sydney or Melbourne International Airport."},{category:"travel_insurance",name:"Complimentary travel insurance",description:"Domestic and international travel insurance when a return trip is charged to the card."}],amex_au_qantas_ultimate:[{category:"statement_credit",name:"$450 Qantas Travel Credit",description:"$450 Qantas Travel Credit each membership year on eligible domestic/international Qantas flight bookings of $450+ via American Express Travel.",annual_value_usd:290},{category:"lounge_access",name:"Qantas Club + Centurion passes",description:"Two Qantas Club complimentary lounge invitations per year (after first eligible Qantas spend) plus two entries to The Centurion Lounge at Sydney or Melbourne International."},{category:"travel_insurance",name:"Complimentary international travel insurance",description:"Cover for trip cancellation, delays, accidents and baggage when the trip is paid with the card."},{category:"other",name:"Qantas Wine Premium Membership",description:"Complimentary Qantas Wine Premium membership."}],amex_au_velocity_platinum:[{category:"lounge_access",name:"Virgin Australia Lounge access",description:"Virgin Australia domestic lounge access (on same-day VA domestic flights) on the Velocity membership, plus two single-entry VA guest lounge passes per year."},{category:"companion_fare",name:"Annual complimentary domestic return flight",description:"One annual complimentary Virgin Australia domestic return economy flight between select cities (Velocity Platinum Flight Map)."},{category:"elite_night_credits",name:"Up to 100 Velocity Status Credits",description:"Earn up to 100 Velocity Status Credits per membership year (50 at $25,000 eligible spend, a further 50 at another $25,000) toward Velocity Frequent Flyer status tiers."},{category:"travel_insurance",name:"Complimentary travel insurance",description:"International travel insurance when the return trip is paid with the card."}],amex_sg_platinum_charge:[{category:"lounge_access",name:"Unlimited global lounge access",description:"Unlimited access to 1,550+ lounges worldwide (Centurion, Priority Pass, Plaza Premium and partners)."},{category:"free_night_cert",name:"Complimentary annual hotel night (PlatStay)",description:"One 
1complimentary one-night stay for two adults at a participating property (Singapore or overseas, e.g. The Fullerton, St. Regis, Banyan Tree) each year."},{category:"hotel_booking_program",name:"The Hotel Collection / Fine Hotels + Resorts",description:"1,000+ handpicked properties (incl. Hyatt, Hilton) with room upgrade when available and on-property credit."},{category:"statement_credit",name:"Airline, dining and wine credits",description:"S$200 Airline Credit, S$200 Global Dining Credit, S$400 Wine Credit, plus bi-monthly Table for Two dining.",annual_value_usd:590}],amex_sg_krisflyer_ascend:[{category:"free_night_cert",name:"Annual Hilton hotel night voucher",description:"One voucher for a complimentary night's stay at participating Hilton properties (Asia Pacific) each year; room only, no points/benefits earned on the stay."},{category:"lounge_access",name:"Complimentary lounge access",description:"Complimentary airport lounge visits included with the card."}],citi_premiermiles_sg:[{category:"lounge_access",name:"Priority Pass lounge visits",description:"Two complimentary Priority Pass airport lounge visits per calendar year (1,300+ lounges) for the principal cardholder."},{category:"hotel_booking_program",name:"Mastercard World Select hotel fast-tracks",description:"Upgraded to Mastercard World Select tier (Dec 2025): GHA Discovery Platinum status match, plus fast-track hotel status with programmes like HoteLux Elite, My Millennium, and IHG One Rewards Gold (2 nights in 90 days)."},{category:"travel_insurance",name:"Travel insurance",description:"Complimentary travel inconvenience/accident insurance when the trip is charged to the card."}],dbs_altitude_sg:[{category:"lounge_access",name:"Priority Pass lounge visits (Visa)",description:"Visa version includes complimentary digital Priority Pass membership with 2 free lounge visits per membership year (Amex version excludes this)."},{category:"hotel_booking_program",name:"Hotel booking discounts",description:"10% cashback at Booking.com and 7% off Agoda.com hotel bookings for Altitude Visa cardholders."},{category:"travel_insurance",name:"Travel insurance",description:"Complimentary travel insurance and travel deals included with the card."}],uob_prvi_miles_sg:[{category:"lounge_access",name:"Priority Pass lounge visits",description:"Four complimentary Priority Pass airport lounge visits per calendar year (1,700+ lounges); guests US$35 each."},{category:"travel_insurance",name:"Complimentary travel insurance",description:"Travel insurance included with the card."}],ana_amex_premium_jp:[{category:"priority_boarding",name:"Priority check-in",description:"Priority check-in at ANA-operated international Business Class counters by presenting the card."},{category:"other",name:"Flight bonus miles",description:"25% flight bonus miles on ANA Group flights as a card-type multiplier."},{category:"other",name:"In-flight purchase discount",description:"10% discount on ANA in-flight purchases on international and domestic flights."},{category:"elite_night_credits",name:"Lower ANA Bronze status threshold",description:"Card lowers the ANA Mileage Club Bronze Service qualification (30,000 Premium Points incl. 15,000 from ANA flights, vs the standard path). Bronze still requires flying; the card does not confer it automatically."}],jal_amex_platinum_jp:[{category:"other",name:"JAL Global Club eligibility",description:"An eligible qualifying JALCARD for JAL Global Club (JGC) membership. JGC is NOT conferred by holding the card; it requires earning 1,500 Life Status Points under the JAL Life Status Program (by flying/lifestyle) AND holding the qualifying card before you can apply."}],hdfc_infinia:[{category:"lounge_access",name:"Unlimited global lounge access",description:"Unlimited domestic lounge access for primary and add-on cards, plus unlimited international lounge access at 1,000+ airports via Priority Pass."},{category:"hotel_booking_program",name:"Club Marriott membership",description:"Complimentary first-year Club Marriott membership: up to 20% off dining and stays at 350+ Asia-Pacific properties."},{category:"other",name:"ITC Hotels stay benefit",description:"Stay 3 nights pay for 2 at participating ITC Hotels, plus a 1+1 buffet offer at select ITC Hotels."},{category:"other",name:"Unlimited golf",description:"Unlimited complimentary golf games and lessons (100% green-fee waiver at select courses) plus dedicated concierge."}],hdfc_diners_club_black:[{category:"lounge_access",name:"Unlimited lounge access",description:"Unlimited access to 1,300+ lounges in India and abroad for primary and add-on cardholders."},{category:"other",name:"Complimentary golf",description:"Complimentary golf games at top courses in India and worldwide."},{category:"hotel_booking_program",name:"Club Marriott + travel memberships",description:"Complimentary Club Marriott membership plus MakeMyTrip Black, Times Prime, Swiggy One and Amazon Prime memberships (renewed annually on qualifying spend)."}],axis_magnus:[{category:"lounge_access",name:"Lounge access",description:"Domestic lounge access (now spend-gated: min Rs. 50,000 spend in prior 3 months as of the Apr 2026 changes) plus unlimited international lounge visits via Priority Pass with 4 guest visits/year."},{category:"other",name:"Oberoi Hotels discount",description:"15% off Best Available Rates (or complimentary 3rd-night stay) at Oberoi Hotels, plus 15% EazyDiner dining discount (up to Rs. 1,000) at 4,000+ restaurants."},{category:"other",name:"Premium rewards and transfers",description:"Accelerated EDGE Reward points with airline/hotel transfer partners. Note: airport meet-and-greet/meet-assist and concierge were removed, and Accor/Marriott/Qatar transfer partners were dropped, in the April 2026 devaluation."}],axis_reserve:[{category:"lounge_access",name:"Unlimited lounge access",description:"Unlimited domestic lounge access for primary and add-on cards plus 12 guest visits, and international lounge access via complimentary Pri
1ority Pass."},{category:"hotel_booking_program",name:"Accor Plus / Club ITC / Club Marriott memberships",description:"Accor Plus (1 free night Asia-Pacific, room upgrades, up to 50% off dining), Club ITC Culinaire, and Club Marriott (20% off F&B and best available rates)."}],aaa_premier:[{category:"other",name:"Hertz Five Star benefits",description:"After enrolling in Hertz Gold Plus Rewards via AAA, Premier members get complimentary Five Star status: wider car selection, one car-class upgrade when available (max Premium), 25% more points each rental, skip-the-counter at select airports, and a free rental day after the first paid Gold Plus rental. Status held as long as AAA Premier stays active."},{category:"other",name:"All Classic Hertz discounts",description:"Up to 20% off base rate plus free additional drivers, free child seat, young-renter fee waiver, 10% off prepaid fuel — same as standard AAA, on top of Five Star."},{category:"hotel_booking_program",name:"AAA member hotel rates",description:"Same AAA preferred-hotel rate program available to all tiers."}],caa:[{category:"other",name:"Car rental discount (Enterprise/National/Alamo)",description:"5%–20% off plus CAA Dollars on Alamo, Enterprise and National; two free additional drivers and free unlimited mileage (most cases) in Canada and the USA. Members may also enroll free in Hertz Gold Plus Rewards (base Gold tier) for members-only rates — no elite status conferred."},{category:"hotel_booking_program",name:"AAA/CAA hotel rates worldwide",description:"AAA/CAA member rates at Hilton, Marriott (5%+ off + Bonvoy points), Choice (10%+ off + Choice Privileges points), Hyatt (up to 10% off + World of Hyatt points), Sheraton and independents."},{category:"other",name:"Fuel + attractions/tours discounts",description:"3\xa2/L off fuel at Shell; discounts on tours, cruises, attraction tickets, vacation packages and travel insurance."}],rac_uk:[{category:"other",name:"RAC Rewards travel & days-out discounts",description:"RAC Rewards portal gives money off holiday car hire, airport hotel + parking packages, hotel stays, travel tickets, airport parking, attraction/cinema tickets and dining/retail; plus 25% off RAC Travel Insurance. Discount-only programme, no conferred status."}],the_aa_uk:[{category:"other",name:"AA Smart Benefits discounts",description:"Breakdown-cover members get app/web discounts: up to 20% off at Costa, Burger King and Moto outlets, 20% off food & drink at 1,000+ inns/restaurants (Toby Carvery, Harvester, All Bar One, Vintage Inns), cheaper fuel and half-price car washes. Silver (1yr) and Gold (5yr) loyalty tiers add cover, not travel status."}],adac:[{category:"other",name:"Europcar / rental-car discount",description:"Up to ~20% off Europcar in Germany (up to 15% for 1–2 day rentals; up to 20% for 3–27 days) booked through the ADAC portal only; ADAC also negotiates discounts at Sixt and Hertz. Discount-only, no status."},{category:"other",name:"Partner hotel & leisure discounts",description:"Discounts at selected partner hotels, car-rental providers and recreational facilities via the ADAC Vorteilswelt; tiers Basis/Plus/Premium scale roadside + international cover, not travel status."}],nrma:[{category:"other",name:"My NRMA Rewards car rental",description:"20% off daily rates in Australia, $5 off protection options and a free additional driver."},{category:"other",name:"Accommodation & travel rewards",description:"Extra free night on 4+ night stays (low/mid season), discounts at 70+ member-owned destinations and NRMA Parks & Resorts; up to 2.1% cashback on domestic and 1.4% on selected international flights with Virgin Australia."},{category:"other",name:"Fuel discount",description:"Up to 5c/L off via Ampol QR code in the My NRMA app."}],racv:[{category:"other",name:"Car hire discount",description:"Up to 15% off car hire worldwide with Hertz, Thrifty, Europcar, Dollar and Ace; 10% off campervan daily rates."},{category:"other",name:"RACV Resorts & travel-partner discounts",description:"25% off RACV Resorts plus discounts with global travel partners; years-of-membership loyalty cards (Bronze 5% to Gold-50 20%) deepen partner discounts — discount tiers, not travel status."}],racq:[{category:"other",name:"Car & truck rental discount",description:"Up to 15% off car & truck rental at participating locations (incl. Sixt)."},{category:"other",name:"Accommodation & travel discounts",description:"Discounted hotels, resorts and parks across Australia (incl. RACV Resorts); savings on tours and flight booking fees via RACQ Travel."},{category:"other",name:"Fuel discount",description:"4c/L off at participating Caltex stations Australia-wide."}],sams_club:[{category:"other",name:"Sam's Club Travel car rental",description:"Up to 25% off rental cars via the member travel portal (Hertz, Dollar, Thrifty and 18 brands across 25,000 pickup locations). No status conferred."},{category:"hotel_booking_program",name:"Sam's Club Travel hotels",description:"Up to 60% off member-only hotel rates across 40,000+ hotels in 4,500 cities; plus discounted theme-park/attraction tickets."}],bjs:[{category:"other",name:"BJ's Travel car rental",description:"Up to 35% off rental cars from top brands when booking with the BJ's membership number; everyday member savings. No status conferred."},{category:"hotel_booking_program",name:"BJ's Travel hotels & packages",description:"Up to 50% off across 70,000+ hotels/villas/resorts with flexible cancellation; 5% back as a BJ's Gift Card and a 110% best-price guarantee on hotels, cars, cruises and packages."}
1],aarp:[{category:"other",name:"Avis & Budget car rental discount",description:"Up to 35% off base rates (Pay Now) or up to 30% (Pay Later) at Avis and Budget, plus a free upgrade (compact–full size, subject to availability), an additional driver at no cost and a 3% credit toward future rentals. No elite status conferred."},{category:"hotel_booking_program",name:"Hotel discounts",description:"Member savings at 4,000+ hotels/resorts including Wyndham, Choice and Best Western."},{category:"other",name:"British Airways flight discount",description:"Only airline with an AARP discount: $65 off economy/premium-economy or $200 off business class on round-trip transatlantic flights."}],wesalute_veterans_advantage:[{category:"other",name:"Airline member discounts",description:"WeSalute+ members get exclusive savings (most classes, no blackout dates) on United, JetBlue, Alaska and Hawaiian; American Airlines up to 10% off; JetBlue adds two free checked bags (up to ~$170/round trip)."},{category:"other",name:"Car rental & vacation discounts",description:"Up to 25% off Budget car rentals; 10% off the land portion of American Airlines Vacations packages; member rates on hotels, resorts and cruises via WeSalute Travel. Paid tier ~$9.99/mo or ~$59.95/yr. No conferred status."}],usaa:[{category:"other",name:"Car rental discounts",description:"Up to 35% off with major agencies; National adds no additional-driver fees for USAA spouses/family, included primary liability coverage, unlimited mileage on most vehicles, waived loss-of-use and waived underage-driver fees (ages 21-24). Budget up to 25% off outside the US. No elite status conferred."},{category:"hotel_booking_program",name:"USAA Perks hotels/cruises",description:"Member rates on 300,000+ hotels, 10,000 cruises and flights via USAA Perks (powered by MemberDeals); savings up to 50% on resorts and up to 60% on cruises."}],govx:[{category:"other",name:"Verified military/first-responder/government discounts",description:"Free membership; GOVX ID verifies eligible status (military, veteran, first responder, government) to unlock retailer and travel discounts from 1,000+ brands at checkout. Verification/discount platform, not a status program."}],id_me:[{category:"other",name:"Verified-group travel & retail discounts",description:"Free identity/status verification (military, veteran, student, teacher, nurse, government, first responder) used to unlock group discounts at partner merchants including travel sellers (e.g. Expedia). Verification gateway, not a status program."}],isic:[{category:"other",name:"Student travel discounts",description:"Globally recognized student ID (130+ countries) giving discounts on flights (via airline student desks), rail (Eurail 25%, Trenitalia, Renfe), coach (National Express 33%, FlixBus 5-10%), Hostelworld 10% off hostels, plus reduced museum/attraction entry. ~\xa310-\xa325/yr, valid 12 months."}],student_beans:[{category:"other",name:"Verified-student travel discounts",description:"Free student-verification platform with travel codes: StudentUniverse up to 10%, Hotels.com 10%, Expedia 10% on hotels, plus rotating airline offers (e.g. United). Discount aggregator, no status."}],unidays:[{category:"other",name:"Verified-student travel & accommodation discounts",description:"Free student-verification platform with student-only codes across travel and accommodation (notably strong in Europe). Discount aggregator, no status."}],global_entry:[{category:"airport_security_credit",name:"Expedited US customs + included TSA PreCheck",description:"$120 for 5 years. Expedited US customs via kiosk/app on international arrival, expedited land-border entry from Mexico/Canada, and includes TSA PreCheck. Often reimbursed by premium travel cards. Not a status grant.",annual_value_usd:24}],tsa_precheck:[{category:"airport_security_credit",name:"Expedited TSA security screening",description:"About $76.75-$85 for 5 years (varies by enrollment provider; periodic $20-off promos). Dedicated lanes at 200+ US airports — keep shoes, belts, light jackets on and laptops/liquids in the bag; ~99% wait under 10 minutes. Not a status grant.",annual_value_usd:16}],nexus:[{category:"airport_security_credit",name:"US-Canada expedited border + included Global Entry & TSA PreCheck",description:"$50 for 5 years. Expedited US-Canada land/air/sea border crossings, plus included Global Entry (US customs kiosks) and TSA PreCheck — the cheapest path to all three. Not a status grant.",annual_value_usd:10}],sentri:[{category:"airport_security_credit",name:"US-Mexico expedited border + included Global Entry, TSA PreCheck & NEXUS",description:"$120 standard fee; dedicated US land-border lanes from Mexico, and includes Global Entry, TSA PreCheck and NEXUS benefits. Extra vehicle/person registration $42/vehicle. Not a status grant."}],priority_pass:[{category:"lounge_access",name:"Standard tier",description:"$99/year + $35 per visit (member and each guest). Pay-per-visit access to 1,300+ lounges worldwide."},{category:"lounge_access",name:"Standard Plus tier",description:"$329/year, includes 10 free member visits then $35 per visit; guests $35 each."},{category:"lounge_access",name:"Prestige tier",description:"$469/year, unlimited free member visits to 1,300+ lounges; guests still $35 each. No airline/hotel status conferred."}],loungekey:[{category:"lounge_access",name:"Card-linked lounge access",description:"Collinson-run network (same ~1,400 facilities as Priority Pass, stronger in the Americas). Cannot be bought standalone — access only via eligible Visa/Mastercard programs;
1 per-visit fee billed to the linked card. No conferred status."}],dragonpass:[{category:"lounge_access",name:"Standalone or card-linked lounge access",description:"1,300+ lounges (stronger in Europe/Asia-Pacific/Middle East); purchasable directly as a paid membership or pay-per-visit, or provided as a card perk. Also up to 25% off airport restaurants. No conferred status."}],plaza_premium_smart_traveller:[{category:"lounge_access",name:"Smart Traveller lounge discounts + points",description:"Free loyalty program: 20% off standard walk-in Plaza Premium Lounge rates (online and walk-in) across 20+ countries, 10% off Aerotel, and Arrture points (100 per lounge visit) redeemable on Plaza Premium services/merchandise. Discount + points, not lounge inclusion or elite status."}],hostelling_international:[{category:"other",name:"HI hostel member rates & travel discounts",description:"~$20/year (HI USA). 10% off every HI USA hostel stay plus member-only rates at 2,300+ hostels worldwide; partner travel discounts and reduced attraction/museum admission. No conferred status."}]},t=new Set(["hotel_booking_program","free_night_cert","lounge_access","airport_security_credit","companion_fare","checked_bag","priority_boarding"]),n=/hotel|resort|airline|flight|travel|fine hotels|the edit|sky club|lounge|global entry|tsa|clear/i;function s(e){var a;return(null!=(a=i[e])?a:[]).filter(e=>t.has(e.category)||"statement_credit"===e.category&&n.test("".concat(e.name," ").concat(e.description)))}},43652:(e,a,r)=>{r.d(a,{E:()=>n});var i=r(7837);let t={budget:"budget-friendly",moderate:"moderate",upscale:"upscale"};function n(e,a){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),n=e.filter(e=>"confirmed"===e.status),s=(0,i.cp)(r),o=n.filter(e=>{let a=Date.parse(e.reservedAt);return Number.isFinite(a)&&a>=s}),l=o.length>=5?"trailing24mo":"allTime",c="trailing24mo"===l?o:n,d=null;if(c.length>0){let e=c.map(e=>Date.parse(e.reservedAt)).filter(e=>Number.isFinite(e));if(e.length>0){let a=(0,i.Z)(Math.max(...e)-Math.min(...e),864e5);d=null!=a?(0,i.Rb)(c.length,a):null}}let u=c.map(e=>e.partySize).filter(e=>null!=e),m=(0,i.JZ)(u),p={},g={},h=new Map,y=new Map;for(let e of n){var f,b,v,_,w;let a=null!=(f=y.get(e.restaurantKey))?f:{count:0,displayName:e.restaurantName};if(a.count+=1,y.set(e.restaurantKey,a),e.cuisine){p[e.cuisine]=(null!=(b=p[e.cuisine])?b:0)+1;let a=null!=(v=h.get(e.cuisine))?v:{count:0,tierCounts:new Map};a.count+=1,e.priceTier&&a.tierCounts.set(e.priceTier,(null!=(_=a.tierCounts.get(e.priceTier))?_:0)+1),h.set(e.cuisine,a)}e.priceTier&&(g[e.priceTier]=(null!=(w=g[e.priceTier])?w:0)+1)}let C=[...y.values()].filter(e=>e.count>=2).sort((e,a)=>a.count-e.count).slice(0,5).map(e=>e.displayName),A=function(e,a,r){let i,n=[...e.entries()].sort((e,a)=>a[1].count-e[1].count),s=Object.entries(a).sort((e,a)=>a[1]-e[1]);if(0===n.length&&0===s.length)return null;if(n.length>0)i=n.slice(0,2).map(e=>{var a;let[r,i]=e,n=null==(a=[...i.tierCounts.entries()].sort((e,a)=>a[1]-e[1])[0])?void 0:a[0];return n?"fine_dining"===n?"".concat(r," fine dining"):"".concat(t[n]," ").concat(r):"".concat(r," dining")});else{let e=s[0][0];i=["fine_dining"===e?"fine dining":"".concat(t[e]," dining")]}let o=["Mostly ".concat(i.join(" and "))];return null!=r&&o.push("usually a table for ".concat(Math.round(r))),o.join(", ")}(h,g,m),k={...{reservationsPerYear:d,typicalPartySize:m,cuisineHistogram:p,priceTierHistogram:g,topRepeatVenues:C,summary:A,basis:l,sampleSize:c.length}};for(let e of Object.keys(a))e in k&&(k[e]=a[e]);return k}},54150:(e,a,r)=>{r.d(a,{gm:()=>L,kx:()=>x,Qy:()=>U,Dt:()=>E,fetchLodgingStays:()=>G,CH:()=>M,tP:()=>R,S3:()=>I,GO:()=>B,MT:()=>N,GS:()=>D,qJ:()=>F,qE:()=>$});var i=r(12832),t=r(16320),n=r(66787),s=r(4965),o=r(7837),l=r(43652),c=r(78267);let d={A:"window",F:"window",C:"aisle",D:"aisle",B:"middle",E:"middle"};var u=r(6058);function m(e){var a,r,i;let t=(null!=(r=null!=(a=e.propertyName)?a:e.brand)?r:"").trim().toLowerCase(),n=(null!=(i=e.city)?i:"").trim().toLowerCase();return"".concat(t,"::").concat(n)}function p(e){let a=e.checkIn?Date.parse(e.checkIn):NaN;if(!Number.isFinite(a))return null;let r=e.checkOut?Date.parse(e.checkOut):NaN,i=Number.isFinite(r)&&r>a?r:a+1;return{start:a,end:i}}var g=r(89334),h=r(75930),y=r(80236),f=r(19789),b=r(2380);function v(e,a){if(!e)return!1;let r=Date.parse(e);return Number.isFinite(r)&&r>=a}function _(e,a,r){let i=e.get(a);
1return i||(i={count:0,lastSeenAt:null},e.set(a,i)),r&&(null===i.lastSeenAt||r>i.lastSeenAt)&&(i.lastSeenAt=r),i}function w(e,a,r){let i=function(e){let a=0;for(let r of e.values())a+=r.count;return a}(e)>=3,t=function(e){let a=null;for(let s of e){var r,i,t,n;let[e,o]=s;if(!a){a=s;continue}let[l,c]=a;(o.count>c.count||o.count===c.count&&(null!=(r=o.lastSeenAt)?r:"")>(null!=(i=c.lastSeenAt)?i:"")||o.count===c.count&&(null!=(t=o.lastSeenAt)?t:"")===(null!=(n=c.lastSeenAt)?n:"")&&e<l)&&(a=s)}return a}(i?e:a);if(!t)return;let[n,s]=t;return{provider:n,displayProvider:function(e){let a=b.ln.find(a=>a.name.toLowerCase()===e);return a?a.name:e}(n),count:s.count,lastSeenAt:s.lastSeenAt,windowed:i,evidence:r}}function C(e,a,r){let i=[];for(let a of e){if(a.program_type!==r||"other"===a.traveler_scope)continue;let e=(0,f.mu)(r,a.provider);e&&i.push({program_type:r,provider:e,last_seen_at:a.last_seen_at})}let t=i.filter(e=>v(e.last_seen_at,a)),n=e=>{let a=new Map;for(let r of(0,f.uL)(e))a.set(r.provider,{count:r.bookings,lastSeenAt:r.last_seen_at});return a};return w(n(t),n(i),"emails")}var A=r(1542);let k={milesFlown:null,routeCoverage:{routeLegs:0,totalLegs:0},nightsAway:null,takeoffs:null,countriesVisited:null,citiesVisited:null,airlinesFlown:null};function P(e){return null==e||0===e.trim().length}async function S(e,a){let r=e.filter(e=>"other"!==e.travelerScope),i=a.filter(e=>"other"!==e.travelerScope),n=(0,o.X0)(r),s=0;for(let e of n)for(let a of e)Number.isFinite(a.nights)&&(s+=a.nights);let l=n.length>=3?s:null,c=i.length>=3?i.length:null,d=new Set,u=new Set;for(let e of r){let a=(0,t.Xg)(e.city,e.country);a.country&&d.add(a.country),a.city&&u.add(a.city)}let m=d.size>=2?d.size:null,p=u.size>=3?u.size:null,g=new Set;for(let e of i){let a=(0,t.A8)(e.airline);a&&g.add(a)}let h=g.size>=3?g.size:null,y=new Map,f=async e=>{var a;if(y.has(e))return null!=(a=y.get(e))?a:null;let r=await (0,A.resolveEndpointCoords)(e);return y.set(e,r),r},b=0,v=0;for(let e of i){if(P(e.origin)||P(e.destination))continue;let a=await f(e.origin.trim()),r=await f(e.destination.trim());a&&r&&(v+=1,b+=.621371*(0,A.haversineKm)(a[0],a[1],r[0],r[1]))}return{milesFlown:v>=3?Math.round(b):null,routeCoverage:{routeLegs:v,totalLegs:i.length},nightsAway:l,takeoffs:c,countriesVisited:m,citiesVisited:p,airlinesFlown:h}}let T={medianDays:null,buckets:[0,0,0,0,0],sampleSize:0,leadTimes:[],outlier:null};async function M(e){var a,r,n,A,P,M,D,x;let $=(0,i.createClient)(),[N,R,B,U,L,F,I,H]=await Promise.all([$.from("user_loyalty_memberships").select("*").eq("user_id",e).neq("review_state","dismissed").order("created_at",{ascending:!0}),$.from("user_cards_held").select("*").eq("user_id",e).order("created_at",{ascending:!0}),$.from("user_travel_bookings_seen").select("program_type, provider, last_seen_at, traveler_scope").eq("user_id",e),$.from("user_card_account_anchors").select("*").eq("user_id",e),$.from("trip_email_artifacts").select("location_text, start_datetime, created_at, email_sent_at, traveler_scope").eq("user_id",e).order("created_at",{ascending:!1}).limit(120),G(e),E(e),$.from("user_flight_legs").select("seat, airline, cabin, flight_date, booking_ref, traveler_scope, origin, destination").eq("user_id",e)]),q=await $.from("profiles").select("travel_identity").eq("id",e).maybeSingle();if(N.error)throw N.error;if(R.error)throw R.error;let O=B.error?[]:null!=(r=B.data)?r:[],z=U.error?[]:null!=(n=U.data)?n:[],V=L.error?[]:null!=(A=L.data)?A:[],W=function(e,a){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:12,i=new Map,t=e=>{var a,r,t;let n=null==e?void 0:e.trim();if(!n)return;let s=null!=(r=null==(a=n.split(",")[0])?void 0:a.trim())?r:"";if(!s||/^\d/.test(s)||s.length>40||/\b(to|via|→)\b/i.test(s)&&/\([A-Z]{3}\)/.test(n)||(null!=(t=s.match(/airport/gi))?t:[]).length>=2)return;let o=s.toLowerCase(),l=s.replace(/\([A-Za-z]{2,4}\)|[A-Za-z]+/g,e=>{if(e.startsWith("(")&&e.endsWith(")")){let a=e.slice(1,-1);return a===a.toUpperCase()?"(".concat(a,")"):"(".concat(a.charAt(0).toUpperCase()).concat(a.slice(1).toLowerCase(),")")}return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}),c=i.get(o);(!c||l.length>c.display.length)&&i.set(o,{key:o,display:l})};for(let e of a){var n,s;((null==(n=e.city)?void 0:n.trim())||(null==(s=e.propertyName)?void 0:s.trim()))&&t(e.city)}for(let a of e)t(a);return[...i.values()].map(e=>e.display).slice(0,r)}(V.map(e=>e.location_text),F.map(e=>{var a;return{city:e.city,propertyName:null!=(a=e.propertyName)?a:e.brand}})),j=function(e){let a=[];for(let r of e){if(function(e){var a,r,i;let t=(null!=(r=null!=(a=e.propertyName)?a:e.brand)?r:"").trim(),n=(null!=(i=e.city)?i:"").trim();return!t&&!n}(r))continue;let e=m(r);a.some(a=>m(a)===e&&function(e,a){var r,i;let t=p(e),n=p(a);if(t&&n)return t.start<n.end&&n.start<t.end;let s=(null!=(r=e.checkIn)?r:"").trim(),o=(null!=(i=a.checkIn)?i:"").trim();return s.length>0&&s===o}(a,r))||a.push(r)}return a}(F),J=[...j].sort((e,a)=>{var r,i;return(null!=(r=e.checkIn)?r:"").localeCompare(null!=(i=a.checkIn)?i:"")}),K=(0,o.computeTravelStyle)(J,{}),Q=V.length>0?(0,c.$x)(V):T,X=(0,l.E)(I,{}).summary,Y=null!=(P=H.data)?P:[],Z=H.error?null:function(e){var a;let r=e.map(e=>(function(e){var a;if(!e)return"unknown";let r=e.trim().match(/([A-Za-z])\s*$/);return r&&null!=(a=d[r[1].toUpperCase()])?a:"unknown"})((0,t.k3)(e.seat))).filter(e=>"unknown"!==e);if(r.length<5)return null;let i={};for(let e of r)i[e]=(null!=(a=i[e])?a:0)+1;let[n,s]=Object.entries(i).sort((e,a)=>a[1]-e[1])[0];return s/r.length>=.7?n:null}(Y),ee=H.error?null:(0,u.je)(Y.map(e=>({airline:e.airline,cabin:e.cabin,flightDate:e.flight_date,travelerScope:e.traveler_scope}))),ea=H.error?[]:Y,er=S(J,ea.map(e=>({airline:e.airline,origin:e.origin,destination:e.destination,travelerScope:e.traveler_scope}))).catch(()=>k),ei=null!=(M=N.data)?M:[],et=(null!=(D=R.data)?D:[]).filter(e=>null==e.dismissed_at),en=(0,g.up)(ei),es=(0,g.oo)(ei),eo=function(e){let a=function(e){let a=new Date(e);return a.setUTCMonth(a.getUTCMonth()-24),a.getTime()}
1(e.nowMs),r=function(e){let a=null;for(let r of e){let e=(0,h.Rx)(r),i=function(e){var a,r;let i=b.L0.find(a=>a.product===e.card_product);return null!=(r=null!=(a=null==i?void 0:i.displayName)?a:e.display_name)?r:e.card_product}(r);(!a||e>a.credits||e===a.credits&&0>i.localeCompare(a.displayName))&&(a={product:r.card_product,displayName:i,credits:e})}return a}(e.cards),i=(0,h.it)(e.cards),t=r?Math.max(0,i-r.credits):0,n=e.membershipRows.filter(y.kF).length,s={},o=function(e,a){let r=[];for(let a of e){if("other"===a.traveler_scope)continue;let e=(0,f.mu)("air",a.airline);e&&r.push({provider:e,flightDate:a.flight_date,bookingRef:a.booking_ref})}let i=new Map,t=new Map,n=new Map,s=new Map;for(let e of r){var o;let r=(null==(o=e.bookingRef)?void 0:o.trim().toUpperCase())||null,l=(a,i)=>{let t=_(a,e.provider,e.flightDate);if(null===r){t.count+=1;return}let n=i.get(e.provider);n||(n=new Set,i.set(e.provider,n)),n.has(r)||(n.add(r),t.count+=1)};l(t,s),v(e.flightDate,a)&&l(i,n)}return w(i,t,"legs")}(e.flightLegs,a);o&&(s.air=o);let l=function(e,a){let r=new Map,i=new Map;for(let t of e){if("other"===t.travelerScope)continue;let e=(0,f.mu)("hotel",t.brand);e&&(_(i,e,t.checkIn).count+=1,v(t.checkIn,a)&&(_(r,e,t.checkIn).count+=1))}return w(r,i,"stays")}(e.lodgingStays,a);l&&(s.hotel=l);let c=C(e.bookingsSeen,a,"car");c&&(s.car=c);let d=C(e.bookingsSeen,a,"rail");d&&(s.rail=d);let u=C(e.bookingsSeen,a,"cruise");return u&&(s.cruise=u),{heroCard:r,creditsTotal:i,otherCredits:t,statusCount:n,cardCount:new Set(e.cards.map(e=>e.card_product)).size,frequency:s}}({membershipRows:en,cards:et,bookingsSeen:O,flightLegs:ea,lodgingStays:j,nowMs:Date.now()}),el=await er;return{memberships:ei,membershipRows:en,membershipGroups:es,cards:et,bookingsSeen:O,anchors:z,destinations:W,tripShapes:K.tripShapes,medianTripLength:K.medianTripLength,rentalShare:K.rentalShare,bookingRhythm:Q,seatPreference:Z,cabinMix:ee,diningSummary:X,walletInsights:(0,s.N)(en,et),travelIdentity:q.error?{}:null!=(x=null==(a=q.data)?void 0:a.travel_identity)?x:{},projection:eo,wrappedStats:el}}async function G(e){let a=(0,i.createClient)(),{data:r,error:t}=await a.from("user_lodging_stays").select("lodging_kind, tier, city, country, check_in, check_out, nights, guests, total_amount, currency, is_award, traveler_scope, brand, property_name").eq("user_id",e).order("check_in",{ascending:!1,nullsFirst:!1});return t?[]:(null!=r?r:[]).map(e=>{var a;return{lodgingKind:e.lodging_kind,tier:e.tier,city:e.city,country:e.country,checkIn:e.check_in,checkOut:e.check_out,nights:e.nights,guests:e.guests,totalAmount:e.total_amount,currency:e.currency,isAward:e.is_award,travelerScope:e.traveler_scope,brand:e.brand,propertyName:null!=(a=e.property_name)?a:null}})}async function E(e){var a;let r=(0,i.createClient)(),{data:t,error:n}=await r.from("user_dining_reservations").select("platform, restaurant_key, restaurant_name, city, reserved_at, party_size, status").eq("user_id",e);if(n)return[];let s=null!=t?t:[];if(0===s.length)return[];let o=[...new Set(s.map(e=>e.restaurant_key))],{data:l,error:c}=await r.from("restaurant_classifications").select("restaurant_key, city, cuisine, price_tier").in("restaurant_key",o),d=new Map;for(let e of c?[]:null!=l?l:[])d.set("".concat(e.restaurant_key,"::").concat(null!=(a=e.city)?a:""),e);return s.map(e=>{var a,r,i;let t=d.get("".concat(e.restaurant_key,"::").concat(null!=(a=e.city)?a:""));return{platform:e.platform,restaurantKey:e.restaurant_key,restaurantName:e.restaurant_name,city:e.city,reservedAt:e.reserved_at,partySize:e.party_size,status:e.status,cuisine:null!=(r=null==t?void 0:t.cuisine)?r:null,priceTier:null!=(i=null==t?void 0:t.price_tier)?i:null}})}async function D(e,a){if(!(await fetch("/api/profile/wallet/travel-style-correction",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({trait:e,value:a})})).ok)throw Error("Could not save your correction")}async function x(e,a){let r=(0,i.createClient)(),s=(0,t.O4)(a),{error:o}=await r.from("user_loyalty_memberships").upsert({user_id:e,...s,updated_at:new Date().toISOString()},{onConflict:"user_id,program_name,membership_number"});if(o)throw o;(0,n._V)()}async function $(e,a){let r=(0,i.createClient)(),{error:t}=await r.from("user_loyalty_memberships").update({...a,updated_at:new Date().toISOString()}).eq("id",e);if(t)throw t;(0,n._V)()}async function N(e,a){return $(e,{review_state:a})}async function R(e){let a=await fetch("/api/profile/travel-identity",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!a.ok)throw Error("travel-identity save failed: ".concat(a.status))}async function B(e,a){let r=(0,i.createClient)(),{error:t}=await r.from("user_loyalty_memberships").update({preference_rank:a,updated_at:new Date().toISOString()}).eq("id",e);if(t)throw t;(0,n._V)()}async function U(e){return N(e,"dismissed")}async function L(e,a){var r;let t=(0,i.createClient)(),{error:s}=await t.from("user_cards_held").upsert({user_id:e,card_product:a.product,display_name:a.displayName,account_last4:null!=(r=a.last4)?r:null,dismissed_at:null,updated_at:new Date().toISOString()},{onConflict:"user_id,card_product"});if(s)throw s;(0,n._V)()}async function F(e,a,r,t,s){let o=(0,i.createClient)().from("user_card_account_anchors").update({identified_kind:r,identified_product:t,identified_at:new Date().toISOString()}).eq("user_id",e).eq("issuer",a);s&&"unknown"!==s&&(o=o.eq("account_last4",s));let{error:l}=await o;return l?(console.warn("[wallet] stampAnchorVerdict failed",l.message),{ok:!1,error:l.message}):((0,n._V)(),{ok:!0})}async function I(e,a){var r;let t=(0,i.createClient)(),s=await t.from("user_cards_held").select("card_product, dismissed_at").eq("user_id",e);if(s.error)throw s.error;let o=null!=(r=s.data)?r:[],l=o.filter(e=>null==e.dismissed_at).map(e=>e.card_product),c=new Set(o.filter(e=>null!=e.dismissed_at).map(e=>e.card_product)),{toAdd:d,toRemove:u}
1=function(e,a){let r=new Set(e),i=new Set(a);return{toAdd:a.filter(e=>!r.has(e)),toRemove:e.filter(e=>!i.has(e))}}(l,a.map(e=>e.product));if(u.length>0){let a=await t.from("user_cards_held").update({dismissed_at:new Date().toISOString(),updated_at:new Date().toISOString()}).eq("user_id",e).in("card_product",u).is("dismissed_at",null);if(a.error)throw a.error}let m=d.filter(e=>c.has(e)),p=d.filter(e=>!c.has(e));if(m.length>0){let a=await t.from("user_cards_held").update({dismissed_at:null,updated_at:new Date().toISOString()}).eq("user_id",e).in("card_product",m);if(a.error)throw a.error}if(p.length>0){let r=new Set(p),i=a.filter(e=>r.has(e.product)).map(a=>({user_id:e,card_product:a.product,display_name:a.displayName,updated_at:new Date().toISOString()})),n=await t.from("user_cards_held").insert(i);if(n.error)throw n.error}(d.length>0||u.length>0)&&(0,n._V)()}},56157:(e,a,r)=>{r.d(a,{nD:()=>c,r0:()=>d,IQ:()=>h,fG:()=>y,o6:()=>m,e_:()=>f,GG:()=>g});var i=r(65005);let t=new Set(["airline","hotel","car","rail","cruise"]),n=[/priority pass/i,/\blounge\b/i,/global entry/i,/tsa\s*pre/i,/\bprecheck\b/i,/\bclear\b/i,/\bnexus\b/i,/\bsentri\b/i,/global services/i];var s=r(16320),o=r(80236),l=r(89334);let c={airline:"Airlines",hotel:"Hotels",car:"Rental cars",rail:"Rail",cruise:"Cruise",other:"Other"},d=["airline","hotel","car","rail","cruise","other"];function u(e){return"derived"===e.source||!!e.tier||!!e.membership_number}function m(e){return"manual"===e.source||function(e,a){let r=(null!=a?a:"").trim();if(r){let e=(0,i.YD)(r);if(e&&("none"===e.signal||"non_travel"===e.category))return!1}return!!t.has(e)||"other"===e&&!!r&&n.some(e=>e.test(r))}(e.program_type,e.program_name)}function p(e){var a,r,i;let t=(0,s.T6)(e.program_name);if(!t)return!(null==(a=e.tier)?void 0:a.trim());if(!(null==(r=t.tiers)?void 0:r.length))return!1;let n=null==(i=e.tier)?void 0:i.trim().toLowerCase();return!n||!t.tiers.some(e=>e.toLowerCase()===n)}function g(e){return e.filter(e=>"proposed"===e.review_state&&u(e)&&m(e)&&!p(e)&&!(0,o.Y3)(e))}function h(e){return e.filter(e=>"proposed"===e.review_state&&u(e)&&m(e)&&!p(e)&&(0,o.Y3)(e))}function y(e){return(0,l.up)(e.filter(e=>"confirmed"===e.review_state&&m(e)))}function f(e){return(0,l.up)(g(e))}},65005:(e,a,r)=>{r.d(a,{Hu:()=>u,I4:()=>c,YD:()=>l,oY:()=>d});let i=[],t=[{name:"American Airlines AAdvantage",category:"airline",catalogued:!0,aliases:["american","american airlines","aadvantage","aa"],tiers:["Member","Gold","Platinum","Platinum Pro","Executive Platinum","Concierge Key"],defaultTier:"Member",firstMeaningfulTier:"Gold",cardGranted:i,signal:"strong",notes:"No AAdvantage co-brand confers status — the Citi Executive card buys Admirals Club access and Loyalty Point boosts, not a tier. So any AAdvantage tier at or above Gold is genuinely flown/spent. Concierge Key is invitation-only and unpublished."},{name:"Delta SkyMiles",category:"airline",catalogued:!0,aliases:["delta","delta air lines","skymiles","medallion"],tiers:["Member","Silver Medallion","Gold Medallion","Platinum Medallion","Diamond Medallion","Delta 360"],defaultTier:"Member",firstMeaningfulTier:"Silver Medallion",cardGranted:i,signal:"strong",notes:"Delta Amex cards give MQD head starts and spend accelerators, never a tier outright. Delta 360\xb0 is invitation-only. PROGRAM_CATALOG omits both Member and Delta 360."},{name:"United MileagePlus",category:"airline",catalogued:!0,aliases:["united","united airlines","mileageplus","mileage plus"],tiers:["Member","Premier Silver","Premier Gold","Premier Platinum","Premier 1K","Global Services"],defaultTier:"Member",firstMeaningfulTier:"Premier Silver",cardGranted:i,signal:"strong",notes:"United co-brands grant PQP toward status, not status. Global Services is invitation-only with unpublished criteria."},{name:"Alaska Airlines Mileage Plan",category:"airline",catalogued:!0,aliases:["alaska","alaska airlines","mileage plan","atmos","atmos rewards"],tiers:["Member","Silver","Gold","Platinum","Titanium"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",legacyTiers:["MVP","MVP Gold","MVP Gold 75K","MVP Gold 100K"],notes:"REBRAND: Mileage Plan and HawaiianMiles merged into Atmos Rewards (launched Aug 2025); the Silver/Gold/Platinum/Titanium ladder at 20k/40k/80k/135k status points is the one in force for 2026. PROGRAM_CATALOG still carries the retired MVP ladder, so mail from either era must resolve — hence legacyTiers. The Alaska Visa gives a companion fare and status-point boosts, not a tier."},{name:"Hawaiian Airlines HawaiianMiles (Pualani / Atmos Rewards)",category:"airline",catalogued:!0,aliases:["hawaiian","hawaiian airlines","hawaiianmiles","pualani"],tiers:["Member","Silver","Gold","Platinum","Titanium"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",legacyTiers:["Premier Club","Pualani Gold","Pualani Platinum"],notes:"Same program as Alaska now — HawaiianMiles folded into Atmos Rewards. Kept as a distinct entry only because emails still arrive branded Hawaiian/Pualani. Treat a Pualani tier as its Atmos equivalent, not as a second airline status."},{name:"Southwest Rapid Rewards",category:"airline",catalogued:!0,aliases:["southwest","southwest airlines","rapid rewards"],tiers:["Member","A-List","A-List Preferred"],defaultTier:"Member",firstMeaningfulTier:"A-List",cardGranted:i,signal:"strong",notes:"Companion Pass is a benefit, not a tier — never store it in the tier field. A-List is reachable via $75k/yr Chase Sapphire Reserve spend, which is spend-gated rather than card-granted, so it is not listed in cardGranted."},{name:"JetBlue TrueBlue",category:"airline",catalogued:!0,aliases:["jetblue","jet blue","trueblue","mosaic"],tiers:["Member","Mosaic 1","Mosaic 2","Mosaic 3","Mosaic 4"],defaultTier:"Member",firstMeaningfulTier:"Mosaic 1",cardGranted:i,signal:"strong",notes:"JetBlue co-brands earn tiles toward Mosaic; reaching Mosaic 1 on card spend alone takes ~$50k, so it is spend-gated, not conferred."},{name:"Air Canada Aeroplan",category:"airline",catalogued:!0,aliases:["air canada","aeroplan","aeroplan 25k","super elite"],tiers:["Member","25K","35K","50K","75K","Super Elite"],defaultTier:"Member",firstMeaningfulTier:"25K",cardGranted:[{tier:"25K",grant:"automatic",cards:["chase_aeroplan"],note:"US Chase Aeroplan card confers 25K on approval."},{tier:"25K",grant:"enrollment",cards:["amex_ca_aeroplan_reserve","td_aeroplan_visa_infinite_privilege","cibc_aeroplan_visa_infinite_privilege"],note:"Canadian premium Aeroplan cards grant 25K on spend thresholds (typically $25k-$40k/yr); treat a bare 25K as possibly card-derived."}],signal:"strong",notes:"The most card-contaminated rung is 25K. 35K and above are effectively flown. Super Elite (100K) is the published top tier, not invitation-only."},{name:"WestJet Rewards",category:"airline",catalogued:!0,aliases:["westjet","west jet","westjet rewards","westjet dollars","teal"],tiers:["Teal","Silver","Gold","Platinum","Platinum Elite"],defaultTier:"Teal",firstMeaningfulTier:"Silver",cardGranted:[{tier:"Silver",grant:"automatic",cards:["WestJet RBC World Elite Mastercard for Business"],note:"Silver from account approval through Dec 31 of the following year; retained thereafter on $30k/yr spend."}],signal:"weak",notes:"THE canonical false-status case. Teal is the free entry rung — every WestJet account holder is Teal, it requires $0 of tier-qualifying spend, and it must never be surfaced as a status or asked about in onboarding. Silver starts at $4,000 tier-qualifying spend. Platinum Elite is a fifth, invitation-only tier above Platinum and is absent from PROGRAM_CATALOG."},{name:"Porter Airlines VIPorter",category:"airline",catalogued:!1,aliases:["porter","porter airlines","viporter","vi porter"],tiers:["Member","Passport","Venture","Ascent","First"],defaultTier:"Member",firstMeaningfulTier:"Passport",cardGranted:[{tier:"Passport",grant:"automatic",cards:["BMO VIPorter Mastercard"]},{tier:"Venture",grant:"automatic",cards:["BMO VIPorter World Elite Mastercard"]}],signal:"strong",notes:"Spend ladder is $2k / $3k / $6k / $10k annually. Not in PROGRAM_CATALOG at all as of this writing. Passport and Venture are both instantly card-granted, so only Ascent and above are reliable evidence of flying Porter."},{name:"Frontier Airlines FRONTIER Miles",category:"airline",catalogued:!0,aliases:["frontier","frontier airlines","frontier miles"],tiers:["Member","Elite Silver","Elite Gold","Elite Platinum","Elite Diamond"],defaultTier:"Member",firstMeaningfulTier:"Elite Silver",cardGranted:i,signal:"strong",notes:"Elite Silver/Gold/Platinum/Diamond correspond to the 20k/50k/75k/100k Elite Status Point marketing names; emails use both forms interchangeably."},{name:"Spirit Airlines Free Spirit",category:"airline",catalogued:!0,aliases:["spirit","spirit airlines","free spirit"],tiers:["Member","Silver","Gold"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Spirit's co-brand has historically included a 
1status shortcut; not re-verified for 2026, so no cardGranted entry is asserted."},{name:"Allegiant Allways Rewards",category:"airline",catalogued:!1,aliases:["allegiant","allegiant air","allways rewards","allways"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:'No elite ladder — Allways is a free points account. Any "status" text in an Allegiant email is card marketing, not a tier.'},{name:"Sun Country Rewards",category:"airline",catalogued:!1,aliases:["sun country","sun country airlines","sun country rewards"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak"},{name:"Breeze Airways BreezePoints",category:"airline",catalogued:!1,aliases:["breeze","breeze airways","breezepoints","breeze points"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak"},{name:"British Airways Executive Club (The British Airways Club / Avios)",category:"airline",catalogued:!0,aliases:["british airways","executive club","the british airways club","ba club","avios"],tiers:["Blue","Bronze","Silver","Gold","Gold Guest List","Premier"],defaultTier:"Blue",firstMeaningfulTier:"Bronze",cardGranted:i,signal:"strong",notes:'Rebranded from Executive Club to "The British Airways Club" in April 2025; tier NAMES were unchanged, but qualification became spend-based (1 Tier Point = GBP 1) on an Apr 1 - Mar 31 year. Blue is the free signup rung. Premier is invitation-only and unpublished; PROGRAM_CATALOG stops at Gold Guest List.'},{name:"Air France-KLM Flying Blue",category:"airline",catalogued:!0,aliases:["flying blue","air france","klm","air france klm"],tiers:["Explorer","Silver","Gold","Platinum","Ultimate"],defaultTier:"Explorer",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Explorer is the free rung. Ultimate is invitation-only."},{name:"Lufthansa Miles & More",category:"airline",catalogued:!0,aliases:["miles & more","miles and more","lufthansa","swiss","austrian airlines"],tiers:["Member","Frequent Traveller","Senator","HON Circle"],defaultTier:"Member",firstMeaningfulTier:"Frequent Traveller",cardGranted:i,signal:"strong",notes:"Shared program across Lufthansa, SWISS, Austrian, Brussels, Eurowings, Discover, LOT and others — a Miles & More status is airline-group-wide, so do not treat a SWISS-branded and a Lufthansa-branded row as two statuses."},{name:"LOT Polish Airlines Miles & More",category:"airline",catalogued:!0,aliases:["lot","lot polish airlines","polish airlines"],tiers:["Member","Frequent Traveller","Senator","HON Circle"],defaultTier:"Member",firstMeaningfulTier:"Frequent Traveller",cardGranted:i,signal:"strong",notes:"Not a separate program — the same Miles & More account. Duplicate of the Lufthansa entry by design, mirroring PROGRAM_CATALOG."},{name:"Emirates Skywards",category:"airline",catalogued:!0,aliases:["emirates","skywards"],tiers:["Blue","Silver","Gold","Platinum"],defaultTier:"Blue",firstMeaningfulTier:"Silver",cardGranted:[{tier:"Silver",grant:"automatic",cards:["barclays_emirates_skywards_rewards"]},{tier:"Gold",grant:"automatic",cards:["barclays_emirates_skywards_premium"]}],signal:"strong",notes:"Blue is free on signup. Because the US Barclays co-brands hand out Silver and even Gold, Emirates status below Platinum is weak evidence of actually flying Emirates."},{name:"Qatar Airways Privilege Club",category:"airline",catalogued:!0,aliases:["qatar","qatar airways","privilege club"],tiers:["Burgundy","Silver","Gold","Platinum"],defaultTier:"Burgundy",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Burgundy is the free entry rung — the Qatar equivalent of WestJet Teal."},{name:"Turkish Airlines Miles&Smiles",category:"airline",catalogued:!0,aliases:["turkish airlines","turkish","miles&smiles","miles and smiles"],tiers:["Classic","Classic Plus","Elite","Elite Plus"],defaultTier:"Classic",firstMeaningfulTier:"Classic Plus",cardGranted:i,signal:"strong",notes:"Classic is the free rung despite sounding like a tier."},{name:"ANA Mileage Club",category:"airline",catalogued:!0,aliases:["ana","ana mileage club","all nippon airways","amc"],tiers:["Member","Bronze","Platinum","Diamond"],defaultTier:"Member",firstMeaningfulTier:"Bronze",cardGranted:i,signal:"strong",notes:"Super Flyers Card is a lifetime-Platinum-equivalent obtained by qualifying once then holding a card — if it appears, treat it as Platinum, not as its own tier."},{name:"JAL Mileage Bank",category:"airline",catalogued:!0,aliases:["jal","jal mileage bank","japan airlines","jmb"],tiers:["Member","Crystal","Sapphire","JGC Premier","Diamond"],defaultTier:"Member",firstMeaningfulTier:"Crystal",cardGranted:i,signal:"strong",notes:"JAL Global Club (JGC) is a lifetime membership earned once via Sapphire, not a rung on the annual ladder."},{name:"Singapore Airlines KrisFlyer",category:"airline",catalogued:!0,aliases:["singapore airlines","krisflyer","pps club"],tiers:["KrisFlyer","Elite Silver","Elite Gold","PPS Club","Solitaire PPS Club"],defaultTier:"KrisFlyer",firstMeaningfulTier:"Elite Silver",cardGranted:i,signal:"strong",notes:'Base "KrisFlyer" is just the account. PPS Club is technically a separate premium-cabin-spend program stacked above KrisFlyer Elite Gold, but it ranks above it in every practical sense, so it stays on one ladder here.'},{name:"Qantas Frequent Flyer",category:"airline",catalogued:!0,aliases:["qantas","qantas frequent flyer","qantas points"],tiers:["Bronze","Silver","Gold","Platinum","Platinum One"],defaultTier:"Bronze",f
1irstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Qantas Bronze is the free join rung — a Bronze row is an account, not status. Chairman's Lounge sits above Platinum One and is invitation-only, unpublished, and never mentioned in member email."},{name:"Cathay (Asia Miles)",category:"airline",catalogued:!0,aliases:["cathay","cathay pacific","asia miles"],tiers:["Green","Silver","Gold","Diamond"],defaultTier:"Green",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:'Post-2022 unified Cathay membership absorbed the old Marco Polo Club. Green is the free rung, so "Cathay Green" is the Cathay version of WestJet Teal.'},{name:"EVA Air Infinity MileageLands",category:"airline",catalogued:!0,aliases:["eva air","infinity mileagelands","mileagelands"],tiers:["Green","Silver","Gold","Diamond"],defaultTier:"Green",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong"},{name:"Korean Air SKYPASS",category:"airline",catalogued:!0,aliases:["korean air","skypass","morning calm"],tiers:["Member","Morning Calm Club","Morning Calm Premium Club","Million Miler Club"],defaultTier:"Member",firstMeaningfulTier:"Morning Calm Club",cardGranted:i,signal:"strong",notes:"Million Miler is lifetime, not annual."},{name:"Etihad Guest",category:"airline",catalogued:!0,aliases:["etihad","etihad guest"],tiers:["Bronze","Silver","Gold","Platinum","Emerald"],defaultTier:"Bronze",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Bronze is the free rung. Emerald is invitation-only."},{name:"Iberia Plus (Club Iberia Plus)",category:"airline",catalogued:!0,aliases:["iberia","iberia plus","club iberia plus"],tiers:["Clasica","Plata","Oro","Platino","Platino Prime","Infinita","Infinita Prime"],defaultTier:"Clasica",firstMeaningfulTier:"Plata",cardGranted:i,signal:"strong",notes:'Clasica ("Classic") is the free rung. Infinita and Infinita Prime are invitation-only. Spanish-language email will render these with accents (Cl\xe1sica); normalize.ts strips punctuation, so both forms resolve.'},{name:"Aer Lingus AerClub",category:"airline",catalogued:!0,aliases:["aer lingus","aerclub"],tiers:["Green","Silver","Platinum","Concierge"],defaultTier:"Green",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Concierge is invitation-only."},{name:"Virgin Atlantic Flying Club",category:"airline",catalogued:!0,aliases:["virgin atlantic","flying club"],tiers:["Red","Silver","Gold"],defaultTier:"Red",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:'Red is the free rung — a very common false positive because "Red" reads like a tier.'},{name:"Finnair Plus",category:"airline",catalogued:!0,aliases:["finnair","finnair plus"],tiers:["Basic","Silver","Gold","Platinum","Platinum Lumo"],defaultTier:"Basic",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Platinum Lumo is invitation-only."},{name:"SAS EuroBonus",category:"airline",catalogued:!0,aliases:["sas","scandinavian airlines","eurobonus"],tiers:["Member","Silver","Gold","Diamond","Pandion"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Pandion is invitation-only. SAS left Star Alliance for SkyTeam in Sep 2024 — partner benefits in older mail are stale."},{name:"Aegean Miles+Bonus",category:"airline",catalogued:!0,aliases:["aegean","aegean airlines","miles+bonus","olympic air"],tiers:["Blue","Silver","Gold","Platinum"],defaultTier:"Blue",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Regional oddity worth knowing: Aegean Gold confers Star Alliance Gold at unusually low thresholds and is a well-known status-shopping target, so Aegean Gold implies less flying than, say, United Premier Gold."},{name:"TAP Miles&Go",category:"airline",catalogued:!0,aliases:["tap","tap air portugal","miles&go","miles and go"],tiers:["Member","Silver","Gold","Navigator"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Navigator is invitation-only."},{name:"ITA Airways Volare",category:"airline",catalogued:!0,aliases:["ita airways","volare","alitalia"],tiers:["Smart","Plus","Premium","Executive"],defaultTier:"Smart",firstMeaningfulTier:"Plus",cardGranted:i,signal:"strong",notes:"Smart is the free rung — its name looks like a paid product tier. Alitalia MilleMiglia balances migrated here; legacy MilleMiglia tier names in old mail are not Volare tiers."},{name:"Aeromexico Rewards (Club Premier)",category:"airline",catalogued:!0,aliases:["aeromexico","aeromexico rewards","club premier"],tiers:["Member","Plata (Silver)","Oro (Gold)","Platino (Platinum)","Titanio (Titanium)"],defaultTier:"Member",firstMeaningfulTier:"Plata (Silver)",cardGranted:i,signal:"strong",notes:'Tier labels are bilingual in PROGRAM_CATALOG and reproduced verbatim here; Spanish-only mail says "Plata"/"Oro", which normalize.ts substring-snaps onto these rungs.'},{name:"Avianca LifeMiles",category:"airline",catalogued:!1,aliases:["avianca","lifemiles","life miles"],tiers:["Member","Silver","Gold","Diamond"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"weak",notes:'Not in PROGRAM_CATALOG. Signal is weak rather than strong because LifeMiles is heavily used as a points-buying/redemption currency by people who never fly Avianca — an account here often means "bought miles for an award", not "flew".'},{name:"LATAM Pass",category:"airline",catalogued:!1,aliases:["latam","latam airlines","latam pass","latam fidelidade"],tiers:["Member","Gold","Platinum","Black","Black Signature"],defaultTier:"Member",firstMeaningfulTier:"Gold",cardGranted:i,signal:"strong",notes:"Not in PROGRAM_CATALOG. Brazilian accounts are branded LATAM Pass (formerly Multiplus/Fidelidade)."},{name:"Copa Airlines ConnectMiles",category:"airline",catalogued:!1,aliases:["copa","copa airlines","connectmiles"],tiers:["Member","Silver","Gold","Platinum","Presidential Platinum"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong"},{name:"Air New Zealand Airpoints",category:"airline",catalogued:!0,aliases:["air new zealand","airpoints","air nz"],tiers:["Airpoints","Silver","Gold","Elite"],defaultTier:"Airpoints",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:'CORRECTION vs PROGRAM_CATALOG, which lists "Koru Silver/Gold/Platinum". The status ladder is Silver / Gold / Elite; Koru Club is a SEPARATE paid lounge membership anyone can buy and is not a status tier. A "Koru" row should be treated as a lounge membership, not elite status.'},{name:"Virgin Australia Velocity Frequent Flyer",category:"airline",catalogued:!0,aliases:["velocity","virgin australia","velocity frequent flyer"],tiers:["Red","Silver","Gold","Platinum","Beyond"],defaultTier:"Red",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:'Red is the free rung. The invitation-only top tier is "Beyond"; PROGRAM_CATALOG\'s "Platinum Plus" is not a current Velocity tier name.'},{name:"Air China PhoenixMiles",category:"airline",catalogued:!0,aliases:["air china","phoenixmiles"],tiers:["Member","Silver","Gold","Platinum","Lifetime Platinum"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong"},{name:"China Eastern Eastern Miles",category:"airline",catalogued:!0,aliases:["china eastern","eastern miles"],tiers:["Member","Silver","Gold","Platinum"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong"}
1,{name:"China Southern Sky Pearl Club",category:"airline",catalogued:!0,aliases:["china southern","sky pearl","sky pearl club"],tiers:["Member","Silver","Gold","Platinum"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong"},{name:"Thai Airways Royal Orchid Plus",category:"airline",catalogued:!0,aliases:["thai airways","royal orchid plus"],tiers:["Member","Silver","Gold","Platinum"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong"},{name:"Icelandair Saga Club",category:"airline",catalogued:!1,aliases:["icelandair","saga club","saga gold","saga silver"],tiers:["Saga Club","Saga Silver","Saga Gold"],defaultTier:"Saga Club",firstMeaningfulTier:"Saga Silver",cardGranted:i,signal:"strong",notes:"Not in PROGRAM_CATALOG. Common for East Coast US / Canadian travelers routing through KEF."},{name:"Marriott Bonvoy",category:"hotel",catalogued:!0,aliases:["marriott","bonvoy","marriott bonvoy","spg","starwood"],tiers:["Member","Silver Elite","Gold Elite","Platinum Elite","Titanium Elite","Ambassador Elite"],defaultTier:"Member",firstMeaningfulTier:"Silver Elite",cardGranted:[{tier:"Silver Elite",grant:"automatic",cards:["marriott_boundless","marriott_bonvoy_amex_uk"],note:"Boundless upgrades to Gold Elite at $35k/yr spend."},{tier:"Gold Elite",grant:"enrollment",cards:["amex_platinum","amex_business_platinum","amex_sg_platinum_charge"],note:"THE most common false status in the whole wallet — the holder must opt in via the Amex benefits portal, and many never do."},{tier:"Gold Elite",grant:"automatic",cards:["marriott_bevy","marriott_business","marriott_bountiful","ritz_carlton"]},{tier:"Platinum Elite",grant:"automatic",cards:["marriott_brilliant"]}],signal:"weak",notes:'Program-level signal is weak because Bonvoy accounts are created inside almost every hotel booking funnel. Tier signal is what matters: Titanium Elite and Ambassador Elite cannot be card-granted and mean ~50/100 nights of real stays. Marriott added a 2026 "soft landing" (drop one tier on non-requalification), so a lapsed elite now shows the tier below rather than Member.'},{name:"Hilton Honors",category:"hotel",catalogued:!0,aliases:["hilton","honors","hilton honors","hhonors"],tiers:["Member","Silver","Gold","Diamond","Diamond Reserve"],defaultTier:"Member",firstMeaningfulTier:"Silver",cardGranted:[{tier:"Silver",grant:"automatic",cards:["hilton_nofee","amex_au_explorer","amex_sg_krisflyer_ascend"],note:"No-fee Hilton Amex upgrades to Gold at $20k/yr spend."},{tier:"Gold",grant:"automatic",cards:["hilton_surpass","hilton_business"],note:"Upgrades to Diamond at $40k/yr spend."},{tier:"Gold",grant:"enrollment",cards:["amex_platinum","amex_business_platinum"]},{tier:"Diamond",grant:"automatic",cards:["hilton_aspire"]}],signal:"weak",notes:"Diamond Reserve is NEW for 2026 (40 stays or 80 nights plus $18,000 annual spend) and explicitly cannot be reached by holding a co-brand — it is the only Hilton rung that is unambiguously earned. Everything from Silver through Diamond is card-obtainable, so a Hilton Diamond row is much weaker evidence of travel than a Marriott Titanium row."},{name:"World of Hyatt",category:"hotel",catalogued:!0,aliases:["hyatt","world of hyatt","gold passport"],tiers:["Member","Discoverist","Explorist","Globalist"],defaultTier:"Member",firstMeaningfulTier:"Discoverist",cardGranted:[{tier:"Discoverist",grant:"automatic",cards:["world_of_hyatt","world_of_hyatt_business"]}],signal:"weak",notes:"Globalist (60 elite nights) is one of the hardest mainstream hotel statuses to buy — treat it as a strong traveler signal. Lifetime Globalist exists but is not an annual rung. Chase Sapphire Reserve grants Explorist only at $75k/yr spend, which is spend-gated, so it is not listed as card-granted."},{name:"IHG One Rewards",category:"hotel",catalogued:!0,aliases:["ihg","ihg one rewards","ihg rewards club","holiday inn","intercontinental"],tiers:["Club","Silver Elite","Gold Elite","Platinum Elite","Diamond Elite"],defaultTier:"Club",firstMeaningfulTier:"Silver Elite",cardGranted:[{tier:"Silver Elite",grant:"automatic",cards:["ihg_traveler"],note:"Upgrades to Gold Elite at $20k/yr spend."},{tier:"Platinum Elite",grant:"automatic",cards:["ihg_premier","ihg_one_rewards_premier_business"],note:"Upgrades to Diamond Elite at $40k/yr spend."},{tier:"Platinum Elite",grant:"enrollment",cards:["chase_sapphire_reserve"],note:"Requires linking the IHG account; Diamond Elite at $75k/yr spend."}],signal:"weak",notes:'"Club" is the free base rung and is absent from PROGRAM_CATALOG (which starts at Silver Elite). Platinum Elite is the single most card-inflated hotel tier in North America — two mass-market Chase cards hand it out — so Platinum Elite alone says almost nothing about nights stayed. Diamond Elite (70 nights) does.'},{name:"Wyndham Rewards",category:"hotel",catalogued:!0,aliases:["wyndham","wyndham rewards","days inn","super 8","la quinta","ramada"],tiers:["Blue","Gold","Platinum","Diamond"],defaultTier:"Blue",firstMeaningfulTier:"Gold",cardGranted:[{tier:"Gold",grant:"automatic",cards:["barclays_wyndham_rewards_earner"]},{tier:"Platinum",grant:"automatic",cards:["barclays_wyndham_rewards_earner_plus"]},{tier:"Diamond",grant:"automatic",cards:["barclays_wyndham_rewards_earner_business"]}],signal:"weak",notes:"Worst-case program for inferring anything. Blue is the free signup rung (the brief's canonical example), AND every rung above it is automatically granted by a Barclays co-brand — including the top tier, Diamond. Nothing in this program is reliable evidence of travel; never build an onboarding question off a Wyndham tier."},{name:"Choice Privileges",category:"hotel",catalogued:!0,aliases:["choice","choice privileges","choice hotels","comfort inn","quality inn"],tiers:["Member","Gold","Platinum","Diamond","Titanium"],defaultTier:"Member",firstMeaningfulTier:"Gold",cardGranted:[{tier:"Gold",grant:"automatic",cards:["Choice Privileges Mastercard (
1Barclays)"],note:"Co-brand status grants not re-verified for the 2026 program relaunch; treat as indicative."}],signal:"weak",notes:"Relaunched Jan 2026: night requirements cut roughly in half (Gold at 5 nights, Platinum 15, Diamond 35) and a new Titanium tier added at 55 nights. Gold at 5 nights is a very low bar, so Gold is barely more meaningful than Member."},{name:"Best Western Rewards",category:"hotel",catalogued:!0,aliases:["best western","best western rewards","surestay","worldhotels"],tiers:["Blue","Gold","Platinum","Diamond","Diamond Select"],defaultTier:"Blue",firstMeaningfulTier:"Gold",cardGranted:[{tier:"Platinum",grant:"automatic",cards:["Best Western Rewards Premium Mastercard"],note:"Co-brand status not re-verified for 2026."}],signal:"weak",notes:"Blue is the free rung, same pattern as Wyndham. Gold arrives after ~10 nights."},{name:"Accor Live Limitless (ALL)",category:"hotel",catalogued:!0,aliases:["accor","accor live limitless","all accor","sofitel","novotel","ibis","fairmont"],tiers:["Classic","Silver","Gold","Platinum","Diamond","Limitless"],defaultTier:"Classic",firstMeaningfulTier:"Silver",cardGranted:[{tier:"Gold",grant:"automatic",cards:["Accor Plus (paid subscription)"],note:"Accor Plus is a paid annual subscription, not a credit card, but it confers Gold the same way — so Accor Gold can be bought outright."}],signal:"weak",notes:'Classic is the free rung. Diamond cannot be reached on nights alone (26,000 status points). "Limitless" is an invitation-only sixth tier above Diamond and is absent from PROGRAM_CATALOG.'},{name:"Sonesta Travel Pass",category:"hotel",catalogued:!0,aliases:["sonesta","sonesta travel pass","royal sonesta","red lion"],tiers:["Bronze","Silver","Gold","Platinum"],defaultTier:"Bronze",firstMeaningfulTier:"Silver",cardGranted:i,signal:"weak",notes:'Verified: Bronze initializes at 0 nights and 0 points the moment you submit the free enrollment form. The brief\'s canonical example, and unusual in that the free rung is named "Bronze" — which reads far more like earned status than "Member" does. Silver starts at 10 qualifying nights.'},{name:"Radisson Rewards (Global)",category:"hotel",catalogued:!0,aliases:["radisson","radisson rewards","radisson blu","park plaza"],tiers:["Club","Premium","VIP"],defaultTier:"Club",firstMeaningfulTier:"Premium",cardGranted:i,signal:"weak",notes:"The surviving EMEA/APAC program. Club is the free rung."},{name:"Radisson Rewards Americas",category:"hotel",catalogued:!0,aliases:["radisson rewards americas","country inn & suites","country inn and suites"],tiers:["Club","Silver","Gold","Platinum"],defaultTier:"Club",firstMeaningfulTier:"Silver",cardGranted:i,signal:"weak",notes:"DEFUNCT — merged into Choice Privileges on 26 Jul 2023; points converted 2:1 and status was matched across. Retained only so pre-2024 mail resolves. A live Radisson Americas row today should be read as a Choice Privileges member, and its tier should not be presented as current status."},{name:"Omni Select Guest",category:"hotel",catalogued:!0,aliases:["omni","omni hotels","select guest"],tiers:["Member","Insider","Champion","Icon"],defaultTier:"Member",firstMeaningfulTier:"Insider",cardGranted:i,signal:"weak",notes:"Revenue-based since the 2024 relaunch: Insider at $1,000, Champion at $4,000, Icon at $8,000 of annual tier dollars. Member is the free rung."},{name:"Shangri-La Circle",category:"hotel",catalogued:!0,aliases:["shangri-la","shangri la","shangri-la circle","golden circle"],tiers:["Gold","Jade","Diamond","Polaris"],defaultTier:"Gold",firstMeaningfulTier:"Jade",cardGranted:i,signal:"weak",notes:'Regional oddity worth flagging: Shangri-La Circle\'s FREE entry rung is called "Gold". A Shangri-La Gold row is the exact equivalent of a WestJet Teal row, despite reading like mid-tier elite status. Polaris is invitation-only.'},{name:"Meli\xe1Rewards",category:"hotel",catalogued:!0,aliases:["melia","melia rewards","meliarewards","paradisus","innside"],tiers:["White","Silver","Gold","Platinum"],defaultTier:"White",firstMeaningfulTier:"Silver",cardGranted:i,signal:"weak",notes:"White is the free rung."},{name:"Leading Hotels of the World Leaders Club",category:"hotel",catalogued:!0,aliases:["leading hotels","leading hotels of the world","leaders club","lhw"],tiers:["Club","Sterling","Aurelian"],defaultTier:null,firstMeaningfulTier:"Club",cardGranted:i,signal:"strong",notes:"No free rung — every level is a PAID annual membership (Sterling and Aurelian are higher-priced/invitation tiers). Because you must pay to be in it at all, ANY Leaders Club row is a genuine luxury-traveler signal, which is why this is one of the few hotel programs marked strong."},{name:"Small Luxury Hotels of the World (SLH INVITED)",category:"hotel",catalogued:!1,aliases:["small luxury hotels","slh","slh 
1invited","invited"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:"INVITED is a free membership with no elite ladder I could re-verify for 2026, hence an empty tiers array rather than a guessed one. SLH stays credit toward World of Hyatt status, so an SLH row usually accompanies a Hyatt account."},{name:"Fans of M.O. (Mandarin Oriental)",category:"hotel",catalogued:!0,aliases:["mandarin oriental","fans of m.o.","fans of mo"],tiers:["Fan of M.O.","Silk","Pearl"],defaultTier:"Fan of M.O.",firstMeaningfulTier:"Silk",cardGranted:i,signal:"strong",notes:"The base rung is free, but Mandarin Oriental has no mass-market booking funnel — nobody signs up by accident. Program signal is strong even though the default tier is not."},{name:"Four Seasons Preferred Partner",category:"hotel",catalogued:!0,aliases:["four seasons","preferred partner","four seasons preferred partner"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong",notes:'Not a consumer loyalty program at all — it is a travel-advisor booking channel (like Virtuoso or Amex Fine Hotels + Resorts). A row here means the person booked a Four Seasons through an advisor, which is a strong luxury-travel signal but must never be rendered as a "tier".'},{name:"GHA DISCOVERY",category:"hotel",catalogued:!1,aliases:["gha","gha discovery","global hotel alliance","discovery"],tiers:["Silver","Gold","Platinum","Titanium"],defaultTier:"Silver",firstMeaningfulTier:"Gold",cardGranted:i,signal:"weak",notes:'Another "free rung with a metal name": DISCOVERY Silver is granted on free signup. Ladder not re-verified for 2026. Not in PROGRAM_CATALOG.'},{name:"Expedia One Key",category:"membership",catalogued:!1,aliases:["one key","onekey","expedia rewards","hotels.com rewards","vrbo one key"],tiers:["Blue","Silver","Gold","Platinum"],defaultTier:"Blue",firstMeaningfulTier:"Silver",cardGranted:i,signal:"weak",notes:"Booking-platform program spanning Expedia, Hotels.com and Vrbo (replaced Hotels.com Rewards stamps). Categorized membership, not hotel, because it is not tied to any hotel brand. Blue is free on account creation."},{name:"Booking.com Genius",category:"membership",catalogued:!1,aliases:["booking.com","booking com","genius","booking genius"],tiers:["Genius Level 1","Genius Level 2","Genius Level 3"],defaultTier:"Genius Level 1",firstMeaningfulTier:"Genius Level 2",cardGranted:i,signal:"weak",notes:"Level 1 arrives after 2 stays in 2 years and is close to automatic for anyone who has ever booked; Level 3 (15 stays in 2 years) is a real frequency signal."},{name:"Hertz Gold Plus Rewards",category:"car",catalogued:!0,aliases:["hertz","hertz gold","hertz gold plus","gold plus rewards"],tiers:["Gold","Five Star","President's Circle"],defaultTier:"Gold",firstMeaningfulTier:"Five Star",cardGranted:[{tier:"Five Star",grant:"enrollment",cards:["amex_gold","capital_one_venture","delta_platinum","aaa_premier"]},{tier:"President's Circle",grant:"enrollment",cards:["amex_platinum","amex_business_platinum","capital_one_venture_x","delta_reserve"]}],signal:"weak",notes:'Hertz "Gold" is the FREE base membership, not status — the program is literally named after its default tier, which is why it reads as elite in email. And both rungs above it are handed out by premium cards, so no Hertz tier is meaningful evidence of renting cars. Treat the whole ladder as card-derived unless proven otherwise.'},{name:"National Emerald Club",category:"car",catalogued:!0,aliases:["national","emerald club","national car rental","emerald aisle"],tiers:["Emerald Club","Executive","Executive Elite"],defaultTier:"Emerald Club",firstMeaningfulTier:"Executive",cardGranted:[{tier:"Executive",grant:"enrollment",cards:["amex_platinum","amex_business_platinum","capital_one_venture_x","hilton_aspire","hilton_surpass","hilton_business"]}],signal:"weak",notes:"Executive Elite (40 rentals/yr) is the one car-rental tier in North America that cannot be bought with a card — it is a genuine road-warrior signal."},{name:"Avis Preferred",category:"car",catalogued:!0,aliases:["avis","avis preferred","preferred plus"],tiers:["Preferred","Preferred Plus","President's Club"],defaultTier:"Preferred",firstMeaningfulTier:"Preferred Plus",cardGranted:[{tier:"Preferred Plus",grant:"enrollment",cards:["amex_platinum","amex_business_platinum","capital_one_venture_x","amex_ca_aeroplan_reserve"]}],signal:"weak",notes:'Preferred Plus is so widely card-granted that it should be read as "holds a premium card", not "rents cars". President\'s Club (12+ rentals or $5,
1000/yr) is the earned rung.'},{name:"Enterprise Plus",category:"car",catalogued:!0,aliases:["enterprise","enterprise plus","enterprise rent-a-car"],tiers:["Plus","Silver","Gold","Platinum"],defaultTier:"Plus",firstMeaningfulTier:"Silver",cardGranted:i,signal:"weak",notes:'"Plus" is the free base membership. Unusually for a car program, no major US card confers Enterprise status, so Silver and above are actually earned by rental volume.'},{name:"SIXT ONE Rewards",category:"car",catalogued:!0,aliases:["sixt","sixt one","sixt rewards","advantage circle"],tiers:["Silver","Gold","Platinum","Diamond"],defaultTier:"Silver",firstMeaningfulTier:"Gold",cardGranted:i,signal:"weak",notes:"Silver is the free entry rung (another metal-named default). Ladder inherited from PROGRAM_CATALOG and NOT re-verified for 2026 — Sixt has renamed this program more than once (Advantage Circle -> SIXT ONE)."},{name:"Europcar Privilege",category:"car",catalogued:!0,aliases:["europcar","europcar privilege"],tiers:["Club","Executive","Elite","Elite VIP"],defaultTier:"Club",firstMeaningfulTier:"Executive",cardGranted:i,signal:"weak"},{name:"Alamo Insiders",category:"car",catalogued:!0,aliases:["alamo","alamo insiders","insiders"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:"A free discount club with no ladder at all — there is nothing here to mistake for status."},{name:"Budget Fastbreak",category:"car",catalogued:!0,aliases:["budget","budget fastbreak","fastbreak"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak"},{name:"Dollar Express Rewards",category:"car",catalogued:!0,aliases:["dollar","dollar express","dollar rent a car"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak"},{name:"Thrifty Blue Chip Rewards",category:"car",catalogued:!0,aliases:["thrifty","blue chip","blue chip rewards"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak"},{name:"Turo",category:"car",catalogued:!0,aliases:["turo","all-star host"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:'"All-Star Host" is a supply-side (host) badge, not a renter status — never store it as a tier.'},{name:"Amtrak Guest Rewards",category:"rail",catalogued:!0,aliases:["amtrak","amtrak guest rewards","guest rewards"],tiers:["Member","Select","Select Plus","Select Executive"],defaultTier:"Member",firstMeaningfulTier:"Select",cardGranted:i,signal:"weak",notes:"Select (5,000 Tier Qualifying Points) is a real threshold; Member is the free rung."},{name:"VIA Pr\xe9f\xe9rence",category:"rail",catalogued:!1,aliases:["via rail","via pr\xe9f\xe9rence","via preference","preference"],tiers:["Pr\xe9f\xe9rence","Privil\xe8ge","Premier"],defaultTier:"Pr\xe9f\xe9rence",firstMeaningfulTier:"Privil\xe8ge",cardGranted:i,signal:"weak",notes:'Verified 2026: three levels by cumulative spend over a 1 May - 30 Apr reference year — Pr\xe9f\xe9rence $0-999 (free rung), Privil\xe8ge $1,000-1,999, Premier $2,000+. There is no "Prestige" tier; Prestige is a class of service on The Canadian and must not be stored as status. Not in PROGRAM_CATALOG.'},{name:"Club Eurostar",category:"rail",catalogued:!0,aliases:["eurostar","club eurostar"],tiers:["Classique","Avantage","Carte Blanche","Etoile"],defaultTier:"Classique",firstMeaningfulTier:"Avantage",cardGranted:i,signal:"weak",notes:"Etoile is invitation-only."},{name:"SNCF Grand Voyageur",category:"rail",catalogued:!0,aliases:["sncf","grand voyageur","sncf connect"],tiers:["Grand Voyageur","Grand Voyageur Le Club"],defaultTier:"Grand Voyageur",firstMeaningfulTier:"Grand Voyageur Le Club",cardGranted:i,signal:"weak"},{name:"Trenitalia CartaFRECCIA",category:"rail",catalogued:!0,aliases:["trenitalia","cartafreccia","carta freccia"],tiers:["CartaFRECCIA","Argento","Oro","Platino","Platino Infinito"],defaultTier:"CartaFRECCIA",firstMeaningfulTier:"Argento",cardGranted:i,signal:"weak",notes:"Platino Infinito is invitation-only."},{name:"Royal Caribbean Crown & Anchor Society",category:"cruise",catalogued:!0,aliases:["royal caribbean","crown & anchor","crown and anchor"],tiers:["Gold","Platinum","Emerald","Diamond","Diamond Plus","P
1innacle Club"],defaultTier:null,firstMeaningfulTier:"Gold",cardGranted:i,signal:"strong",notes:"No free rung: Gold requires 3 cruise points, i.e. you have completed a sailing. Every Crown & Anchor tier therefore means real travel."},{name:"Carnival VIFP Club",category:"cruise",catalogued:!0,aliases:["carnival","vifp","vifp club"],tiers:["Blue","Red","Gold","Platinum","Diamond"],defaultTier:"Blue",firstMeaningfulTier:"Red",cardGranted:i,signal:"weak",notes:"The exception among cruise lines: you can join VIFP at Blue before ever sailing, so a Blue row is a signup, not a cruise. Red (25+ days sailed) upward is earned."},{name:"Celebrity Cruises Captain's Club",category:"cruise",catalogued:!0,aliases:["celebrity","celebrity cruises","captain's club","captains club"],tiers:["Preview","Classic","Select","Elite","Elite Plus","Zenith"],defaultTier:"Preview",firstMeaningfulTier:"Classic",cardGranted:i,signal:"weak",notes:'Preview is the pre-sailing enrollment rung — a Preview row means "booked or curious", not "cruised".'},{name:"Norwegian Cruise Line Latitudes Rewards",category:"cruise",catalogued:!0,aliases:["norwegian","ncl","latitudes","latitudes rewards"],tiers:["Bronze","Silver","Gold","Platinum","Sapphire","Diamond","Ambassador"],defaultTier:null,firstMeaningfulTier:"Bronze",cardGranted:i,signal:"strong",notes:"Bronze requires a completed cruise, so there is no free rung. Ambassador is invitation-only."},{name:"Princess Cruises Captain's Circle",category:"cruise",catalogued:!0,aliases:["princess","princess cruises","captain's circle","captains circle"],tiers:["Gold","Ruby","Platinum","Elite"],defaultTier:null,firstMeaningfulTier:"Gold",cardGranted:i,signal:"strong",notes:"Gold is granted after the first completed cruise — no free rung."},{name:"MSC Voyagers Club",category:"cruise",catalogued:!0,aliases:["msc","msc cruises","voyagers club"],tiers:["Welcome","Classic","Silver","Gold","Diamond","Blue Diamond"],defaultTier:"Welcome",firstMeaningfulTier:"Classic",cardGranted:i,signal:"weak",notes:"Welcome is the free pre-sailing rung."},{name:"Holland America Mariner Society",category:"cruise",catalogued:!1,aliases:["holland america","mariner society","hal mariner"],tiers:["1-Star Mariner","2-Star Mariner","3-Star Mariner","4-Star Mariner","5-Star Mariner"],defaultTier:null,firstMeaningfulTier:"1-Star Mariner",cardGranted:i,signal:"strong",notes:"Entry requires a completed cruise. Not in PROGRAM_CATALOG."},{name:"Disney Cruise Line Castaway Club",category:"cruise",catalogued:!1,aliases:["disney cruise","castaway club","disney cruise line"],tiers:["Silver","Gold","Platinum","Pearl"],defaultTier:null,firstMeaningfulTier:"Silver",cardGranted:i,signal:"strong",notes:"Silver is granted after the first completed sailing — no free rung. Not in PROGRAM_CATALOG."},{name:"Priority Pass",category:"membership",catalogued:!0,aliases:["priority pass","prioritypass"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"Priority Pass Select",grant:"enrollment",cards:["amex_platinum","amex_business_platinum","chase_sapphire_reserve","capital_one_venture_x","citi_strata_elite","united_club_infinite"],note:'Card-issued "Select" memberships require activation; this is the only cardGranted entry whose tier is intentionally not in `tiers`, because Priority Pass has no ladder.'}],signal:"strong",notes:'The strongest single "is this person a traveler" signal in the wallet, card-issued or not — nobody holds airport lounge access without flying. Paid consumer plans are named Standard / Standard Plus / Prestige, but they are purchase options, not earned rungs, so `tiers` stays empty to match PROGRAM_CATALOG.'},{name:"Global Entry (CBP Trusted Traveler)",category:"membership",catalogued:!1,aliases:["global entry","ttp","trusted traveler"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"Global Entry",grant:"enrollment",cards:["amex_platinum","chase_sapphire_reserve","capital_one_venture_x","capital_one_venture","citi_strata_premier"],note:'Cards reimburse the $120 application fee; the member still passes a background check and interview, so this is never "granted" the way a hotel tier is.'}],signal:"strong",notes:"Requires a fee, background check and in-person interview, and only pays off on international arrivals — one of the highest-confidence international-traveler signals available. CARD_CATALOG holds it as kind=membership; there is no PROGRAM_CATALOG entry."},{name:"NEXUS (CBP/CBSA Trusted Traveler)",category:"membership",catalogued:!1,aliases:["nexus","nexus card"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong",notes:"US/Canad
1a joint program; includes Global Entry and TSA PreCheck privileges. Strong signal of cross-border travel specifically."},{name:"SENTRI (CBP Trusted Traveler)",category:"membership",catalogued:!1,aliases:["sentri"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong",notes:"US/Mexico land-border program; includes Global Entry privileges."},{name:"TSA PreCheck",category:"membership",catalogued:!1,aliases:["tsa precheck","tsa pre","precheck"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"TSA PreCheck",grant:"enrollment",cards:["amex_platinum","chase_sapphire_reserve","capital_one_venture_x","capital_one_venture"],note:"Fee reimbursement only."}],signal:"strong",notes:"Domestic-only, so slightly weaker than Global Entry as an international signal, but still a paid, screened enrollment nobody does without flying."},{name:"CLEAR Plus",category:"membership",catalogued:!1,aliases:["clear","clear plus","clearme"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"CLEAR Plus",grant:"enrollment",cards:["amex_platinum","amex_green","chase_sapphire_reserve","united_explorer","delta_platinum","delta_reserve"],note:"Statement-credit reimbursement of the annual fee."}],signal:"strong",notes:"A paid annual subscription that only has value inside an airport. CLEAR also operates at stadiums, which is why signal is strong rather than absolute."},{name:"American Express Global Lounge Collection",category:"membership",catalogued:!1,aliases:["centurion lounge","global lounge collection","amex lounge","escape lounge"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"Global Lounge Collection",grant:"automatic",cards:["amex_platinum","amex_business_platinum","amex_sg_platinum_charge"]}],signal:"strong",notes:'Not a standalone program — it is a Platinum card benefit. Treat a "Centurion Lounge" find as evidence of holding Amex Platinum, and dedupe it against the card row rather than storing it as a second membership.'},{name:"Delta Sky Club",category:"membership",catalogued:!1,aliases:["sky club","delta sky club","skyclub"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"Individual Membership",grant:"automatic",cards:["delta_reserve"],note:"Visit-capped since Feb 2025."}],signal:"strong"},{name:"United Club",category:"membership",catalogued:!1,aliases:["united club","united club membership"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"United Club Membership",grant:"automatic",cards:["united_club_infinite","united_club_business"]}],signal:"strong"},{name:"Admirals Club",category:"membership",catalogued:!1,aliases:["admirals club","american airlines admirals club"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:[{tier:"Admirals Club Membership",grant:"automatic",cards:["aa_executive"]}],signal:"strong"},{name:"Alaska Lounge",category:"membership",catalogued:!1,aliases:["alaska lounge","alaska lounge+","board room"],tiers:["Alaska Lounge","Alaska Lounge+"],defaultTier:null,firstMeaningfulTier:"Alaska Lounge",cardGranted:i,signal:"strong",notes:'Both levels are purchased annual memberships; "+" adds partner lounges. No free rung.'},{name:"Air Canada Maple Leaf Club",category:"membership",catalogued:!1,aliases:["maple leaf club","maple leaf lounge","air canada lounge"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong"},{name:"LoungeKey",category:"membership",catalogued:!1,aliases:["loungekey","lounge key"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong",notes:"Mastercard/Visa-issued lounge network, mostly outside the US. Same read as Priority Pass."},{name:"DragonPass",category:"membership",catalogued:!1,aliases:["dragonpass","dragon pass"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong"},{name:"Plaza Premium — Smart Traveller",category:"membership",catalogued:!1,aliases:["plaza premium","smart traveller","plaza premium lounge"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong"},{name:"AAA Membership",category:"membership",catalogued:!1,aliases:["aaa","triple a","aaa membership"],tiers:["Classic","Plus","Premier"],defaultTier:"Classic",firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:"The ladder is a PRICE ladder, not an earned one — you buy Plus or Premier. firstMeaningfulTier is null on purpose: no AAA level signals travel activity. Kept as travel-relevant only because Premier confers Hertz Five Star and AAA gives rental-car and hotel discounts."},{name:"CAA (Canadian Automobile Association)",category:"membership",catalogued:!1,aliases:["caa","caa membership"],tiers:["Basic","Plus","Premier"],defaultTier:"Basic",firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:"Canadian AAA equivalent; same price-ladder caveat."},{name:"Hostelling International (HI)",category:"membership",catalogued:!1,aliases:["hostelling international","hi membership","hi hostels","hiusa"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"strong",notes:"A paid membership whose only use is booking hostels abroad. Strong signal, and a useful one for travel STYLE (budget/backpacker) rather than frequency."},{name:"ISIC (International Student Identity Card)",category:"membership",catalogued:!1,aliases:["isic","international student identity card"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:"Travel-oriented student discount card. Weak: often bought for domestic discounts and never used abroad."},{name:"WeSalute (Veterans Advantage)",category:"membership",catalogued:!1,aliases:["wesalute","veterans advantage","wesalute+"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",notes:"Discount membership with airline/hotel partners; eligibility is service-based, not travel-based."},{name:"My Best Buy",category:"non_travel",catalogued:!1,aliases:["best buy","my best buy","my best buy plus","my best buy total","best buy rewards"],tiers:["My Best Buy","My Best Buy Plus","My Best Buy Total"],defaultTier:"My Best Buy",firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"The brief's canonical non-travel case. Plus and Total are PAID subscriptions, so they look like earned tiers to a tier-rank heuristic. Nothing here relates to travel — exclude from the wallet entirely rather than showing it at member level."},{name:"Amazon",category:"non_travel",catalogued:!1,aliases:["amazon","amazon prime","amazon rewards","prime rewards"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Prime is a paid subscription, not a tier. Amazon Rewards Visa points are store credit."},{name:"Target Circle",category:"non_travel",catalogued:!1,aliases:["target","target circle","target circle 360","redcard"],tiers:["Target Circle","Target Circle 360"],defaultTier:"Target Circle",firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"Walmart Rewards",category:"non_travel",catalogued:!1,aliases:["walmart","walmart rewards","walmart+","walmart plus"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"Costco Membership",category:"non_travel",catalogued:!1,aliases:["costco","costco membership","costco gold star","costco executive"],tiers:["Gold Star","Executive"],defaultTier:"Gold Star",firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Judgment call: Costco Travel is a real booking channel, but the MEMBERSHIP says nothing about whether the person travels — the overwhelming majority of members joined for groceries. Executive is a paid upgrade, not an earned tier. Classified non_travel so it never inflates a travel profile; a Costco Travel BOOKING is separate evidence and should be treated on its own."},{name:"Sam's Club",category:"non_travel",catalogued:!1,aliases:["sam's club","sams club","sams club plus"],tiers:["Club","Plus"],defaultTier:"Club",firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Same reasoning as Costco: Sam's Club Travel exists, the membership is not travel evidence."},{name:"BJ's Wholesale Club",category:"non_travel",catalogued:!1,aliases:["bj's","bjs","bj's wholesale","bjs perks"],tiers:["Club","Club+"],defaultTier:"Club",firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"AARP",category:"non_travel",catalogued:!1,aliases:["aarp","aarp membership","aarp rewards"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Judgment call: AARP resells hotel and car discounts, but membership is age-gated, not travel-gated, so it carries zero traveler signal. Excluded from the travel wallet."},{name:"Starbucks Rewards",category:"non_travel",catalogued:!1,aliases:["starbucks","starbucks rewards","starbucks stars"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"Dunkin' Rewards",category:"non_travel",catalogued:!1,aliases:["dunkin","dunkin'","dunkin rewards","dd perks"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"MyPanera",category:"non_travel",catalogued:!1,aliases:["panera","mypanera","panera rewards","sip club"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"Chipotle Rewards",category:"non_travel",catalogued:!1,aliases:["chipotle","chipotle rewards"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"Sephora Beauty Insider",category:"non_travel",catalogued:!1,aliases:["sephora","beauty insider","vib","vib rouge"],tiers:["Insider","VIB","Rouge"],defaultTier:"Insider",firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Included because its Insider/VIB/Rouge ladder looks exactly like a hotel ladder to a naive tier parser."},{name:"CVS ExtraCare",category:"non_travel",catalogued:!1,aliases:["cvs","extracare","extrabucks","carepass"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none"},{name:"Rakuten",category:"non_travel",catalogued:!1,aliases:["rakuten","ebates","rakuten cash back"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Shopping portal. Can pay out in Amex Membership Rewards points, which is why it turns up in travel-looking mail."},{name:"AAdvantage Dining / SkyMiles Dining / MileagePlus Dining",category:"non_travel",catalogued:!1,aliases:["aadvantage dining","skymiles dining","mileageplus dining","rewards network","united mileageplus dining"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:"Tricky case worth its own entry: these are Rewards Network dining programs that EARN airline miles, so their mail carries airline branding and mile balances. They are restaurant-spend programs — enrolling implies an airline account, never a flight. Must not create or upgrade an airline status row."},{name:"American Express Membership Rewards",category:"non_travel",catalogued:!1,aliases:["membership rewards","amex points","amex membership rewards","mr points"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",pointsCurrency:!0,notes:"Its own thing: a transferable currency, not a loyalty program. No tiers, no status, nothing to ask about in onboarding — but the BALANCE is highly travel-relevant (transfers to Delta, Air Canada, Flying Blue, Hilton, Marriott and more). Surface it as redemption capacity, never as status. Signal is weak, not none, because holding MR implies a travel-oriented Amex card."},{name:"Chase Ultimate Rewards",category:"non_travel",catalogued:!1,aliases:["ultimate rewards","chase points","chase ultimate rewards","chase travel"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",pointsCurrency:!0,notes:"Same treatment as Membership Rewards. Transfers to United, Hyatt, Southwest, Air Canada, IHG, Marriott."},{name:"Citi ThankYou Rewards",category:"non_travel",catalogued:!1,aliases:["thankyou","thank you points","citi thankyou","thankyou rewards"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",pointsCurrency:!0},{name:"Capital One Rewards",category:"non_travel",catalogued:!1,aliases:["capital one rewards","capital one miles","venture miles","capital one travel"],tiers:[],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"weak",pointsCurrency:!0},{name:"Bilt Rewards",category:"non_travel",catalogued:!1,aliases:["bilt","bilt rewards","bilt points"],tiers:["Blue","Silver","Gold","Platinum"],defaultTier:"Blue",firstMeaningfulTier:null,cardGranted:i,signal:"weak",pointsCurrency:!0,notes:"Hybrid and genuinely awkward: a transferable travel currency that DOES publish a Blue/Silver/Gold/Platinum ladder — but the ladder is earned by paying rent, not by travelling. firstMeaningfulTier is null for that reason: no Bilt tier is travel evidence."},{name:"Bank of America Preferred Rewards",category:"non_travel",catalogued:!1,aliases:["preferred rewards","bank of america preferred rewards","platinum honors"],tiers:["Gold","Platinum","Platinum Honors","Diamond","Diamond Honors"],defaultTier:null,firstMeaningfulTier:null,cardGranted:i,signal:"none",notes:'A banking-balance ladder ($20k to $10M in deposits/investments). Its tier names collide hard with hotel ladders — "Platinum Honors" in particular can be mistaken for Hilton Honors. Explicitly non-travel.'}];function n(e){return(null!=e?e:"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}let s=Object.fromEntries(t.map(e=>[e.name,e])),o=Object.fromEntries(t.flatMap(e=>[[n(e.name),e],...e.aliases.map(a=>[n(a),e])]));function l(e){var a,r;return e&&null!=(r=null!=(a=s[e])?a:o[n(e)])?r:null}function c(e,a){let r=l(e);return!!r&&!!r.defaultTier&&!!a&&n(r.defaultTier)===n(a)}function d(e,a){let r=l(e);if(!r||!r.firstMeaningfulTier||!a)return!1;let i=n(a),t=r.tiers.findIndex(e=>n(e)===i);if(t<0)return!1;let s=r.tiers.findIndex(e=>n(e)===n(r.firstMeaningfulTier));return s>=0&&t>=s}function u(e,a){let r=l(e);if(!r||!a)return i;let t=n(a);return r.cardGranted.filter(e=>n(e.tier)===t)}},66787:(e,a,r)=>{r.d(a,{_V:()=>u,jW:()=>d});var i=r(12832),t=r(54150),n=r(56157);let s={loyalty:[],cardProducts:[]},o=null,l=null;async function c(){try{let e=(0,i.createClient)(),{data:{user:a}}=await e.auth.getUser();if(!a)return s;let{memberships:r,cards:o}=await (0,t.CH)(a.id);return{loyalty:r.filter(e=>"confirmed"===e.review_state&&(0,n.o6)(e)),cardProducts:o.map(e=>e.card_product)}}catch(e){return s}}function d(){return o?Promise.resolve(o):l||(l=c().then(e=>(o=e,l=null,e)))}function u(){o=null,l=null}},75930:(e,a,r)=>{r.d(a,{Rx:()=>n,it:()=>s});var i=r(40317),t=r(2380);function n(e){if(!t.L0.some(a=>{var r;return a.product===e.card_product&&(null!=(r=a.kind)?r:"card")==="c
1ard"}))return 0;let a=0;for(let r of(0,i.cB)(e.card_product))"number"==typeof r.annual_value_usd&&Number.isFinite(r.annual_value_usd)&&(a+=r.annual_value_usd);return a}function s(e){return 50*Math.floor(e.reduce((e,a)=>e+n(a),0)/50)}},78267:(e,a,r)=>{r.d(a,{$x:()=>n,Li:()=>t});var i=r(7837);let t=4;function n(e){var a;let r=[],n=null;for(let i of e){if("other"===i.traveler_scope)continue;let e=i.start_datetime?Date.parse(i.start_datetime):NaN,t=i.email_sent_at?Date.parse(i.email_sent_at):NaN;if(!Number.isFinite(e)||!Number.isFinite(t))continue;let s=Math.max(0,Math.round((e-t)/864e5));r.push(s),(!n||s>n.days)&&(n={days:s,destination:(null==(a=i.location_text)?void 0:a.trim())||null})}let s=[0,0,0,0,0];for(let e of r)s[e<=3?0:e<=7?1:e<=14?2:e<=30?3:4]+=1;let o=r.length;if(o<t)return{medianDays:null,buckets:s,sampleSize:o,leadTimes:r,outlier:null};let l=(0,i.JZ)(r),c=null!==n&&n.days>=30&&(null==l||n.days>=2*l)?{destination:n.destination,daysAhead:n.days}:null;return{medianDays:l,buckets:s,sampleSize:o,leadTimes:r,outlier:c}}},80236:(e,a,r)=>{r.d(a,{FY:()=>c,Y3:()=>d,Zg:()=>o,kF:()=>l});var i=r(1438),t=r(16320),n=r(2380),s=r(65005);function o(e){var a,r,n;if(!(0,t.GY)(e.status_expiration))return!1;let o=(0,s.YD)(e.program_name);if(o)return"none"!==o.signal&&"non_travel"!==o.category&&(0===o.tiers.length||!(0,s.I4)(e.program_name,e.tier)&&!!o.firstMeaningfulTier&&(0,s.oY)(e.program_name,e.tier));let l=(0,t.T6)(e.program_name);if(l&&!(null==(a=l.tiers)?void 0:a.length))return!0;let c=null==(r=e.tier)?void 0:r.trim().toLowerCase();return!!(l&&"airline"===e.program_type&&c&&(null==(n=l.tiers)?void 0:n.some(e=>e.toLowerCase()===c)))||(0,i.d$)(e.program_name,e.tier,e.status_expiration)}function l(e){return"confirmed"===e.review_state&&o(e)}function c(e){return!function(e){var a,r;let i=(0,s.YD)(e.program_name);if(i)return"none"!==i.signal&&"non_travel"!==i.category&&(0===i.tiers.length||!(0,s.I4)(e.program_name,e.tier)&&!!i.firstMeaningfulTier&&(0,s.oY)(e.program_name,e.tier));let o=(0,t.T6)(e.program_name),l=o?n.mG[o.name]:n.mG[e.program_name];if(!l||!(null==(a=e.tier)?void 0:a.trim()))return!!(o&&!(null==(r=o.tiers)?void 0:r.length));let c=e.tier.trim().toLowerCase(),d=Object.keys(l).find(e=>e.toLowerCase()===c);if(!d)return!1;let u=Math.min(...Object.values(l));return l[d]>u}(e)?null:e.status_expiration&&!(0,t.GY)(e.status_expiration)?"expired":(0,t.hn)(e)?"stale":null}function d(e){if(!e.tier)return!1;let a=(0,s.YD)(e.program_name);return!!a&&(!!(0,s.I4)(e.program_name,e.tier)||!!a.firstMeaningfulTier&&!(0,s.oY)(e.program_name,e.tier))}},89334:(e,a,r)=>{r.d(a,{kO:()=>d,oo:()=>c,so:()=>n,up:()=>l,xD:()=>u});var i=r(16320),t=r(2380);function n(e){let a=(0,i.T6)(e.program_name);return a?"name:".concat(a.name.toLowerCase()):e.program_code?"code:".concat(e.program_code):"raw:".concat(e.program_name.trim().toLowerCase())}function s(e){var a,r;let i=Date.parse(null!=(r=null!=(a=e.email_sent_at)?a:e.created_at)?r:"");return Number.isNaN(i)?0:i}function o(e){if(!e.tier)return 0;let a=(0,i.T6)(e.program_name);if(!a)return 0;let r=t.mG[a.name];if(!r)return 0;let n=e.tier.trim().toLowerCase();if(!n)return 0;let s=Object.keys(r),o=s.find(e=>e.toLowerCase()===n);return!o&&n.length>=3&&(o=s.find(e=>{let a=e.toLowerCase();return a.includes(n)||n.includes(a)})),o?r[o]:0}function l(e){let a=e.map(e=>{let a=(0,i.TV)(e.tier);return a===e.tier?e:{...e,tier:a}}),r=new Map;for(let e of a){let a=n(e),i=r.get(a);(!i||function(e,a){let r=e=>+("confirmed"===e.review_state);if(r(e)!==r(a))return r(e)>r(a);let i=o(e),t=o(a);return i!==t?i>t:+!!e.tier!=+!!a.tier?+!!e.tier>+!!a.tier:s(e)!==s(a)?s(e)>s(a):+!!e.membership_number>+!!a.membership_number}(e,i))&&r.set(a,e)}let t=new Set([...r.values()].map(e=>e.id));return a.filter(e=>{var a;return t.has(e.id)&&(null==(a=r.get(n(e)))?void 0:a.id)===e.id})}function c(e){let a=new Map;for(let r of e){let e=n(r),i=a.get(e);i?i.push(r.id):a.set(e,[r.id])}let r={};for(let t of l(e)){var i;r[t.id]=null!=(i=a.get(n(t)))?i:[t.id]}return r}function d(e,a){let r=new Map(e.map(e=>[e.id,e]));return e=>{var i;let t=(null!=(i=a[e.id])?i:[e.id]).map(e=>r.get(e)).filter(e=>null!=e);return t.length>0?t:[e]}}function u(e){return l(e)}}}]);

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.