Happiness Compass Assessment

The Happiness Compass Assessment is a simple—but powerful—self-reflection tool designed to help you pinpoint where you stand in four core dimensions of well-being: Emotional Balance, Purpose & Growth, Relationships, and Daily Joys. By taking just 5–10 minutes to score yourself, you’ll uncover which “quadrants” need more attention and get actionable insights to cultivate lasting happiness.


Rate each factor from 1 (lowest) to 10 (highest) based on how much it currently adds to—or subtracts from—your overall happiness. Example: If you rarely spend time with friends, set Relationships = 2; if you feel daily purpose in your work, set Purpose = 8.

Happiness Compass: 10-Factor Well-Being Assessment

10 Positive Drivers (What Uplifts You)

10 Negative Drains (What Diminishes You)

`; improveHtml = `
  • Consider professional help: a counselor or coach can give clarity.
  • Start tiny: 5-minute breathing or a short walk to reduce stress.
`; linksHtml = ` `; } // Render result & gauge const resultDiv = document.getElementById('happiness-10x-result'); resultDiv.innerHTML = categoryText; resultDiv.style.color = color; const gaugeDiv = document.getElementById('happiness-10x-gauge'); gaugeDiv.innerHTML = `
`; // Render radar chart renderRadarChart(pos, neg); // Render summary, tips, and live article links const tipsContainer = document.getElementById('happiness-10x-tips'); tipsContainer.innerHTML = ` ${summaryHtml} ${improveHtml}

Related Articles:

