Vitaly Heartbeat Check
Vitaly Research preview · not a medical device
Private, personal heartbeat check for Apple Watch ECGs

Your watch said “Inconclusive.” See what it found.

Watch the demo video

Vitaly reads your Apple Watch ECG beat by beat to find premature ventricular contractions (PVCs): early, extra heartbeats that start in the heart’s lower chambers. A few are normal. Frequent PVCs, or several in a row, are worth a cardiologist’s look, especially after a heart attack. Vitaly tells you in plain English which you have.

Private. It runs inside this page; your recording never leaves your device. Personal. It learns what your normal heartbeat looks like and judges every beat against it.

or drop the PDF here. On iPhone: Health › Browse › Heart › Electrocardiograms (ECG) › pick a recording › Export a PDF for Your Doctor.

No PDF to hand? Try a held-out hospital recording:

Why trust it

Trained on over 2 million heartbeats from 2,161 patients. Tested on 238 it had never seen.

Vitaly learned from 2.0 million heartbeats (103k of them PVCs) recorded from 2,161 people in seven public research databases, then was scored once, with every setting locked in advance, on 496 recordings from 238 patients it had never seen, against beat labels from cardiologists. On the standard benchmark for heartbeat software it finds PVCs more accurately than the frontier AI models reading the same ECGs, Claude Opus 5.5 and Claude Fable 5.1, and within the range published for a specialist.

See it on the test data: held-out MIT-BIH patients

The MIT-BIH Arrhythmia Database is the reference test for heartbeat software. Every beat was labelled independently by two or more cardiologists, with disagreements resolved by consensus; their PVC labels are the red V. These patients were never used in training. Pick a strip, then run Vitaly on it in this page.

Loading the test strips…

PVC detection on held-out patients: the standard benchmark

MIT-BIH Arrhythmia Database, the reference test for heartbeat software. 100% means every PVC found and nothing else called a PVC. Whiskers: 95% interval from resampling patients.

Vitaly (our model)Claude Opus 5.5, highest-scoring cloud AI here Claude Fable 5.1, state-of-the-art general frontier modelexpert cardiologist, published rangerules alone 95% intervalour model
0%20%40%60%80%100%
Vitaly (4M params, expert on-device model)our model: trained on 2M+ heartbeats from 2,161 patientsour model
95.3%
Claude Opus 5.5 (size not published; est. 1T+ params)highest-scoring cloud AI on this task in our tests, reading the same ECG imagesbest cloud AI here
93.7%
Claude Fable 5.1 (size not published; est. 1T+ params)state-of-the-art general frontier model, same images, same promptfrontier general model
92.0%
Expert cardiologistpublished range for a single specialist reading PVCshuman expert
80–97%
Textbook rules alonethe same rule engine with no learned networks
78.7%
PVC detection score, F1 (%) · higher is better

Vitaly minus Opus: +1.6 points (95% interval -2.3 to +6.8), so the fair reading is level with the frontier or slightly ahead, at a tiny fraction of its size: Vitaly is about 4 million parameters, while Anthropic does not publish its models' sizes (1T+ is a rough outside estimate for frontier models). Claude Fable 5.1 read all 496 held-out strips under the same protocol and scored below Opus (89.6% against 91.5% across all three sets); Vitaly leads Fable by +3.9 points there (95% interval +1.2 to +7.2). Cardiologist range: an estimate from published studies, not measured on these strips (notes below).

Our approach · see inside the box

Deterministic preventative sensing: a decision model you can see inside

Vitaly is a domain expert system. Its core is a deterministic state machine built from the bedside criteria cardiologists use: a beat that comes early, is wide, is shaped unlike your usual beat, and is followed by a pause. On its own that sets a predictable, auditable floor (78.7%). A small learned System 1 decision model, fifteen tiny networks, then re-judges each beat the way an expert's quick intuition would, and raises that ceiling to 95.3%. It stays mechanistically interpretable: every call traces back to measurements you can see, and the same recording always gives the same answer.

Below, a simulated ECG from a published heart model (McSharry et al., 2003) streams in real time. On the left, the electrical wave crosses the heart; on the right, the state machine scores each beat in the open. Press Inject PVC to start a beat in the ventricle instead of the heart's pacemaker, and watch it arrive early, wide and followed by a pause.

The live simulator starts when it scrolls into view.

How it works

Rules you can read, small networks you can check, AI only where it is labelled

Medical software has to be predictable: the same recording must always give the same answer, and a clinician must be able to see why. So every decision here is made by fixed rules and small saved networks. A language model is only ever an optional explainer, marked as AI, and it never changes the result.

