66 < title > Delta Choice Benefits Advisor | Find Your Best Medallion Perks</ title >
77
88 <!-- SEO Meta Tags -->
9- < meta name ="description " content ="Free tool for Delta Platinum and Diamond Medallion members to find the most valuable Choice Benefits for their travel style . Personalized recommendations based on your profile . ">
9+ < meta name ="description " content ="Free tool for Delta Platinum and Diamond Medallion members to find the most valuable Choice Benefits. Personalized recommendations based on your travel style, credit cards, and selection timing . ">
1010 < meta name ="keywords " content ="Delta Choice Benefits, SkyMiles, Medallion Status, Diamond, Platinum, Delta Air Lines, upgrade certificates, Sky Club ">
1111 < meta name ="author " content ="Spencer X Smith ">
1212
13- <!-- Open Graph / Facebook -->
14- < meta property ="og:type " content ="website ">
15- < meta property ="og:url " content ="https://tools.spencerxsmith.com/delta-choice-benefits/ ">
16- < meta property ="og:title " content ="Delta Choice Benefits Advisor ">
17- < meta property ="og:description " content ="Free tool to find the most valuable Choice Benefits for Delta Platinum & Diamond members. Personalized recommendations in 2 minutes. ">
18- < meta property ="og:image " content ="https://tools.spencerxsmith.com/delta-choice-benefits/og-image.png ">
19- < meta property ="og:image:width " content ="1200 ">
20- < meta property ="og:image:height " content ="630 ">
21-
22- <!-- Twitter -->
23- < meta name ="twitter:card " content ="summary_large_image ">
24- < meta name ="twitter:url " content ="https://tools.spencerxsmith.com/delta-choice-benefits/ ">
25- < meta name ="twitter:title " content ="Delta Choice Benefits Advisor ">
26- < meta name ="twitter:description " content ="Free tool to find the most valuable Choice Benefits for Delta Platinum & Diamond members. Personalized recommendations in 2 minutes. ">
27- < meta name ="twitter:image " content ="https://tools.spencerxsmith.com/delta-choice-benefits/og-image.png ">
13+ <!-- Canonical + Social (works on GitHub Pages and custom domains) -->
14+ < link rel ="canonical " href ="" id ="canonical-link ">
15+
16+ <!-- Open Graph -->
17+ < meta property ="og:type " content ="website ">
18+ < meta property ="og:url " content ="" id ="og-url ">
19+ < meta property ="og:title " content ="Delta Choice Benefits Advisor ">
20+ < meta property ="og:description " content ="Free tool to find the most valuable Choice Benefits for Delta Platinum & Diamond members. Personalized recommendations in 2 minutes. ">
21+ < meta property ="og:image " content ="og-image.png ">
22+ < meta property ="og:image:width " content ="1200 ">
23+ < meta property ="og:image:height " content ="630 ">
24+
25+ <!-- Twitter -->
26+ < meta name ="twitter:card " content ="summary_large_image ">
27+ < meta name ="twitter:url " content ="" id ="twitter-url ">
28+ < meta name ="twitter:title " content ="Delta Choice Benefits Advisor ">
29+ < meta name ="twitter:description " content ="Free tool to find the most valuable Choice Benefits for Delta Platinum & Diamond members. Personalized recommendations in 2 minutes. ">
30+ < meta name ="twitter:image " content ="og-image.png ">
31+
32+ < script >
33+ // Sets canonical + share URLs to the actual deployed URL (GitHub Pages or custom domain)
34+ ( function ( ) {
35+ var url = window . location . href . split ( '#' ) [ 0 ] ;
36+ var canonical = document . getElementById ( 'canonical-link' ) ;
37+ var og = document . getElementById ( 'og-url' ) ;
38+ var tw = document . getElementById ( 'twitter-url' ) ;
39+
40+ if ( canonical ) canonical . href = url ;
41+ if ( og ) og . content = url ;
42+ if ( tw ) tw . content = url ;
43+ } ) ( ) ;
44+ </ script >
2845
2946 <!-- Favicon -->
3047 < link rel ="icon " type ="image/svg+xml " href ="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><polygon points='50,5 95,95 5,95' fill='%23003366'/><polygon points='50,25 75,75 25,75' fill='%23C01933'/></svg> ">
3148
32- <!-- Privacy-friendly Analytics (Plausible) -->
33- < script defer data-domain ="tools.spencerxsmith.com " src ="https://plausible.io/js/script.js "> </ script >
34-
3549 < script src ="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js "> </ script >
3650 < script src ="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js "> </ script >
3751 < script src ="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/7.23.5/babel.min.js "> </ script >
16751689 } ,
16761690 {
16771691 id : 'hasAmex' ,
1678- text : 'Do you have a Delta SkyMiles American Express Card?' ,
1679- help : 'Statement credits require a Delta Platinum, Platinum Business, Reserve, or Reserve Business Amex .' ,
1692+ text : 'Which Delta SkyMiles American Express Card(s) do you have ?' ,
1693+ help : 'Statement credits can be applied to Platinum, Platinum Business, Reserve, or Reserve Business cards. If you have multiple eligible cards, you\'ll choose which one receives the credit .' ,
16801694 type : 'single' ,
16811695 options : [
1682- { value : 'reserve' , label : 'Yes - Reserve or Reserve Business' , sublabel : '$695 annual fee' } ,
1683- { value : 'platinum' , label : 'Yes - Platinum or Platinum Business' , sublabel : '$350 annual fee' } ,
1684- { value : 'gold' , label : 'Yes - Gold card only' , sublabel : 'Not eligible for statement credits' } ,
1696+ { value : 'reserve' , label : 'Reserve or Reserve Business' , sublabel : '$695 annual fee — credit offsets most of it' } ,
1697+ { value : 'platinum_amex' , label : 'Platinum or Platinum Business (Delta)' , sublabel : '$350 annual fee — credit covers it entirely' } ,
1698+ { value : 'multiple' , label : 'Multiple eligible cards (e.g., Reserve + Platinum)' , sublabel : 'You\'ll choose which card gets the credit' } ,
1699+ { value : 'gold' , label : 'Gold card only' , sublabel : 'Not eligible for statement credits' } ,
16851700 { value : 'none' , label : 'No Delta Amex card' , sublabel : '' }
16861701 ]
16871702 } ,
17351750 help : 'This affects whether a Sky Club membership choice is valuable.' ,
17361751 type : 'single' ,
17371752 options : [
1738- { value : 'reserve' , label : 'Reserve card benefit' , sublabel : 'Already have unlimited access' } ,
1739- { value : 'amex_plat' , label : 'Amex Platinum (non-Delta)' , sublabel : 'Limited visits, may have fees' } ,
1753+ { value : 'reserve' , label : 'Delta Reserve card benefit' , sublabel : 'Unlimited access when flying Delta' } ,
1754+ { value : 'amex_plat_unlimited' , label : 'Amex Platinum with $75K+ annual spend' , sublabel : 'Unlimited visits unlocked' } ,
1755+ { value : 'amex_plat_limited' , label : 'Amex Platinum under $75K spend' , sublabel : '10 visits/year cap — may run out' } ,
17401756 { value : 'membership' , label : 'Existing Sky Club membership' , sublabel : 'Already a member' } ,
1741- { value : 'day_pass' , label : 'Day passes when needed' , sublabel : 'Pay per visit' } ,
1757+ { value : 'day_pass' , label : 'Day passes when needed' , sublabel : 'Pay $50-75 per visit' } ,
17421758 { value : 'none' , label : 'Don\'t use Sky Clubs' , sublabel : '' }
17431759 ]
17441760 } ,
17671783 { value : 'status' , label : 'Status acceleration' , sublabel : 'Reaching next tier' } ,
17681784 { value : 'sharing' , label : 'Sharing benefits' , sublabel : 'Gifting status to others' }
17691785 ]
1786+ } ,
1787+ {
1788+ id : 'selectionTiming' ,
1789+ text : 'When do you plan to make your Choice Benefits selection?' ,
1790+ help : 'Important: Upgrade certificates must be booked AND flown by the end of the Medallion Year (Jan 31). Selecting late limits their usefulness.' ,
1791+ type : 'single' ,
1792+ options : [
1793+ { value : 'early' , label : 'Already selected or selecting soon' , sublabel : 'Full year to use benefits' } ,
1794+ { value : 'mid' , label : 'Sometime mid-year (Apr-Aug)' , sublabel : '6-10 months to use certificates' } ,
1795+ { value : 'late' , label : 'Later this year (Sep-Nov)' , sublabel : '3-5 months for certificates' } ,
1796+ { value : 'lastminute' , label : 'Near the deadline (Dec-Jan)' , sublabel : '⚠️ Very limited time for certificates' }
1797+ ]
17701798 }
17711799 ] ;
17721800
@@ -2502,15 +2530,27 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
25022530 < li > < strong > No eligible Amex card:</ strong > Statement credit → 0 points (ineligible)</ li >
25032531 < li > < strong > Book Basic Economy:</ strong > Upgrade certificates → 0 points (can't use them)</ li >
25042532 < li > < strong > Already have lounge access:</ strong > Sky Club membership → 0 points</ li >
2533+ < li > < strong > Amex Plat with visit cap:</ strong > Sky Club membership gets a boost</ li >
25052534 < li > < strong > Domestic-only traveler:</ strong > Global upgrades reduced by 60%</ li >
25062535 < li > < strong > Pushing for next status tier:</ strong > MQD value doubled</ li >
25072536 < li > < strong > Travel with family:</ strong > Gift status value increased by 50%</ li >
25082537 < li > < strong > High flight volume:</ strong > Upgrade cert value scales up (more chances to use)</ li >
25092538 </ ul >
25102539 </ div >
25112540
2541+ < div style = { { marginBottom : '1.25rem' } } >
2542+ < h4 style = { { fontWeight : 600 , color : 'var(--delta-blue)' , marginBottom : '0.5rem' } } > Step 3: Selection Timing</ h4 >
2543+ < p > When you select affects certain benefits dramatically:</ p >
2544+ < ul style = { { marginTop : '0.5rem' , marginLeft : '1.25rem' , lineHeight : '1.8' } } >
2545+ < li > < strong > Upgrade certificates:</ strong > Must be booked AND flown by Jan 31. Late selection = huge penalty.</ li >
2546+ < li > < strong > Sky Club membership:</ strong > Expires Jan 31. Selecting in December = ~2 months of access.</ li >
2547+ < li > < strong > Gifted status:</ strong > Recipients' status expires Jan 31 regardless of when you gift it.</ li >
2548+ < li > < strong > Miles, vouchers, Amex credit:</ strong > No timing penalty — use anytime or don't expire.</ li >
2549+ </ ul >
2550+ </ div >
2551+
25122552 < div style = { { marginBottom : '1rem' } } >
2513- < h4 style = { { fontWeight : 600 , color : 'var(--delta-blue)' , marginBottom : '0.5rem' } } > Step 3 : Priority Boost</ h4 >
2553+ < h4 style = { { fontWeight : 600 , color : 'var(--delta-blue)' , marginBottom : '0.5rem' } } > Step 4 : Priority Boost</ h4 >
25142554 < p > Benefits matching your stated priorities get a 20-30% score boost to reflect personal preference beyond pure dollar value.</ p >
25152555 </ div >
25162556
@@ -2613,6 +2653,13 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
26132653 active : false ,
26142654 applies : answers . travelCompanions !== 'family' ,
26152655 impact : '→ Gift status value increases 50%'
2656+ } ,
2657+ {
2658+ id : 'late_selection' ,
2659+ label : 'What if I wait until late in the year?' ,
2660+ active : false ,
2661+ applies : answers . selectionTiming === 'early' || answers . selectionTiming === 'mid' ,
2662+ impact : '→ Upgrade certs, Sky Club, gift status lose value'
26162663 }
26172664 ] . filter ( s => s . applies ) ) ;
26182665
@@ -2647,6 +2694,9 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
26472694 case 'travel_companions' :
26482695 modified . travelCompanions = 'family' ;
26492696 break ;
2697+ case 'late_selection' :
2698+ modified . selectionTiming = 'late' ;
2699+ break ;
26502700 }
26512701 }
26522702 } ) ;
@@ -2668,8 +2718,12 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
26682718 if ( answersToUse . hasAmex === 'none' || answersToUse . hasAmex === 'gold' ) {
26692719 score = 0 ;
26702720 reasons . push ( 'You need an eligible Delta Amex card (Platinum, Reserve, or Business versions) for this benefit.' ) ;
2671- } else {
2672- reasons . push ( `Great value - this credit more than covers your ${ answersToUse . hasAmex === 'reserve' ? 'Reserve' : 'Platinum' } card annual fee.` ) ;
2721+ } else if ( answersToUse . hasAmex === 'multiple' ) {
2722+ reasons . push ( 'With multiple eligible cards, apply this to your Reserve to offset more of its $695 fee, or to your Platinum if you value that card\'s benefits more.' ) ;
2723+ } else if ( answersToUse . hasAmex === 'platinum_amex' ) {
2724+ reasons . push ( 'Great value — this credit covers your entire $350 Platinum card annual fee.' ) ;
2725+ } else if ( answersToUse . hasAmex === 'reserve' ) {
2726+ reasons . push ( 'Good value — this credit offsets a significant portion of your $695 Reserve card annual fee.' ) ;
26732727 }
26742728 }
26752729
@@ -2697,6 +2751,18 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
26972751 if ( answersToUse . flightsPerYear > 30 ) {
26982752 reasons . push ( `With ${ answersToUse . flightsPerYear } flights/year, you have plenty of opportunities to use these.` ) ;
26992753 }
2754+
2755+ // CRITICAL: Selection timing penalty for upgrade certificates
2756+ if ( answersToUse . selectionTiming === 'lastminute' ) {
2757+ score *= 0.2 ;
2758+ reasons . push ( '⚠️ TIMING WARNING: Selecting near the deadline gives you only weeks to book AND fly. Certificates expire Jan 31 — strongly consider miles or vouchers instead.' ) ;
2759+ } else if ( answersToUse . selectionTiming === 'late' ) {
2760+ score *= 0.5 ;
2761+ reasons . push ( '⚠️ Timing concern: With 3-5 months to use these, make sure you have upgradeable trips planned. Certificates must be booked AND flown by Jan 31.' ) ;
2762+ } else if ( answersToUse . selectionTiming === 'mid' ) {
2763+ score *= 0.85 ;
2764+ reasons . push ( 'You\'ll have 6-10 months to use these — reasonable window, but plan your trips soon after selecting.' ) ;
2765+ }
27002766 }
27012767 }
27022768
@@ -2718,12 +2784,30 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
27182784 if ( answersToUse . loungeAccess === 'reserve' || answersToUse . loungeAccess === 'membership' ) {
27192785 score = 0 ;
27202786 reasons . push ( 'You already have unlimited Sky Club access.' ) ;
2787+ } else if ( answersToUse . loungeAccess === 'amex_plat_unlimited' ) {
2788+ score *= 0.2 ;
2789+ reasons . push ( 'You already have unlimited access via Amex Platinum spend threshold. Only valuable if you want to drop that card.' ) ;
2790+ } else if ( answersToUse . loungeAccess === 'amex_plat_limited' ) {
2791+ score *= 1.3 ;
2792+ reasons . push ( 'Strong choice — your 10-visit Amex Platinum cap may not be enough. This provides unlimited access.' ) ;
2793+ } else if ( answersToUse . loungeAccess === 'day_pass' ) {
2794+ score *= 1.1 ;
2795+ reasons . push ( 'Could provide good value if you visit clubs frequently. At $50-75/visit, a few visits make this worthwhile.' ) ;
27212796 } else if ( answersToUse . loungeAccess === 'none' ) {
27222797 score *= 0.3 ;
27232798 reasons . push ( 'Since you don\'t typically use Sky Clubs, this may not be your best value.' ) ;
27242799 } else {
27252800 reasons . push ( 'Could provide good value if you frequently visit Sky Clubs.' ) ;
27262801 }
2802+
2803+ // Timing penalty — membership expires at Medallion year end
2804+ if ( answersToUse . selectionTiming === 'lastminute' ) {
2805+ score *= 0.15 ;
2806+ reasons . push ( '⚠️ TIMING WARNING: Membership expires Jan 31 — you\'d only get weeks of access. Not recommended.' ) ;
2807+ } else if ( answersToUse . selectionTiming === 'late' ) {
2808+ score *= 0.4 ;
2809+ reasons . push ( '⚠️ Timing concern: With only 3-5 months until expiration, calculate if the visits justify the choice slots.' ) ;
2810+ }
27272811 }
27282812
27292813 // Gift Status
@@ -2737,6 +2821,15 @@ <h4 style={{ fontWeight: 600, color: 'var(--delta-blue)', marginBottom: '0.5rem'
27372821 } else {
27382822 reasons . push ( 'Can be valuable if you have someone specific who would use the benefits.' ) ;
27392823 }
2824+
2825+ // Timing penalty — gifted status expires at Medallion year end
2826+ if ( answersToUse . selectionTiming === 'lastminute' ) {
2827+ score *= 0.2 ;
2828+ reasons . push ( '⚠️ TIMING WARNING: Gifted status expires Jan 31 — recipients would only get weeks of benefits.' ) ;
2829+ } else if ( answersToUse . selectionTiming === 'late' ) {
2830+ score *= 0.5 ;
2831+ reasons . push ( '⚠️ Timing concern: With only 3-5 months of status, recipients get limited value from upgrades and benefits.' ) ;
2832+ }
27402833 }
27412834
27422835 // Miles
@@ -2935,7 +3028,8 @@ <h2 className="card-title" style={{ color: 'var(--delta-red)' }}>⚠️ 2026 Cha
29353028 const [ screen , setScreen ] = useState ( 'welcome' ) ; // welcome, questions, results
29363029 const [ currentQuestion , setCurrentQuestion ] = useState ( 0 ) ;
29373030 const [ answers , setAnswers ] = useState ( {
2938- flightsPerYear : 25
3031+ flightsPerYear : 25 ,
3032+ selectionTiming : 'early'
29393033 } ) ;
29403034
29413035 const handleStart = ( ) => {
@@ -3032,7 +3126,7 @@ <h2 className="card-title" style={{ color: 'var(--delta-red)' }}>⚠️ 2026 Cha
30323126 </ a >
30333127 </ p >
30343128 < p style = { { marginTop : '0.75rem' , fontSize : '0.7rem' , color : 'var(--gray-400)' } } >
3035- © { new Date ( ) . getFullYear ( ) } Spencer X Smith. Free to use, not free to redistribute .
3129+ © { new Date ( ) . getFullYear ( ) } Spencer X Smith. Free to use.
30363130 </ p >
30373131 </ footer >
30383132 </ div >
0 commit comments