${linksHtml} `; // Save session & update UI saveSession(pos, neg, score); renderHistory(); updateStreak(); renderShareButtons(categoryText); renderJournalSection(); } function downloadHappinessCSV() { const headers = ['Type','Factor','Rating']; let rows = []; const posLabels = [ 'Relationships (Friends & Family)', 'Purpose & Meaning', 'Physical Health', 'Mental & Emotional Well-Being', 'Financial Security', 'Personal Growth & Learning', 'Leisure & Relaxation', 'Community & Belonging', 'Creativity & Self-Expression', 'Recognition & Achievement' ]; const negLabels = [ 'Chronic Stress & Burnout', 'Financial Anxiety (Debt, Expenses)', 'Physical Health Issues', 'Mental Health Struggles', 'Relationship Conflicts', 'Social Isolation & Loneliness', 'Work Overload & Pressure', 'Fear of Failure & Self-Doubt', 'Lack of Purpose or Direction', 'Excessive Screen Time / Social Media' ]; for (let i = 1; i <= 10; i++) { const rating = parseInt(document.getElementById('pos' + i).value) || ''; rows.push(['Positive', posLabels[i-1], rating]); } for (let i = 1; i <= 10; i++) { const rating = parseInt(document.getElementById('neg' + i).value) || ''; rows.push(['Negative', negLabels[i-1], rating]); } let csvContent = headers.join(',') + '\r\n'; rows.forEach(r => { csvContent += `"${r[0]}","${r[1]}",${r[2]}\r\n`; }); const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); const link = document.createElement('a'); link.setAttribute('href', URL.createObjectURL(blob)); link.setAttribute('download', 'happiness_compass_10x.csv'); link.style.display = 'none'; document.body.appendChild(link); link.click(); document.body.removeChild(link); } function emailHappinessSummary() { calculateHappiness10x(); const resultText = document.getElementById('happiness-10x-result').innerText; const articleLinks = Array.from( document.querySelectorAll('#happiness-10x-tips a') ).map(a => `${a.textContent}: ${a.href}`).join('\n'); const subject = encodeURIComponent('My Happiness Compass 10× Results'); const body = encodeURIComponent( `Here is my Happiness Compass 10× result:\n\n${resultText}\n\nRelated Articles:\n${articleLinks}\n\nGenerated via Best of Motivation.` ); window.location.href = `mailto:?subject=${subject}&body=${body}`; } document.getElementById('download-pdf').addEventListener('click', async () => { const { jsPDF } = window.jspdf; const doc = new jsPDF({ unit: 'pt', format: 'letter' }); doc.setFontSize(18); doc.setTextColor('#2a3d66'); doc.text('My Happiness Compass Report', 40, 60); const categoryText = document.getElementById('happiness-10x-result').innerText; doc.setFontSize(14); doc.setTextColor('#333'); doc.text(`Overall Rating: ${categoryText}`, 40, 100); doc.setFontSize(12); let y = 140; doc.text('Positive Drivers:', 40, y); y += 20; for (let i = 1; i <= 10; i++) { const label = document.querySelector(`label[for="pos${i}"]`).innerText.split('\n')[0]; const val = document.getElementById(`pos${i}`).value; doc.text(`• ${label}: ${val}`, 60, y); y += 18; } y += 10; doc.text('Negative Drains:', 40, y); y += 20; for (let i = 1; i <= 10; i++) { const label = document.querySelector(`label[for="neg${i}"]`).innerText.split('\n')[0]; const val = document.getElementById(`neg${i}`).value; doc.text(`• ${label}: ${val}`, 60, y); y += 18; } y += 20; doc.setFontSize(14); doc.setTextColor('#2a3d66'); doc.text('Recommended Articles:', 40, y); y += 20; Array.from(document.querySelectorAll('#happiness-10x-tips a')).forEach(linkEl => { const text = linkEl.textContent; const href = linkEl.href; if (y > 700) { doc.addPage(); y = 60; } doc.textWithLink(`• ${text}`, 60, y, { url: href }); y += 18; }); doc.save('happiness-compass-report.pdf'); }); function saveSession(pos, neg, score) { const now = new Date().toISOString(); const record = { timestamp: now, pos, neg, score }; const history = JSON.parse(localStorage.getItem('happinessHistory') || '[]'); history.push(record); localStorage.setItem('happinessHistory', JSON.stringify(history)); } function renderHistory() { const history = JSON.parse(localStorage.getItem('happinessHistory') || '[]'); const container = document.getElementById('happiness-history'); if (!history.length) { container.innerHTML = '

No history yet. Calculate your first session to track progress!

'; return; } let html = '

📈 Track My Progress

'; html += ''; html += ` `; history.slice(-5).reverse().forEach(rec => { const date = new Date(rec.timestamp).toLocaleDateString(undefined, { year:'numeric', month:'short', day:'numeric' }); html += ` `; }); html += '
Date Score
${date} ${rec.score}
'; container.innerHTML = html; } function updateStreak() { const history = JSON.parse(localStorage.getItem('happinessHistory') || '[]'); if (!history.length) return; const mostRecent = new Date(history[history.length - 1].timestamp).toDateString(); const previous = history.length > 1 ? new Date(history[history.length - 2].timestamp).toDateString() : null; let streak = parseInt(localStorage.getItem('happinessStreak') || '0', 10); const lastStreakDay = localStorage.getItem('happinessStreakDate') || ''; const today = new Date().toDateString(); if (lastStreakDay === today) { // nothing } else if (previous === new Date(Date.now() - 24 * 60 * 60 * 1000).toDateString() && mostRecent === today) { streak += 1; localStorage.setItem('happinessStreak', streak); localStorage.setItem('happinessStreakDate', today); } else if (mostRecent === today) { streak = 1; localStorage.setItem('happinessStreak', streak); localStorage.setItem('happinessStreakDate', today); } const badgeEl = document.getElementById('streak-badge'); if (streak >= 7) { badgeEl.innerHTML = `
🔥 Congratulations! You’ve completed a ${streak}-day streak! Here’s a special badge just for you!
`; } else { badgeEl.innerHTML = `
Your current streak: ${streak} day(s). Keep going!
`; } } function renderShareButtons(categoryText) { const tweetText = encodeURIComponent( `I scored "${categoryText}" on the Happiness Compass! How do you rate yourself? 👉 https://bestofmotivation.com/happiness-compass-assessment/` ); const twitterUrl = `https://twitter.com/intent/tweet?text=${tweetText}&via=bestofmotivation`; const linkedInUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent('https://bestofmotivation.com/happiness-compass-assessment/')}&title=${encodeURIComponent('My Happiness Compass Score: ' + categoryText)}`; document.getElementById('share-buttons').innerHTML = ` `; document.getElementById('badge-btn').innerHTML = ` `; document.getElementById('download-svg-badge').addEventListener('click', () => { const colorStyle = getComputedStyle(document.getElementById('happiness-10x-result')).color; downloadSVGBadge(categoryText, colorStyle); }); } function downloadSVGBadge(categoryText, color) { const svg = ` ${categoryText}
Happiness Compass: Ultimate 10-Factor Well-Being Assessment
`; const blob = new Blob([svg], { type: 'image/svg+xml;charset=utf-8' }); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'happiness-compass-badge.svg'; document.body.appendChild(link); link.click(); document.body.removeChild(link); } function renderJournalSection() { const savedJournal = JSON.parse(localStorage.getItem('happinessJournal') || 'null'); const journalHTML = `

