LabTrend — Personal Biomarker Trend Tracker That Turns Lab PDFs Into Actionable Charts
You get bloodwork results as a PDF full of numbers and a reference range from 1987. LabTrend lets you upload any lab PDF, extracts every biomarker automatically, and plots your personal trends over months or years so you finally know if you are actually improving.
Difficulty
beginner
Category
Health and Wellness
Market Demand
High
Revenue Score
6/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
🏆 7/10
Validated by Real Pain
— sourced from real community discussions
Someone built a personal biomarker trend dashboard for themselves and found immediate demand from friends — current workarounds are Excel tracking and manual comparison of PDF printouts with no historical trend visibility.
What is it?
The 'I built a biomarker dashboard and now all my friends want it' pain is a classic pre-product signal — people are currently tracking blood panels in Excel, losing historical context every time they switch doctors, and staring at PDF reference ranges with no trend context. LabTrend extracts structured data from Quest, LabCorp, and any standard lab PDF using Claude vision, stores normalized biomarker readings per user, and renders trend charts with user-defined threshold bands. No HIPAA infrastructure required because users upload their own data and the product is a personal tracking tool, not a medical provider. Buildable in two weeks because Claude vision handles messy PDF layouts reliably, Recharts renders beautiful trend lines, and Supabase stores time-series data trivially.
Why now?
Claude vision's accuracy on dense PDF layouts reached production-ready quality in late 2024, making automated biomarker extraction from arbitrary lab PDFs viable for the first time without custom ML training.
- ▸Drag-and-drop PDF upload with Claude vision extraction that parses biomarker name, value, unit, and reference range from any standard lab format.
- ▸Personal trend chart per biomarker showing all historical readings on a timeline with the user's custom optimal range band overlaid.
- ▸Automatic flagging when a reading falls outside the user's personal historical norm, separate from the lab's generic reference range.
- ▸One-click shareable PDF report of all trends formatted for a doctor visit, generated from stored data.
Target Audience
Health-conscious consumers doing annual or quarterly bloodwork — roughly 15 million Americans who pay for private lab tests annually plus millions more who receive standard panel results.
Example Use Case
A 38-year-old male uploads four years of annual bloodwork PDFs in 10 minutes, sees his ferritin trending down across 8 panels, and books a follow-up with his GP with actual data to point at.
User Stories
- ▸As a health-conscious adult, I want to upload any lab PDF and see my biomarker trends over time, so that I can have an informed conversation with my doctor instead of staring at a single number.
- ▸As a biohacker tracking quarterly bloodwork, I want to set my own optimal range per biomarker, so that I get flagged when my personal trend changes even if I am still inside the lab's generic reference range.
- ▸As a user preparing for a doctor appointment, I want to generate a one-page PDF summary of my trends, so that I can share structured data instead of a stack of old lab printouts.
Done When
- ✓PDF extraction: done when uploading a standard Quest or LabCorp PDF produces a list of named biomarkers with values and dates visible on the dashboard within 15 seconds.
- ✓Trend chart: done when two or more panels are uploaded and a line chart with both readings appears per biomarker with dates on the x-axis.
- ✓Threshold flag: done when a user sets a custom threshold and a reading outside that range displays a visible red indicator on the chart without any page refresh.
- ✓Billing gate: done when a free user attempts a third PDF upload and sees a Stripe checkout modal before the upload is processed.
Is it worth building?
$9/month x 500 users = $4,500 MRR at month 6. $19/month x 200 power users = $3,800 MRR. Math: organic Reddit health communities drive 2,000 signups/month at 5% paid conversion. Honest caveat: consumer health SaaS has high churn — expect 8% monthly churn.
Unit Economics
CAC: $8 via Reddit organic posts at 0.4% conversion. LTV: $108 (12 months at $9/month, 8% monthly churn). Payback: 1 month. Gross margin: 91%.
Business Model
Freemium + SaaS subscription
Monetization Path
Free: 2 lab uploads lifetime. $9/month: unlimited uploads, trend history, custom thresholds. $19/month: family plan for 4 profiles.
Revenue Timeline
First dollar: week 2 via early signup upgrade. $1k MRR: month 3. $4k MRR: month 7.
Estimated Monthly Cost
Claude API: $40 (vision calls per PDF), Vercel: $20, Supabase: $25, Stripe fees: $15. Total: ~$100/month at launch.
Profit Potential
Solid lifestyle income at $4k-$8k MRR. Consumer health churn makes $20k MRR ambitious without a referral loop.
Scalability
Medium — family plan, provider-shareable PDF exports, and integration with continuous glucose monitor CSV exports are natural expansions.
Success Metrics
Month 1: 500 signups, 50 paid. Month 3: 150 paid, 75% still active. Month 6: $4k MRR.
Launch & Validation Plan
Post in r/Biohackers and r/bloodwork asking how people track lab results over time. Collect 50 email signups from a landing page before writing extraction logic.
Customer Acquisition Strategy
First customer: post in r/Biohackers and r/longevity offering free lifetime Pro access to the first 20 users who share their feedback publicly. Ongoing: SEO targeting 'track blood test results over time', TikTok demos showing the extraction magic, and ProductHunt launch.
What's the competition?
Competition Level
Medium
Similar Products
InsideTracker requires proprietary tests and costs $200+ per panel. Apple Health stores results but has zero trend visualization. Heads Up Health is $20/month but requires connecting healthcare accounts, not PDF upload.
Competitive Advantage
Cronometer and MyFitnessPal track nutrition not lab results. InsideTracker requires buying their proprietary tests. LabTrend works with any lab PDF you already have.
Regulatory Risks
Not a medical device — must include clear disclaimer that LabTrend is a personal data tracker and not medical advice. No HIPAA required because users self-upload their own records to a personal account. FDA medical device classification is not triggered by passive data display.
What's the roadmap?
Feature Roadmap
V1 (launch): PDF upload, Claude extraction, trend charts, custom thresholds, Stripe billing. V2 (month 2-3): shareable doctor PDF report, annual reminder emails, family plan. V3 (month 4+): CGM CSV import, supplement tracking correlation, mobile PWA.
Milestone Plan
Phase 1 (Week 1-2): PDF upload, extraction, basic trend chart ships. Phase 2 (Week 3-4): Stripe billing, threshold flags, seeded demo live. Phase 3 (Month 2): 150 paid users, doctor PDF export shipped.
How do you build it?
Tech Stack
Next.js, Claude API vision, Supabase, Recharts, Stripe — build with Cursor for PDF extraction logic, Lovable for dashboard UI, v0 for chart components
Suggested Frameworks
-
Time to Ship
2 weeks
Required Skills
Claude vision PDF extraction, Recharts time-series charts, Supabase schema for biomarker time-series, Next.js file upload.
Resources
Anthropic Claude vision docs, Recharts docs, Supabase quickstart, pdf-parse npm package as fallback.
MVP Scope
app/page.tsx (landing + upload hero), app/dashboard/page.tsx (biomarker list and trend charts), app/api/upload/route.ts (PDF to Claude vision extraction), app/api/biomarkers/route.ts (historical readings fetch), lib/extract.ts (Claude vision prompt and JSON parser), lib/db/schema.ts (Drizzle schema for profiles, panels, readings), components/TrendChart.tsx (Recharts line chart with threshold bands), components/BiomarkerCard.tsx (current vs previous reading), seed.ts (demo profile with 3 years of readings), .env.example.
Core User Journey
Upload lab PDF -> extraction runs in 10 seconds -> trend charts appear with all historical readings -> set personal threshold -> upgrade when third upload is attempted.
Architecture Pattern
User uploads PDF -> Vercel API route -> base64 to Claude vision -> structured JSON of biomarker readings -> Supabase insert -> Recharts renders trend line -> optional shareable PDF generated server-side.
Data Model
User has many LabPanels. LabPanel has many Readings. Reading has biomarkerName, value float, unit, referenceRangeLow, referenceRangeHigh, panelDate. User has many ThresholdPreferences per biomarkerName.
Integration Points
Claude API vision for PDF biomarker extraction, Supabase for user profiles and reading time-series, Stripe for billing, Vercel Blob for PDF temporary storage, Resend for annual bloodwork reminder emails.
V1 Scope Boundaries
V1 excludes: continuous glucose monitor CSV import, family plan multi-profile, doctor-facing portal, HL7 FHIR integration, mobile app.
Success Definition
A paying user uploads their second year of bloodwork without any prompting, sees a trend they were not aware of, and shares the chart URL with their doctor.
Challenges
Consumer health is a graveyard of abandoned apps — the real challenge is retention after the initial 'wow' of seeing trends. Users who do bloodwork once a year have 12 months of silence between uploads. Building a re-engagement loop around annual reminders and trend alerts is critical to survival. Claude vision accuracy on non-standard lab PDF layouts is the main technical risk.
Avoid These Pitfalls
Do not attempt to interpret or diagnose — any hint of medical advice language triggers regulatory scrutiny and user distrust simultaneously. Do not build the doctor-sharing feature before validating that users actually return for a second upload. Annual bloodwork cadence means retention data takes 12 months to measure — set this expectation honestly before building complex engagement features.
Security Requirements
Supabase Auth with Google OAuth, RLS scoping all readings to userId, PDF files deleted from Vercel Blob after extraction, input validation on all biomarker JSON fields, medical disclaimer displayed on every chart page.
Infrastructure Plan
Vercel for Next.js and API routes, Supabase for Postgres and auth, Vercel Blob for temporary PDF storage (deleted post-extraction), Sentry for errors, GitHub Actions for CI.
Performance Targets
PDF extraction end-to-end under 15 seconds, dashboard load under 2s, expected 200 DAU and 400 uploads/day at month-3 peak.
Go-Live Checklist
- ☐Security audit complete.
- ☐Stripe payment flow tested end-to-end.
- ☐Sentry error tracking live.
- ☐Vercel Analytics configured.
- ☐Custom domain with SSL set up.
- ☐Medical disclaimer and privacy policy published.
- ☐10 beta users signed off on extraction accuracy.
- ☐PDF deletion after extraction verified.
- ☐ProductHunt launch post drafted.
First Run Experience
On first run: dashboard shows a seeded demo profile with 3 years of ferritin, vitamin D, and HbA1c trend charts already rendered. User can explore all chart interactions, set a custom threshold, and see a flag trigger — all without uploading anything. Upload CTA is prominent above the demo data.
How to build it, step by step
1. Define Drizzle schema for User, LabPanel, Reading, ThresholdPreference in lib/db/schema.ts. 2. Build POST /api/upload route that accepts PDF, stores to Vercel Blob, and calls Claude vision with extraction prompt. 3. Write lib/extract.ts with Claude vision prompt that returns structured JSON array of biomarker readings with name, value, unit, date. 4. Build POST /api/biomarkers route that inserts extracted readings into Supabase with panelId foreign key. 5. Use v0 to generate TrendChart component using Recharts LineChart with threshold band overlay. 6. Build dashboard page that fetches all readings grouped by biomarkerName and renders one TrendChart per marker. 7. Build BiomarkerCard component showing current value vs previous reading with delta indicator. 8. Add Stripe billing gate on third upload attempt with $9/month plan. 9. Seed demo account with 3 years of realistic bloodwork data so landing page demo works without uploading. 10. Verify: upload a real lab PDF, confirm all biomarkers extracted correctly, confirm trend chart renders, confirm Stripe gate fires on third upload.
Generated
June 5, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.