FREE — 60-second posture & pain check. Get your score instantly.
Hurt in a crash? Get checked free — we bill your Utah PIP and handle every form. Get checked →
Free Interactive Scorecard

The 60-Second Posture & Pain Scorecard

In 60 seconds, find out whether your neck or back pain is something to fix now — or just live with. Answer 8 quick questions and get your personalized posture & pain risk score, plus exactly what to do next.

5.0 / 435 reviews · Built by Dr. Cody Mecham, DC · No diagnosis — just clarity.

How this fits in: This Scorecard is your free 60-second self-check (step 1). Based on your result you can book a free in-office Posture Screening with Dr. Mecham (step 2), and if care is warranted, a $49 new-patient relief visit (step 3).

Ready? It takes about 60 seconds.

8 quick taps. No download, no phone call. Get your personalized posture & pain risk score and exactly what to do next. New here? Read about forward head posture and tech neck first.

Educational only — not a diagnosis

This Scorecard estimates risk based on your answers — it is not a medical diagnosis and does not replace an exam by a licensed healthcare professional. If you have severe, sudden, or worsening symptoms, seek care promptly; if it's an emergency, call 911.

5.0
Star Rating
435
Patient Reviews
8
Quick Questions
60s
To Your Score

The 8 Questions

What the Scorecard Asks (and Why)

These are the exact 8 questions in the Scorecard. The more "higher concern" answers you have, the more it's worth getting checked.

How often do you feel neck, back, or shoulder pain?

Choose the option that fits best: Rarely or never; A few times a month; Weekly; or Most days. The more frequent your pain, the higher your posture and pain risk score.

How long have you had this pain or stiffness?

Choose: No real pain; Less than 2 weeks; 2 weeks to 3 months; or More than 3 months. Pain lasting longer than three months points to a pattern worth addressing sooner rather than later.

How many hours a day are you sitting (desk, driving, phone)?

Choose: Under 3; 3 to 5; 6 to 8; or 9 or more. Sitting six or more hours a day is the leading driver of forward-head posture and the spinal strain we see most often.

When you catch your reflection, how's your posture?

Choose: Upright and aligned; A little rounded; Noticeably hunched or forward head; or I avoid looking. Rounded or forward-head posture is an early sign that correction is worthwhile.

Do you get headaches that start at the base of your skull or neck?

Choose: Never; Occasionally; A few times a week; or Almost daily. Headaches that begin at the base of the skull or neck often trace back to the cervical spine and posture.

Does the pain limit anything you want to do (sleep, workouts, work, play with kids)?

Choose: Not at all; A little; Often; or Significantly. When pain limits your daily life, it has moved past a nuisance and is worth a proper exam.

Any numbness, tingling, or pain shooting into an arm or leg?

Choose: No; Rarely; Sometimes; or Frequently. Numbness, tingling, or radiating pain can signal nerve involvement. If this happens frequently, the Scorecard routes you to seek prompt professional attention regardless of your total score.

What have you tried so far?

Choose: Nothing yet; Rest or OTC meds with no lasting relief; Stretching or massage but it comes back; It keeps getting worse; or It's fully resolved. What hasn't worked tells us whether a corrective approach is the smarter next step.