✍️ Reflect & Journal

`; document.getElementById('journal-section').innerHTML = journalHTML; if (savedJournal) { document.getElementById('journal-entry').value = savedJournal.text; document.getElementById('journal-confirm').innerText = `Journal saved on ${savedJournal.timestamp}.`; } document.getElementById('save-journal').addEventListener('click', () => { const text = document.getElementById('journal-entry').value.trim(); if (!text) { alert('Please write something before saving.'); return; } const now = new Date().toLocaleString(); localStorage.setItem('happinessJournal', JSON.stringify({ text, timestamp: now })); document.getElementById('journal-confirm').innerText = `Journal saved on ${now}. Thank you for reflecting!`; }); } function resetHappinessTool() { // Reset all inputs to default "5" for (let i = 1; i <= 10; i++) { document.getElementById('pos' + i).value = 5; document.getElementById('neg' + i).value = 5; } // Clear LocalStorage keys localStorage.removeItem('happinessCompassValues'); localStorage.removeItem('happinessHistory'); localStorage.removeItem('happinessStreak'); localStorage.removeItem('happinessStreakDate'); localStorage.removeItem('happinessJournal'); // Clear all UI sections document.getElementById('happiness-10x-result').innerHTML = ''; document.getElementById('happiness-10x-gauge').innerHTML = ''; if (radarChart) { radarChart.destroy(); radarChart = null; } document.getElementById('happiness-10x-tips').innerHTML = ''; document.getElementById('happiness-history').innerHTML = ''; document.getElementById('share-buttons').innerHTML = ''; document.getElementById('badge-btn').innerHTML = ''; document.getElementById('journal-section').innerHTML = ''; document.getElementById('streak-badge').innerHTML = ''; } window.addEventListener('DOMContentLoaded', () => { const saved = JSON.parse(localStorage.getItem('happinessCompassValues') || 'null'); if (saved) { for (let i = 1; i <= 10; i++) { document.getElementById('pos' + i).value = saved.pos[i - 1]; document.getElementById('neg' + i).value = saved.neg[i - 1]; } calculateHappiness10x(); } renderJournalSection(); renderHistory(); updateStreak(); const resetBtn = document.getElementById('reset-tool'); if (resetBtn) { resetBtn.addEventListener('click', resetHappinessTool); } }); document.querySelectorAll('#happiness-compass input[type="number"]').forEach(input => { input.addEventListener('change', () => { const allValues = { pos: [], neg: [] }; for (let i = 1; i <= 10; i++) { allValues.pos.push(document.getElementById('pos' + i).value); allValues.neg.push(document.getElementById('neg' + i).value); } localStorage.setItem('happinessCompassValues', JSON.stringify(allValues)); }); });

The Happiness Compass Assessment is your gateway to a more balanced, fulfilling life. With just 5–10 minutes, you can pinpoint growth areas, set actionable goals, and start your journey toward greater well-being. Ready to boost your happiness? Dive in and start mapping your own path to joy! 🚀✨

CTA
👉 Discover Your True Happiness Levels Today! Take the full Happiness Compass Assessment and uncover powerful insights to boost your well-being. Explore the full article here! 🚀

Leave a Comment

Your email address will not be published. Required fields are marked *