Skip to content

Commit 447c75b

Browse files
Update index.html
1 parent 3459a60 commit 447c75b

1 file changed

Lines changed: 126 additions & 32 deletions

File tree

index.html

Lines changed: 126 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,46 @@
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>
@@ -1675,13 +1689,14 @@
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
},
@@ -1735,10 +1750,11 @@
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
},
@@ -1767,6 +1783,18 @@
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

Comments
 (0)