'; } function hexToRgb(h) { h = h.replace('#', ''); return [parseInt(h.substr(0, 2), 16), parseInt(h.substr(2, 2), 16), parseInt(h.substr(4, 2), 16)]; } // --- Lazy-load jsPDF (356 KB) only when the visitor actually asks for the PDF --- var _jspdfPromise = null; function loadJsPDF() { if (window.jspdf && window.jspdf.jsPDF) return Promise.resolve(); if (_jspdfPromise) return _jspdfPromise; _jspdfPromise = new Promise(function (resolve, reject) { var s = document.createElement('script'); s.src = '/js/jspdf.umd.min.js'; s.async = true; s.onload = function () { resolve(); }; s.onerror = function () { _jspdfPromise = null; reject(new Error('jsPDF failed to load')); }; document.head.appendChild(s); }); return _jspdfPromise; } // Public entry point used by the "Download My Scorecard" button. function generateScorecardPDF(total, btn) { var label = btn ? btn.innerHTML : null; if (btn) { btn.disabled = true; btn.innerHTML = 'Preparing your PDF...'; } var restore = function () { if (btn) { btn.disabled = false; btn.innerHTML = label; if (window.lucide) lucide.createIcons(); } }; loadJsPDF().then(function () { restore(); renderScorecardPDF(total); })['catch'](function () { restore(); alert('Your scorecard PDF could not be generated. Please check your connection and try again.'); }); return false; } function renderScorecardPDF(total) { var JSP = window.jspdf ? window.jspdf.jsPDF : null; if (!JSP) { alert('Your scorecard PDF could not be generated. Please try again in a moment.'); return false; } var t = scoreTier(total); var c = hexToRgb(t.color); var doc = new JSP({ unit: 'pt', format: 'letter' }); var W = doc.internal.pageSize.getWidth(); var M = 48, y; // Header - logo + NAP (white) with blue accent var _lh = 42, _lw = _lh * (LOGO_W / LOGO_H); doc.addImage(MECHAM_LOGO, 'PNG', M, 30, _lw, _lh); doc.setTextColor(70, 70, 70); doc.setFont('helvetica', 'bold'); doc.setFontSize(10); doc.text('Mecham Chiropractic', W - M, 34, { align: 'right' }); doc.setFont('helvetica', 'normal'); doc.setFontSize(8.5); doc.setTextColor(115, 115, 115); doc.text('4700 South 900 East #16, Millcreek, UT 84117', W - M, 47, { align: 'right' }); doc.text('(801) 590-8615 | mechamchiro.com', W - M, 59, { align: 'right' }); doc.setDrawColor(59, 130, 246); doc.setLineWidth(2); doc.line(M, 84, W - M, 84); doc.setTextColor(17, 24, 39); doc.setFont('helvetica', 'bold'); doc.setFontSize(20); doc.text('Your Posture & Pain Scorecard', M, 108); doc.setFont('helvetica', 'normal'); doc.setFontSize(9.5); doc.setTextColor(80, 80, 80); doc.text('Dr. Cody Mecham, DC | 5.0 / 435 reviews', M, 124); // Prepared-for line y = 146; var d = new Date(); var dateStr = d.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }); doc.setTextColor(107, 114, 128); doc.setFontSize(10); doc.text((lead.name ? ('Prepared for ' + lead.name + ' - ') : '') + dateStr, M, y); // Score box y += 16; doc.setDrawColor(229, 231, 235); doc.setFillColor(249, 250, 251); doc.roundedRect(M, y, W - 2 * M, 54, 6, 6, 'FD'); doc.setTextColor(c[0], c[1], c[2]); doc.setFont('helvetica', 'bold'); doc.setFontSize(26); doc.text(String(total), M + 20, y + 36); var sw = doc.getTextWidth(String(total)); doc.setFontSize(12); doc.setTextColor(150, 150, 150); doc.text('/ 24', M + 26 + sw, y + 36); doc.setTextColor(c[0], c[1], c[2]); doc.setFont('helvetica', 'bold'); doc.setFontSize(12); doc.text(t.label.toUpperCase(), M + 110, y + 32); y += 78; function section(title, body) { doc.setTextColor(37, 99, 235); doc.setFont('helvetica', 'bold'); doc.setFontSize(13); doc.text(title, M, y); y += 17; doc.setTextColor(55, 65, 81); doc.setFont('helvetica', 'normal'); doc.setFontSize(11); var lines = doc.splitTextToSize(body, W - 2 * M); doc.text(lines, M, y); y += lines.length * 14 + 14; } section('What this means', scoreInsightText(total)); section('Recommended next step', t.next); // Answers doc.setTextColor(37, 99, 235); doc.setFont('helvetica', 'bold'); doc.setFontSize(13); doc.text('Your answers', M, y); y += 18; doc.setFontSize(10); for (var i = 0; i < QUESTIONS.length; i++) { if (y > 700) { doc.addPage(); y = 60; } var ai = answers[i]; var opt = (ai === null || ai === undefined) ? null : QUESTIONS[i].options[ai]; doc.setTextColor(55, 65, 81); doc.setFont('helvetica', 'normal'); var ql = doc.splitTextToSize((i + 1) + '. ' + QUESTIONS[i].q, W - 2 * M - 160); doc.text(ql, M, y); doc.setTextColor(17, 24, 39); doc.setFont('helvetica', 'bold'); doc.text(opt ? opt.t : '-', W - M, y, { align: 'right' }); y += Math.max(ql.length * 13, 14) + 6; } // Booking band + NAP y += 8; if (y > 636) { doc.addPage(); y = 60; } doc.setFillColor(59, 130, 246); doc.roundedRect(M, y, W - 2 * M, 74, 8, 8, 'F'); doc.setTextColor(255, 255, 255); doc.setFont('helvetica', 'bold'); doc.setFontSize(13); doc.text('Ready to book your visit?', W / 2, y + 22, { align: 'center' }); doc.setFont('helvetica', 'normal'); doc.setFontSize(10); doc.text('Call (801) 590-8615 | mechamchiro.com/new-patient-intake', W / 2, y + 40, { align: 'center' }); doc.setFontSize(9); doc.text('Mecham Chiropractic | 4700 South 900 East #16, Millcreek, UT 84117', W / 2, y + 57, { align: 'center' }); y += 90; // Disclaimer if (y > 720) { doc.addPage(); y = 60; } doc.setTextColor(150, 150, 150); doc.setFontSize(8); var disc = 'Educational only - this Scorecard estimates risk from your answers and is not a medical diagnosis. It does not replace an exam by a licensed healthcare professional. If you have severe, sudden, or worsening symptoms, seek care promptly; if it is an emergency, call 911.'; doc.text(doc.splitTextToSize(disc, W - 2 * M), M, y); doc.save('Mecham-Posture-Scorecard.pdf'); return true; } function showResultActions(total) { // After the scorecard: let them PRINT it, then send them to the intake form to schedule var ctaEl = document.getElementById('result-cta'); ctaEl.innerHTML = '' + '' + 'Bring Your Scorecard to Your Appointment '; lucide.createIcons(); } function showResult(total) { document.getElementById('quiz-screen').classList.add('hidden'); var rs = document.getElementById('result-screen'); rs.classList.remove('hidden'); var badge = document.getElementById('result-badge'); var scoreEl = document.getElementById('result-score'); var headingEl = document.getElementById('result-heading'); var bodyEl = document.getElementById('result-body'); var ctaEl = document.getElementById('result-cta'); var phoneEl = document.getElementById('result-phone'); scoreEl.innerHTML = total + ' / 24'; phoneEl.classList.add('hidden'); // RED-FLAG OVERRIDE — Q7 = "Frequently" routes here regardless of total if (redFlag) { badge.className = 'result-tier-badge tier-flag'; badge.textContent = 'Please get checked promptly'; headingEl.textContent = 'Some answers deserve prompt professional attention'; bodyEl.innerHTML = 'Some of your answers (numbness, tingling, or radiating pain) deserve prompt professional attention. ' + 'Please book an exam soon — or, if symptoms are severe or sudden, seek urgent care. If this is an emergency, call 911.'; phoneEl.classList.remove('hidden'); showResultActions(total); scrollToResult(); return; } if (total <= 6) { // Tier 1 — Low Concern (0–6) badge.className = 'result-tier-badge tier-low'; badge.textContent = 'Low Concern'; headingEl.textContent = 'Your Posture & Pain Score: Low Concern'; bodyEl.textContent = 'Your spine and posture are in decent shape — protect it. We\'ll email you 3 quick posture habits to keep it that way. A baseline check once a year is worth it.'; ctaEl.innerHTML = 'Book a Free Spine & Posture Screening '; } else if (total <= 14) { // Tier 2 — Moderate (7–14) badge.className = 'result-tier-badge tier-mod'; badge.textContent = 'Moderate — Worth Addressing'; headingEl.textContent = 'Your Posture & Pain Score: Moderate'; bodyEl.innerHTML = 'You\'re showing the early pattern that, left alone, tends to get worse — but this is the easiest stage to correct. The smart move is a proper exam now, not later. ' + '

Get checked + your first adjustment for $49 — and if we can\'t help, you pay $0.'; ctaEl.innerHTML = 'Book My $49 Relief Visit '; } else { // Tier 3 — High Concern (15–24) badge.className = 'result-tier-badge tier-high'; badge.textContent = 'High Concern — Don\'t Wait'; headingEl.textContent = 'Your Posture & Pain Score: High Concern'; bodyEl.innerHTML = 'Your answers point to a pattern that\'s already affecting your daily life. This is exactly what corrective chiropractic care is for. Dr. Mecham will give you an honest verdict on whether he can help — at your first visit. ' + '

Book your New-Patient Relief Visit — $49, same week, $0 if we can\'t help you.'; phoneEl.classList.remove('hidden'); } showResultActions(total); scrollToResult(); } function scrollToResult() { document.querySelector('.quiz-wrap').scrollIntoView({ behavior: 'smooth', block: 'start' }); } lucide.createIcons();