How Vitaly reads an Apple Watch ECGThe watch PDF becomes a signal; textbook rules find and measure every beat; tiny networks re-judge each beat; fixed rules from cardiology guidelines turn the calls into a readout; a language model may explain it, labelled, without changing it.INPUTApple Watch PDFthe exact 512 Hzsamples, read from thePDF inside this page1 · TEXTBOOK RULESFind and measureevery beat (Pan-Tompkins,1985): width, timing, thepause after, shape againstyour usual beat2 · LEARNED15 tiny networks109k parameters each,trained on 2M+ heartbeatsfrom 2,161 patients;re-judge each beat againstyour usual beat3 · CALLEach beatPVC, normal, orreview, with acalibrated probability4 · GUIDELINE RULESReadoutfixed rules fromcardiologyguidelines: level,meaning, next stepNEXT · PERSONALYour own baselineyour normal beat fromearlier recordings (indevelopment)OUTPUTWhat you geta headline, what it usuallymeans, what to do, how sure,and a note for your doctorLABELLED · AIAI explainer (optional)a language model may put theresult in other words; it neverchanges itfixed rules, written downsmall trained networks, weights saved and hashedlanguage model, always labelledin development
Rules

The first pass is the textbook

Beat detection follows Pan and Tompkins (1985), the basis of most heartbeat detectors. The measurements are the bedside criteria for a PVC: a wide beat, early, with a pause after it, shaped unlike your usual beat.

Learned

Tiny networks do the hard cases

Rules alone score 78.7%. Fifteen networks of 109k parameters each, which compare every beat with your usual beat and the rest of the strip, lift it to 95.3%: 4M parameters in all, small enough for a watch.

Readout

Guidelines decide what it means

The level comes from a fixed table written from cardiology guidelines (AHA/ACC/HRS 2017, ESC 2022): a run of three or more, a 10% or 20% share of beats, bigeminy, trigeminy, pairs. Same beats, same words, every time.

We tested a private language model as the explainer: Gemma 4 (26B), running on a laptop in about 1.6 s per answer. Given the fixed-rule result, it kept the rule's level on 58/58 test cases, never used a number that was not in its input and never diagnosed. Left to choose the level on its own, it matched the guideline rules on only 61% of cases, and every miss was milder than the rules (Claude Opus 5.5, choosing alone: 92%). So the rules set the level, and a model only explains it, labelled as AI.

Built to be personal

Anomaly detection against your own heart, not an average one

Hearts differ from person to person, so Vitaly already judges every beat against your own usual beat in the same recording. That is why it can spot a PVC whose shape would look normal in someone else. Next it will learn your normal beat from earlier recordings, the way a cardiologist compares a new ECG with your last one. Our first version helped on training patients but did not yet beat the single-recording model on held-out patients, so it stays switched off until it does.

  • NowPVCs on Apple Watch PDFs, with a guideline readout. Validated on 496 held-out hospital and patch recordings.
  • NextYour personal baseline from earlier recordings, optional, switched on only once it beats the single-recording model on held-out patients.
  • ThenMore anomalies a watch records, built the same way: textbook rules, tiny networks, a calibrated review band.
More evidence

It holds up across populations, and its readout sends the right recordings to a doctor

It holds up on three different populations

PVC detection score (F1) on each held-out test set: hospital Holter, the lead a watch records, and a chest patch worn by 200 new patients.

VitalyClaude Opus 5.5Claude Fable 5.1
0%20%40%60%80%100%
MIT-BIH testhospital Holter · 22 patients
95.3%Vitaly
93.7%Claude Opus 5.5
92.0%Claude Fable 5.1
INCART lead Ithe lead a watch records · 16 patients
89.1%Vitaly
84.1%Claude Opus 5.5
82.3%Claude Fable 5.1
Icentia11kchest patch · 200 new patients
94.8%Vitaly
94.5%Claude Opus 5.5
92.4%Claude Fable 5.1
PVC detection score, F1 (%)

Ahead of both frontier models on all three sets. On the cleanest lead-I strips alone (67 of the 96), Opus leads, 92.3% to 87.0%.

And the readout sends the right recordings to a doctor

On every held-out strip, the readout from Vitaly's calls against the same readout from the cardiologists' labels.

flagged when the labels say “show a doctor”left alone when they don't
0%20%40%60%80%100%
MIT-BIH test55 of 200 strips need a doctor by the labels
96% (53 of 55)
96% (139 of 145)
INCART lead I33 of 94 strips need a doctor by the labels
85% (28 of 33)
95% (58 of 61)
Icentia11k51 of 200 strips need a doctor by the labels
88% (45 of 51)
97% (144 of 149)
share of strips (%)

Most disagreements sit on the 10% line (3 PVCs in 39 beats against 4). The two clear misses on lead I are long runs where every beat is a PVC: the hardest case left.

Tiny by design

Tiny enough to run on a Raspberry Pi

The whole reader is about 4 million parameters and a few megabytes, and it already runs offline in a phone browser. That makes an air-gapped health box at home realistic: a Raspberry Pi on your own network serving this page, with recordings that never touch the internet.

Our estimate for a Raspberry Pi 4 is a second or two per 30-second recording, against well under a second on a laptop. Not yet measured.

A small health-monitoring board with a screen showing an ECG trace and heart-rate variability plots
Representative image only: the ProtoCentral HealthyPi 5 health-monitoring board, photo from its Crowd Supply campaign. Not a Vitaly device.
What it is, and what it isn't

A research preview