Tulip Experience - Smart Membership Calculator

🌷 Tulip Experience

Discover the perfect membership plan with our smart calculator. Get personalized recommendations and maximize your wellness investment.

Loading latest procedures...
💡

PRO TIP: Maximize Your Savings!

Procedures marked with offer significant savings when paid with membership points instead of cash. Most procedures have a point value of 1.5x the dollar value, but when the point value is cheaper than cash, you get extra value with your membership!

💎 Select Your Services

💎 Membership Points Breakdown

🌱

Tulip Seed

$100/month

Monthly Points: 150
Annual Points: 1,800
Bonus Points: 0%
Signup Bonus: 150
First Year Total: 1,950 points
🌿

Tulip Seed Plus

$200/month

Monthly Points: 300
Annual Points: 3,600
Bonus Points: 0%
Signup Bonus: 150
First Year Total: 3,750 points
🌼

Tulip Bloom

$250/month

Base Points: 375
Bonus (+10%): +37
Monthly Total: 412
Annual Points: 4,944
Signup Bonus: 300
First Year Total: 5,244 points
🌺

Tulip Royale

$400/month

Base Points: 600
Bonus (+20%): +120
Monthly Total: 720
Annual Points: 8,640
Signup Bonus: 550
First Year Total: 9,190 points
🏆

Golden Tulip

$600/month

Base Points: 900
Bonus (+30%): +270
Monthly Total: 1,170
Annual Points: 14,040
Signup Bonus: 950
First Year Total: 14,990 points
💰

Point Packages

One-time purchases

Starter Pack: $100 = 150 pts
Regular Pack: $200 = 300 pts
Plus Pack: $250 = 412 pts
Premium Pack: $400 = 720 pts
VIP Pack: $600 = 1,170 pts
Use when membership points aren't enough

💡 How Points Work

Point Value:
  • • Most procedures: $1 = 1.5 points
  • • Some procedures offer better point rates
  • • Look for ⭐ star procedures for best savings
  • • Higher memberships get bonus points
Membership Benefits:
  • Tulip Bloom+: Get bonus points monthly
  • All memberships: Signup bonus included
  • Unused points: Roll over to next month
  • Extra points: Buy packages as needed
`; },/* ----------------------------------------------------------------- print() Abre a janela nativa do navegador. Nela o usuário pode imprimir em papel ou selecionar "Save as PDF". ----------------------------------------------------------------- */ print() { const report = document.getElementById('analysis-results');if (!report || report.classList.contains('hidden') || !report.innerHTML.trim()) { alert('Please generate the final recommendation before printing.'); return; }window.print(); },/* ----------------------------------------------------------------- openCleanReport() Abre uma nova aba contendo somente o relatório final. É útil para revisar antes de imprimir ou copiar o conteúdo para outro sistema. ----------------------------------------------------------------- */ openCleanReport() { const html = this.buildStandaloneReportHtml(); if (!html) return;const win = window.open('', '_blank');if (!win) { alert('Your browser blocked the popup. Please allow popups and try again.'); return; }win.document.open(); win.document.write(html); win.document.close(); win.focus(); },/* ----------------------------------------------------------------- downloadDoc() Cria um arquivo .doc a partir do HTML do relatório. Esse arquivo pode ser: - aberto no Microsoft Word; - enviado ao Google Drive; - aberto/convertido no Google Docs. ----------------------------------------------------------------- */ downloadDoc() { const html = this.buildStandaloneReportHtml(); if (!html) return;const blob = new Blob(['\ufeff', html], { type: 'application/msword;charset=utf-8' });const today = new Date().toISOString().slice(0, 10); const filename = `Tulip_Experience_Final_Report_${today}.doc`;const url = URL.createObjectURL(blob); const link = document.createElement('a');link.href = url; link.download = filename; document.body.appendChild(link); link.click();setTimeout(() => { document.body.removeChild(link); URL.revokeObjectURL(url); }, 0); } };/* --------------------------------------------------------------------- printFinalReport() Wrapper global usado pelo botão do relatório final. --------------------------------------------------------------------- */ function printFinalReport() { ReportExporter.print(); }/* --------------------------------------------------------------------- downloadFinalReportDoc() Wrapper global usado pelo botão "Download DOC for Google Docs". --------------------------------------------------------------------- */ function downloadFinalReportDoc() { ReportExporter.downloadDoc(); }/* --------------------------------------------------------------------- openCleanPrintableReport() Wrapper global usado pelo botão de abrir relatório limpo. --------------------------------------------------------------------- */ function openCleanPrintableReport() { ReportExporter.openCleanReport(); }// Initialize Application async function init() { try { await GoogleSheetsLoader.loadData(); UIRenderer.renderServices(); UIRenderer.renderCategoryFilter(); } catch (error) { console.error('Failed to initialize application:', error); } }// Start the application init();