nvandi.data
Real Client Project HEALTH TECH & SPREADSHEET AUTOMATION · 2026

Whoop Health Analytics & Weekly Reporting Dashboard

Built a clinical health analytics dashboard with Chart.js and html2canvas—rendering stacked line charts with prior/recent period comparison inside Google Sheets via Apps Script sidebar. Exports Retina PNG reports directly for Healthie clinical records.

How it works

01

Google Sheets

Raw data, 1 row / day

02

Apps Script

Builds the chart configs

03

QuickChart

Renders them to images

04

Google Drive

Auto-saved as Slides

05

Ready to send

Client-ready Slide deck

No separate hosting to maintain. It runs entirely inside Google and refreshes on a schedule.

01. The Challenge & Core Requirement

Whoop fitness wearables produce raw multi-row daily exports containing heart rate variability (HRV in ms), recovery scores (%), and sleep performance (%). Processing raw CSV spreadsheet logs for multiple patients required clinical staff to manually copy data, compute averages, and create static charts—consuming 3+ hours per week per patient cohort.

The health tech studio needed an automated, embedded dashboard running directly inside Google Sheets that could aggregate multi-row intra-day entries, render 3 stacked clinical metric charts (HRV, Sleep, Recovery) with synchronized cursors, compare current vs. prior period metrics, and export high-resolution PNG charts directly into Healthie patient progress notes.

02. My Core Role & Dashboard Implementation

My responsibility was designing the client-side Chart.js dashboards, structuring the data aggregation pipeline from Sheets to sidebar HTML, and building the Google Apps Script integration code:

  • Automated Data Aggregation (aggregateByDate): Developed a custom JS data transformer that deduplicates multi-row intra-day entries, filters null/NaN values, and calculates clean daily averages for HRV, Recovery, and Sleep.
  • Synchronized 3-Metric Clinical Stack: Designed three stacked Chart.js line charts with synchronized crosshair tooltips—allowing clinicians to instantly correlate night-time sleep scores with morning recovery readiness.
  • Dynamic Date Picker & Period Delta Engine: Implemented interactive period selection tabs (Weekly, Bi-Weekly, Monthly) and a date picker that calculates percentage change deltas against previous baseline periods.
  • Google Apps Script Sidebar & Healthie Export: Deployed the web app as a custom Google Sheets sidebar (Code.js + sidebar.html) with a one-click html2canvas exporter generating 2x Retina PNG images for Healthie clinical notes.

03. Data Transformation Pipeline & Dashboard Visualization

Below is an interactive 3-stage visual flow demonstrating how messy raw spreadsheet logs are automatically aggregated into clean daily tables and transformed into final Whoop health dashboards:

01. Raw Spreadsheet Data (Multi-Patient Logs)

Raw wearable sensor exports contain mixed multi-patient entries with irregular timestamps, duplicate readings, and missing null values:

#DateTimePatientHRV (ms)RecoverySleepRHRStrain
12026-05-0408:30:15Patient #1046278%null5012.4
22026-05-0414:15:00Patient #104null78%nullnullnull
32026-05-0422:00:45Patient #10466null85%4814.8
42026-05-0407:45:10Patient #2085465%76%559.8
52026-05-0418:20:00Patient #2085665%null5411.2
62026-05-0508:10:00Patient #1045860%72%5310.2
72026-05-0508:00:00Patient #2086082%88%5113.5

02. Data Readiness Check & Automation Dispatch Log

The script automatically validates whether date period ranges are complete (YES / NO), then records the automated Google Slides export logs:

Data Readiness Check Matrix
PatientMonthWeekly 1Weekly 2Weekly 3Weekly 4Weekly 5Bi-Weekly 1Bi-Weekly 2Monthly
Patient #1041NONONONONONONONO
Patient #104...NONONONONONONONO
Patient #1045YESNONONONONONONO
Patient #2081NONONONONONONONO
Patient #2085YESNONONONONONONO
Automation Export & Dispatch Log
PatientRendered TimestampDoc LinkData RangePeriodFile Namesent_atStatusSource
Patient #10414/05/2026https://docs.google.com/presentation/d/.../view2026-05-04_2026-05-10W1Patient104_Weekly_W1_2026-05-04_2026-05-10-Savedauto
Patient #20814/05/2026https://docs.google.com/presentation/d/.../view2026-05-04_2026-05-10W1Patient208_Weekly_W1_2026-05-04_2026-05-10-Savedauto

03. Whoop Health Report Dashboard

Final clinical dashboard output featuring period comparisons (W / 2W / M), vertical split lines, and p25-p75 interquartile bands:

Whoop Health Report

Feb 03 – Feb 16, 2026 · Biweekly (Prior Week vs Recent Week)
Patient #104
Heart Rate Variability (HRV)
PRIOR: 56 msRECENT: 64 ms
+14.2%
SPLIT
Resting Heart Rate (RHR)
PRIOR: 53 bpmRECENT: 49 bpm
-7.5%
Recovery Score
78%
+21.8%
5x Green2x Yellow0x Red
Day Strain
12.4
+1.2
4x Mod (10-14)1x Stren (>14)2x Light
Sleep Efficiency
85%
+14.8%

04. Key Deliverables & Outcomes

The automated Whoop reporting dashboard eliminated over 3.5 hours of manual reporting overhead per patient cohort each week. Clinicians can now open any patient Google Sheet, click the "Whoop Dashboard" sidebar menu, review live interactive recovery trends, and attach high-res clinical PNG charts directly into Healthie patient records with a single click.

Need interactive dashboards or Google Sheets integration?

I specialize in building responsive Chart.js and JavaScript visualization embeds that integrate cleanly into any CMS or web application.

Hire on Upwork ↗