Proofable biohacking
Your N-of-1 biohacking platform.
optiHealth syncs your wearables, supplements, feelings and places — then runs real statistics on a cohort of one. Correlations that pass false-discovery gates. Forecasts you can check against what actually happened. Evidence, not vibes.
Syncs WHOOP · Oura · Fitbit · Health Connect
How it works
Claim. Evidence. Verdict.
01
Sync
WHOOP, Oura, Fitbit and Health Connect stream in over webhooks. Backfill runs in resumable windows — nothing is hand-entered twice.
02
Analyze
A nightly statistical sweep across every metric pair: Spearman correlations, lag scans, regime shifts, Bayesian counterfactuals — and a forecast saved before the day it predicts.
03
Prove
Only claims that survive a false-discovery gate and placebo controls reach your feed — with n, effect size and confidence attached.
Insights
Claims that earn their place.
The insight feed reads across every signal you log and emits one falsifiable claim at a time. The statistics sit on the face of the card — and when a control explains a finding away, the card says so.
- 10 domains · 7 kinds of evidence
- Spearman ρ behind a Benjamini–Hochberg gate
- Bayesian counterfactuals from your own unaffected signals
Screens past 23:00 cut your deep sleep.
Data
Every number, explorable.
Zoom, pan and overlay any two metrics on dual axes. Brush a range, scan a year at a glance. Your dataset is yours.
- Line, bar, scatter — with dual-axis compare
- Year heatmap: darker = higher
- Brushable mini-map over the full history
- Day view plots series inside one local day — daily scalars stay on the longer chart
- Sleep, training, coverage and ECG explorers — waveforms displayed, never interpreted
Forecasts
Check it against what happened.
Tomorrow, or the next 7-day average, for HRV, resting heart rate, sleep, steps and breathing rate. The range is built from previous forecast errors — and only after thirty of them. When the day arrives, the actual is scored separately. A source change or a timezone change is not a miss you can count.
- Saved at the time, or reconstructed from finalized data
- Range only when calibration n ≥ 30
- Outside the range is still scored
- Source or day-definition change is not scored
Illustration
Circadian
Your clock is not the wall clock.
BioTime is civil time shifted by a phase estimated from your sleep midpoint and the daily shape of your heart rate. BioLoad is accumulated sleep pressure (Process S). PRIME is predicted drive on the same KSS scale you can actually log.
- BioTime and BioTime-shift against your own baseline, not the population
- BioLoad piecewise-exponential, with a 7-day burn-in
- PRIME reports a window — and refuses a clock reading when phase σ > 2 h
Drag the hand
Feelings
Log a feeling in one gesture.
Sixteen words, most pleasant at the top. Sweep down the column and release — you never lift your finger. Arousal is never asked for; it shows as color, glow and motion.
- NRC-VAD valence and arousal norms
- One-handed, sub-second logging
- Valence traces by hour, day and week
- KSS × tension in one tap, anchors on the axis
Places
Where you are shapes how you sleep.
Home, work, gym — anchors are discovered from raw location by density clustering, then correlated against sleep and recovery. Raw points live 21 days, then they're gone.
- DBSCAN anchor discovery
- Location ↔ recovery correlations
- One tap deletes all location data
- Weather at the hour you were there (Open-Meteo)
Supplements
Doses you can trust.
Every product resolves to compounds and canonical elemental doses — 200 mg of elemental magnesium, not “2 capsules”. Your stack becomes a habit-aware checklist, and every check is a data point in the next sweep.
- iHerb search, URL scrape, barcode lookup
- Elemental dose normalization
- Habit-derived daily stack
- Log a whole stack at a chosen date and time
- Bottle photo on Android
Today's stack
0/4 loggediHerb lookup · barcode scan · elemental doses
Day
One local day, in order.
Sleep, a dose, a feeling, a timed tag, a workout — on the clock of the day they happened, not a weekly average. A tag with no time does not get a dot. Day view only offers series that have samples inside the day. Weight stays on the longer chart.
- Sleep, doses, feelings, tags and workouts on one axis
- Timed tags only
- Series metrics in day view — daily scalars have nothing to plot
Illustration
Tuesday
00:00
Fasting has no time — it does not get a dot.
Focus
Name the metric. Hide the rest.
Pick one thing you want to move. The feed keeps only findings that touch it, and ranks what else moves it — the other metric, the correlation, the lag. Lenses are optional. Each one says how many cards it would remove before you turn it on.
- One optimization target, kept across reloads
- A driver counts only if it points at that metric
- Seven lenses, priced before they hide anything
- Device-change steps stay hidden by default — a new watch is not a new body
Illustration
1 related
Moves it: Late screens · ρ −0.41 · same day
Agents
Ask your own health record.
Connect a private agent over MCP. It can read coverage, series, sleep, workouts, doses, feelings, tags and saved insights. It cannot write. Challenge a finding and it has to reproduce the evidence — or say what is missing.
- Read-only MCP
- deepen_insight / investigate_relationship
- Revoke the grant any time
Evidence, not vibes
Most correlations die here.
That's the point. optiHealth is opinionated about false positives: a claim that can't survive controls isn't an insight — it's noise.
- Benjamini–Hochberg false-discovery gate on every sweep
- Placebo dates and synthetic controls (BSTS, Brodersen 2015)
- Effect sizes with confidence intervals — n is always on the card
- “Explained away” is a verdict we actually show
The rest of the product
Every unique surface.
The sections above are the mechanisms. This is everything else optiHealth actually has — named, not categorized.
Collect
WHOOP · Oura · Fitbit · Health Connect
Webhooks and resumable backfill. Nothing is typed twice.
Android
Health Connect in the background, offline logs, voice notes.
Voice tags
A spoken day proposes tags. You confirm — nothing auto-commits.
Quick log
One ⌘L for a feeling, your state, a dose, or a metric.
State grid
One tap: Karolinska sleepiness × tension. Nine published anchors on the axis.
Weather
Open-Meteo at the hour a location ping existed. Never invented.
Add a product
iHerb, URL, bottle photo, barcode — stored as elemental dose.
App usage
Screen time as a digital signal, not a diary.
See
Day timeline
One local day of sleep, doses, feelings, tags and workouts.
Sleep explorer
Architecture and regularity. Not a readiness score.
Training
Frequency, volume, consistency. No CTL, ATL or ACWR.
Coverage
Days each provider actually delivered — from rows, not status.
ECG
Waveforms as recorded. Informational only. We never interpret.
Forecasts
Tomorrow and the next 7-day average. Scored against what happened — or refused.
BioTime tile
Your body-clock offset, on the home dashboard.
Circadian glossary
How BioTime is computed, and the uncertainty on the number.
Prove
Optimization target
One metric. Related findings only, plus what else moves it.
Lenses
Each one prices how many cards it would hide before you flip it.
Seven evidence kinds
Association, precedence, regime shift, counterfactual, anomaly, rhythm, profile.
Ten domains
Sleep through digital — including environment, place and whole-day patterns.
Tag impact
A painted day is an intervention arm, not a caption.
Share one insight
A revocable /i/… link. Never the account.
Explained away
A verdict we show on the face of the card, not a footnote.
Ask
Private MCP server
Your agent, your record — over a protocol, not a chat box we own.
Read-only tools
Context, measurements, records, insights. Nothing writes back.
Challenge a finding
deepen_insight has to reproduce the evidence or say what is missing.
Revocable grant
OAuth consent, disconnect from Agents. The grant dies with the tap.
Your data
Private by default. Transparent when shared.
Row-level security end to end. Delete anything, any time. Share a single insight with a revocable link — never your account.
Start your N-of-1
Your body runs experiments every day.
Start reading the results.