New reading
Today's readings
30-day trend
Summary
Reading by hour
Heatmap · day × hour
Time-bucket averages
Clinical report
Average blood pressure
Classification distribution
Reading log
| Date | Time | BP | Pulse | Class | Notes |
|---|
Random reminders
The day is split into N equal windows between your wake and sleep times. One reminder fires at a random moment in each window you haven't yet logged a reading for. This approach gives you broader temporal coverage than purely random alerts and helps surface confounders (caffeine, meals, exertion, time-of-day patterns) that might be biasing your data.
Try it with demo data
Adds synthetic readings with realistic time-of-day variation and a slight downward trend (as if a new med is working). Wipe afterward before logging real data.
Import from Google Fit
From Google Takeout, select Fit, download the archive, and locate
Takeout/Fit/All Data/derived_com.google.blood_pressure*.json
(or the matching CSV under Daily Aggregations).
Drop it below — duplicates are skipped automatically.
Export your data
Display
Install as PWA
For best background notification support on Android, install this site as an app. Chrome menu → "Add to Home screen" / "Install app". On iOS Safari, share → "Add to Home Screen" (note: iOS limits notification scheduling for PWAs to roughly when they're foregrounded).
Danger zone
All readings live in your browser's IndexedDB. Wiping is irreversible. Export first.
About · technical notes
bp-tracker. No external services are contacted other than
loading Chart.js and Google Fonts on first visit (then cached by the service worker for offline use).
The classification scheme follows the 2017 ACC/AHA guideline.
The "highest-of (sys, dia)" rule is the standard convention — a reading of 118/92 classifies as Stage 2.
Pulse pressure (SYS − DIA) is included because cardiologists evaluating antihypertensives often look at it
alongside the absolute numbers.