Cardiovascular Fitness Score Estimator

Cardiovascular Fitness Score Estimator

Estimate your VO2 Max with a simple 3-minute step test.

Tell us about yourself

How to measure: Sit quietly for 5 minutes. Place two fingers on your wrist or neck, count the beats for 30 seconds, and multiply by 2.

3-Minute Step Test Instructions

This test requires a 12-inch (30.5 cm) high step or bench and a stopwatch.

  1. Set a metronome or timer to 96 beats per minute (or follow a "up, up, down, down" rhythm every 2.5 seconds).
  2. Step up with one foot, then the other. Step down with the first foot, then the other. Continue this for exactly 3 minutes.
  3. Immediately after finishing, sit down and find your pulse.
  4. Count your heart beats for a full 60 seconds (from 5 to 65 seconds post-exercise).

Enter your 60-second heart rate count below.

${userState.fitnessCategory}

`; const insightsHtml = insightsText .replace(/### (.*?)\n/g, '

$1

') .replace(/\n\n/g, '

') .replace(/\n- /g, '
  • ') .replace(/(\n- .*?)+/g, (match) => match.replace(/\n- /g, '
  • ') + '
') .replace(/
  • /,'') .replace(/\*\*(.*?)\*\*/g, '$1'); summaryContentContainer.innerHTML = resultsHtml + insightsHtml; }; // --- PDF GENERATION --- const handleDownloadPdf = () => { const content = document.getElementById('pdf-content'); if (!content) return; html2canvas(content, { scale: 2, useCORS: true, backgroundColor: '#ffffff' }) .then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = pdf.internal.pageSize.getHeight(); const ratio = canvas.width / canvas.height; const imgWidth = pdfWidth - 20; let imgHeight = imgWidth / ratio; let heightLeft = imgHeight; let position = 10; pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight); heightLeft -= (pdfHeight - 20); while (heightLeft > 0) { position = -heightLeft - 10; pdf.addPage(); pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight); heightLeft -= (pdfHeight - 20); } pdf.save('My-Cardio-Fitness-Report.pdf'); }) .catch(err => console.error("PDF Generation Error:", err)); }; // --- START THE APP --- initialize(); });
  • Scroll to Top