Span Track
SpanTrack
Your neutral longevity biomarker dashboard — import results from any lab and watch your healthspan trending in real time.
Date: 2026-06-21 Form factor: web app Status: Prototype
What it is
SpanTrack is a service-agnostic personal biomarker dashboard where you log your blood test results from any source — Function Health, InsideTracker, your doctor's Quest/LabCorp draw, or OneTwenty — and visualize every marker's trend over time against longevity-optimized reference ranges, not just standard "normal" lab thresholds. Unlike testing-service dashboards that lock your data inside their ecosystem, SpanTrack belongs entirely to you.
Who it serves
Health-optimization enthusiasts (the "quantified self" cohort, 25–55) who run two or more comprehensive panels a year and currently juggle multiple service dashboards to piece together a coherent picture. Their specific pain: optimal longevity ranges (e.g. LDL-P < 1,000, hsCRP < 0.5 mg/L) are tighter than standard lab normals, but most lab portals don't surface them — leaving patients unable to spot the slow drift that predicts disease a decade out.
Why it could be profitable
Monetization model: Freemium — unlimited marker tracking free, premium tier at $9/month unlocks trend analytics, physician-ready PDF export, and reminder cadences. B2B: white-label API for concierge medicine practices and longevity clinics (charged per-seat).
The market is exploding. Function Health's April 2026 acquisition of Getlabs removed the last friction point in consumer blood testing by enabling true at-home phlebotomy visits, while OneTwenty is launching at $499/year in July 2026 — signals of a mass-market tipping point. The longevity diagnostics market is expected to reach $9.1 billion by 2034 (CAGR 15.8%), and 160+-biomarker panels at $365/year are now accessible to the consumer middle class, not just executives. The missing layer is a neutral, portable data home for multi-source results with longevity-specific reference ranges baked in.
Form factor & scope
A web app (mobile-responsive) that runs entirely in the browser with no backend. This prototype demonstrates: manual test-result entry, a grid dashboard with per-marker status and trend indicators, category filtering, and a detail view with a trend sparkline chart for any selected marker.
How to run it
- Open
index.htmlin any modern browser. No server or build step needed. - Sample data for four test dates (2025-07 through 2026-05) loads automatically.
- Click any biomarker card to expand its trend chart.
- Use the + Add Results button to log a new test entry via the modal form.
- Use the category filter tabs to narrow by metabolic, cardiovascular, inflammation, hormones, thyroid, or nutrient markers.
What's in this prototype
- Dashboard grid: 18 biomarkers across 6 categories, each with latest value, unit, trend arrow, and optimal/borderline/out-of-range status badge.
- Category filter tabs: All / Metabolic / Cardiovascular / Inflammation / Hormones / Thyroid / Nutrients.
- Detail panel: Click any card to see a sparkline trend chart of all historical readings and the longevity-optimal range band.
- Add results modal: Form-based entry for a new test date and set of marker values.
- Longevity reference ranges: Embedded optimal ranges derived from sources like Peter Attia's Outlive framework and published longevity research — displayed alongside (and clearly distinguished from) standard lab normals.
- Sample data: 4 test dates spanning July 2025 to May 2026, with realistic values for a 38-year-old male making gradual health improvements.
Roadmap
- Import via CSV/PDF (LabCorp, Quest, Rupa Health export formats)
- Wearable integration (Oura HRV, Garmin sleep, CGM glucose overlays)
- AI-generated trend narrative ("Your ApoB has dropped 18% since January — here's what likely moved the needle")
- Physician share link (read-only URL with selected markers)
- Alert emails when a marker crosses a user-defined threshold
- iOS/Android PWA with push notifications for test reminders
Sources
- https://www.fiercehealthcare.com/health-tech/function-health-acquires-mobile-healthcare-platform-getlabs-provide-members-home-lab — Function Health's April 2026 Getlabs acquisition, enabling at-home blood draws for 160+ biomarker panels
- https://marketintelo.com/report/longevity-anti-aging-biomarker-diagnostics-market — Longevity & Anti-Aging Biomarker Diagnostics market projected to reach $9.1B by 2034 at 15.8% CAGR
- https://finvsfin.com/function-health-vs-superpower-vs-insidetracker-vs-lifeforce/ — 2026 platform comparison confirming each service silos user data in its own dashboard
- https://insider.fitt.co/function-acquires-getlabs-brings-bloodwork-home/ — Bloodwork becoming "preventative health infrastructure" as multiple players pursue vertical integration in 2026
Requirements
SpanTrack — Requirements
Goals
- Let users record blood-test results from any lab service into a single, portable, browser-based record.
- Display each biomarker's trend over time against longevity-optimized reference ranges, visually distinct from standard lab normals.
- Require zero backend, zero auth, and zero configuration — open
index.htmland start tracking. - Make the current health status of each marker immediately legible (optimal / borderline / out-of-range) at a glance.
- Provide a detail view for any marker that reveals the full trend and reference band.
Primary user
A 28–55-year-old health-optimizer who runs 2–4 comprehensive blood panels per year through services like Function Health, InsideTracker, OneTwenty, or their concierge physician. They know their markers by name, want to spot slow adverse trends before symptoms appear, and are frustrated that each service locks their historical data behind a different login. They read Peter Attia and Andrew Huberman; they track their Oura scores; they are not afraid of a spreadsheet, but they want something more visual and structured.
Functional requirements
- FR1: The app must load with sample data pre-populated so the demo is immediately interactive without any user setup.
- FR2: Each biomarker must display: current (most recent) value, unit, trend direction vs. prior test, and status badge (Optimal / Borderline / Out of Range).
- FR3: Biomarkers must be filterable by category (All, Metabolic, Cardiovascular, Inflammation, Hormones, Thyroid, Nutrients) using tab controls.
- FR4: Clicking a biomarker card must open a detail view showing a sparkline trend chart of all recorded readings.
- FR5: The detail view must display a shaded band representing the longevity-optimal range and a separate line for the standard lab normal boundary.
- FR6: An "Add Test Results" workflow must allow the user to specify a test date and enter values for any subset of the available markers via a modal form.
- FR7: Newly added entries must immediately appear in the dashboard and update trend indicators without a page reload.
- FR8: Status badges must use color coding: green = Optimal, amber = Borderline, red = Out of Range, grey = no target defined.
- FR9: Trend direction must be represented as an up arrow, down arrow, or dash, color-coded by whether the movement is favorable or unfavorable for that specific marker (e.g., falling LDL is favorable; falling HDL is unfavorable).
- FR10: All data must persist in
localStorageso entries survive a page refresh within the same browser session. - FR11: The app must be fully usable on a mobile viewport (≥ 375px wide) via responsive layout.
- FR12: Biomarker reference ranges must include both the longevity-optimal range and the standard lab normal range, clearly labeled, so users understand the distinction.
- FR13: The prototype must load
sample-data.jsonvia afetchcall (or inline JSON fallback for file:// access) and merge it with anylocalStorageentries.
User stories
- As a health optimizer, I want to log the results from my latest Function Health panel so that I have a single home for all my lab data regardless of which service drew the blood.
- As a user, I want to see at a glance whether each of my biomarkers is in the longevity-optimal range, not just the standard lab normal, so I can act on subtle trends before they become clinical problems.
- As a user, I want to see a trend chart for my ApoB over the past 12 months so I can confirm that my dietary changes are having the expected effect.
- As a user, I want to filter my dashboard to show only cardiovascular markers so I can focus my review during a cardio-health deep-dive.
- As a first-time visitor, I want to see realistic sample data already loaded so I can understand the product value before entering any of my own results.
- As a user, I want to add a new test date and enter just the markers that were included in that panel, without having to fill in every field.
- As a mobile user, I want the dashboard to work comfortably on my phone so I can check my results on the go.
- As a user, I want the app to remember my manually entered data between browser sessions so I don't lose my history on a refresh.
Non-functional requirements
- No server-side code, no API calls, no authentication — pure client-side HTML/CSS/JS.
- All data stays in the browser (localStorage); nothing is transmitted externally.
- Must open and function correctly from a local
file://path (for maximum portability) as well as served over HTTP. - Third-party library usage limited to a single charting library (Chart.js from CDN) for the trend sparkline — no frameworks, no build toolchain.
- Page load must complete in under 2 seconds on a typical laptop browser.
- Color contrasts must meet WCAG AA standards for the status badge text and backgrounds.
Out of scope (for the prototype)
- CSV/PDF import from lab services.
- Account creation, cloud sync, or multi-device support.
- Real-time wearable integrations (CGM, Oura, Garmin).
- AI-generated narrative summaries.
- Physician share links.
- Push notifications or email reminders.
- Support for female-specific hormone ranges or pediatric ranges.
Open questions
- Should the user be able to customize the longevity-optimal ranges per marker, or are the defaults (based on published longevity medicine frameworks) fixed in v1?
- For markers where lower is not always better (e.g. testosterone can be too high), how should the "favorable direction" logic handle edge cases?
- Is localStorage sufficient for MVP or should an IndexedDB backend be considered for larger datasets (50+ test dates)?