A free pose library will happily log fifteen good squats on a patient whose knee is caving on rep nine. That gap, between what the sensor sees and what a clinician can bill and act on, is the whole exercise-verification problem, and a sharper pose model does not close it.
Every physical-therapy platform and corporate-wellness app can already run free pose estimation, BlazePose or MoveNet, and count reps. When we built Kinetiq, our exercise-intelligence and RTM proof-engine demo, the question we set out to answer was not how to see the body more accurately. It was what has to happen after the keypoints for that motion to become auditable, population-aware, and billable. You can run it yourself at veriprajna.com/demos/ai-biomechanics-exercise-verification.
The category is bleeding on the layer above the sensor
The economics are unforgiving exactly where the sensor cannot help. Home-exercise adherence in physical therapy runs about 35%, and 65% of patients abandon their program within the first month (Veriprajna WP29 research, 2026). Self-report papers over the gap. Musculoskeletal conditions cost employers roughly $3,591 per employee per year, $486 in direct spend and $3,105 in lost productivity, and an estimated 36% of MSK surgeries, about $90B of spend, are considered unnecessary (Veriprajna WP29 research, 2026). More than half of employees resist sharing health data at all. Clinicians can bill Remote Therapeutic Monitoring under CPT 98975 to 98981, plus the 2026 codes 98979 and 98985, with the qualifying threshold now as low as 2 days and 10 minutes. But CMS reimburses on device-gathered data tied to a treatment decision, not on raw coordinates (Veriprajna WP29 research, 2026).
None of that is a sensor problem. Cleaner keypoints do not produce an adherence record a payer will honor, or a re-injury flag a therapist can defend in a chart. And there is a hard ceiling under the sensor story anyway: monocular knee-angle error sits at a mean absolute error of 9.3 to 21.9 degrees (Nature Scientific Reports, 2025). Any product promising clinical-grade goniometry from a single camera is promising precision the measurement cannot support. We built for the granularity RTM actually needs, verified completion, approximate quality, and trend, and we made the system abstain when the angle is not there to be read.
Pose estimation is free. The value is the layer above it: the population-adaptive, confidence-gated, RTM-billable proof. The sensor is commoditized. The brain is not.
What a "good rep" hides
Here is the moment that made the thesis concrete for us. We ran Maria, a synthetic post-ACL patient (62, eight weeks post-reconstruction, profile post_acl_wk8), through fifteen prescribed bodyweight squats. Thirteen of the fifteen reps grade clean. Rep nine does not. The knee caves inward and the descent slows, and the deterministic engine returns a verdict of knee valgus, not a good rep: knee-valgus index 0.054, at or above the 0.03 threshold for this profile, with tempo 1.4, past the 1.25 ceiling and flagged as compensatory. The row turns red, quality drops to 4 out of 10, and the "why" column spells out the exact clause that fired.
Rep 9 of Maria's synthetic post-ACL session returns a knee-valgus verdict: valgus index 0.054 (>= 0.03) and tempo 1.4 (> 1.25), so the row turns red and quality drops to 4 of 10 while the other 14 reps read good.
A rep counter would have logged fifteen for fifteen. The value is not in seeing the knee. It is in the rule that fired on it, written in plain, unit-tested code a clinician can interrogate. Why was rep nine flagged? Valgus 0.054 is greater than 0.03. There is no black box in that answer, and there is no LLM anywhere in the scoring path. Agents advise, code decides.
Two more behaviors sit around that catch, and we show them rather than assert them. On rep twelve, the hip keypoint drops below the visibility gate. The engine does not interpolate an angle to keep the streak going. It returns "not scored, hip not visible," and greys the skeleton out.
Rep 12: the hip keypoint falls below the visibility gate (confidence < 0.5), so the engine returns "not scored" and greys the skeleton out instead of inventing an angle.
On a low-visibility rep the honest output is "not scored," not a guessed angle. Across the benchmark set, three of three occluded reps abstained and zero angles were fabricated.
The second behavior is that the same motion earns a different verdict by patient. Flip the profile from Maria to Jordan, a synthetic corporate-wellness athlete (30, healthy knees, profile wellness_athlete), and a squat at roughly 80 degrees of depth that passes for a post-ACL knee, target 75 degrees, is scored insufficient depth against the athlete's 95-degree target. Same keypoints, different clinical context, different verdict.
Flip the profile to Jordan, a synthetic wellness athlete: the same roughly 80-degree squat that passed for the post-ACL knee is now scored SHALLOW against the athlete's 95-degree target. Same motion, different verdict by patient.
The receipt a payer actually honors
Grade every rep and you still have not produced the thing the buyer needs. Kinetiq closes the session with a deterministic RTM policy gate that returns one of three determinations, rtm_billable, needs_clinician_review, or insufficient_device_data, and exports a FHIR-shaped session report. That report carries per-rep Observations (rep number, ROM, valgus index, tempo, smoothness, symmetry, the verdict, and the threshold clause checked), the session rollup, the RTM determination, and the documentation fields CMS looks for: device-gathered data, timestamp, and the treatment-decision link. Maria's valgus flag routes her session to needs_clinician_review rather than auto-billing. Billable-eligible, but a re-injury signal a human should see first.
To be exact about what this is: the report is FHIR-shaped JSON that mirrors the Observation and DocumentReference field shapes, not a validated payload posted to a live EHR, and the CPT mapping is a framing of the evidence, not a certified reimbursement claim. We emit the receipt. We do not promise a payer will honor it. For a firm whose brand is truth, that distinction is the point.
Why a better pose model doesn't close the gap
Every advance in pose estimation makes the keypoints cleaner. None of it produces the population-adaptive judgment, the abstention discipline, or the billable, auditable record. Those live above the sensor, and they do not age out when the sensor improves. That is the durable moat, and it is why we measure this demo on task accuracy, automation throughput, and honesty rather than on a pose-model error rate that gets stale.
On a fixed, labeled synthetic set, with ground truth defined as the planted physical parameters versus the profile thresholds and computed independently of the engine, then measurement noise injected into the keypoints after the labels are fixed, the engine recovered the verdict on 25 of 25 clear cases and 10 of 10 borderline cases within about one standard deviation of a threshold. Three of three occluded reps abstained, zero angles fabricated. Across four sessions, three synthetic and one scored from a real captured squat clip, three came back auto-verified RTM-billable and one routed to clinician review.
The benchmark panel: 100% verdict agreement on the 25 clear cases and 100% on the 10 borderline cases within about one sigma of a threshold, 3 of 3 occluded reps abstained with 0 fabricated angles, and 3 of 4 sessions auto-billable with 1 routed to review. A fixed labeled synthetic set, never an open-world guarantee.
Those are deliberately durable numbers, and they are scoped: a fixed labeled synthetic set, not a promise about any patient in the wild.
If you are building on top of pose estimation, the question worth sitting with is not whether your model can find the knee. It is what happens on the rep it gets wrong. When a joint drops below your confidence threshold, does your pipeline abstain and say so, or does it interpolate an angle and log the rep anyway? And when the session ends, can you hand a payer a record tied to a treatment decision, or only a stream of coordinates? We would genuinely like to hear how other teams are drawing that line, because the problem is industry-wide and the answers will be too. You can run the demo and pull it apart at veriprajna.com/demos/ai-biomechanics-exercise-verification.