Kinetiq · Exercise-Intelligence and RTM Proof Engine

Pose estimation is free. The billable proof above it is the hard part, and the part we built.

Every PT platform can already run free pose estimation and count reps. Kinetiq is the deterministic layer above the keypoints: it grades each rep against a population-adaptive clinical profile, abstains when a joint is not visible instead of inventing an angle, and exports an RTM-billable, FHIR-shaped session report a clinician can act on. Agents advise, code decides.

100%

Per-rep verdict agreement recovered through injected keypoint noise (35 of 35 reps)

Fixed labeled synthetic set: 25 clear plus 10 borderline

3 / 3

Occluded reps abstained instead of guessing an angle, 0 fabricated angles

Unit-tested honesty invariant on the labeled set

3 of 4

Sessions auto-verified RTM-billable, 1 routed to clinician review, 0 not-billable

3 synthetic patients plus 1 real captured clip

A runnable demo of the mechanism on three synthetic patients and one real captured squat clip. It runs offline with no live camera, no hardware, and no API key; the optional agents are the only part that can use a model.

A raw pose library will log 15 good squats on a knee that is caving

Volume without verification, and a rep count no payer will reimburse.

Counting reps is the easy part, and it is nearly free. BlazePose and MoveNet run on a phone and will tell you a patient did 15 squats. What they will not tell you is that rep 9 caved medially into a re-injury risk, that the hip dropped out of frame on rep 12 so no honest angle exists, or that the same 80 degree depth is progress for a post-surgical knee and a failure for a healthy athlete. That interpretation is the layer a PT platform actually needs, and it is the layer that ages the worst when it is skipped.

The pain is concrete. Home-exercise adherence in physical therapy sits at 35 percent, and 65 percent of patients abandon within the first month (Veriprajna WP29 research, 2026), while self-report overstates compliance. Clinicians want to bill Remote Therapeutic Monitoring on CPT 98975 to 98981, plus the 2026 codes 98979 and 98985 with the qualifying threshold dropped to as few as 2 days or 10 minutes, but CMS requires device-gathered data tied to treatment decisions, not raw coordinates (Veriprajna WP29 research, 2026). Raw keypoints do not clear that bar.

The stakes for employers are just as concrete. Musculoskeletal conditions cost employers roughly 3,591 dollars per employee per year, 486 dollars direct and 3,105 dollars in productivity, an estimated 36 percent of MSK surgeries are considered unnecessary at a 90 billion dollar scale, and more than 50 percent of employees resist sharing health data on privacy grounds (Veriprajna WP29 research, 2026). And the accuracy ceiling is real: monocular knee-angle error runs at a mean absolute error of 9.3 to 21.9 degrees (Nature Scientific Reports, 2025), which is exactly why a system that claims a clinical-grade angle from one camera is overselling, and one that abstains on a low-visibility rep is being honest.

A deterministic engine grades every rep, a policy gate decides billability

The trust core is plain, unit-tested code. No LLM sits in the scoring path.

The pipeline per session is direct. A keypoint stream, synthetic or extracted offline from a captured clip, is smoothed with a 1-Euro filter, gated on keypoint confidence so a rep abstains when a joint is not visible, segmented into reps with class-agnostic temporal self-similarity, turned into per-rep biomechanical features, graded against a population-adaptive rule engine, run through a deterministic RTM policy gate, and written to a FHIR-shaped session report that renders on a canvas dashboard. Every verdict is plain NumPy a clinician can interrogate.

Deterministic biomechanics engine

The trust core, entirely outside any language model. A 1-Euro filter smooths the 33-keypoint BlazePose-style stream, a confidence gate abstains below the visibility threshold, class-agnostic segmentation finds reps by temporal self-similarity, and each rep yields joint angle and ROM, a knee-valgus index, a descent to ascent tempo ratio, Log Dimensionless Jerk smoothness, and an L or R symmetry index. Plain, unit-tested code, so a clinician can see exactly why a rep was flagged.

RTM policy gate and FHIR-shaped report

Outside the model, plain code decides per session: rtm_billable, needs_clinician_review, or insufficient_device_data, mapped to the CMS RTM family CPT 98975 to 98981 plus the 2026 codes 98979 and 98985. The report is FHIR-shaped JSON mirroring the Observation and DocumentReference field shapes, with per-rep observations, the session rollup, the RTM determination, and the documentation CMS expects. FHIR-shaped, not FHIR-validated: Kinetiq emits the record, it does not POST to a live EHR.

What the engine measures per rep

Signal What it catches Basis
Joint angle and ROM Whether peak flexion clears the profile target, for example 75 degrees post-ACL versus 95 degrees for a wellness athlete. deterministic
Knee-valgus index Medial knee collapse, a re-injury risk on a rehab knee, thresholded per profile (for example 0.03 post-ACL). deterministic
Descent to ascent tempo ratio Compensatory slowing or rushing through part of the movement (for example tempo above 1.25). deterministic
LDLJ smoothness and L or R symmetry Jerky or asymmetric movement quality that a rep count alone hides. deterministic
Confidence gate A joint below the visibility threshold, so the rep is not scored rather than assigned a fabricated angle. deterministic, abstains

The optional agents: bounded to interpretation

On top of the deterministic core, two optional provider-swappable agents interpret and communicate the numbers: a Longitudinal Monitor that drafts a proactive clinician escalation when a trend declines, and a Clinical Scribe that drafts the RTM note. Each is grounding-checked against the deterministic evidence, so any figure an agent introduces that is not already in the evidence is rejected and the deterministic template is shown instead. Both abstain with no API key. The adapter defaults to Claude claude-opus-4-8 and swaps to OpenAI or Gemini, but the scoring gate never changes hands: agents advise, code decides.

Worked sessions, on screen

Four honestly-labeled patients: three are synthetic (Maria, Jordan, Eleanor) and one (Aisha) is a real captured squat clip. No live camera, no real patient identity, no medical record.

The pipeline running on real footage

Aisha is a real bodyweight-squat video whose keypoints were extracted offline with MediaPipe, then scored by the same engine unchanged, so the very first thing you see is the pipeline running on real footage, honestly labeled. The 33-point skeleton overlays the actual clip while the panel grades each rep against the wellness-screen profile. The session gate returns rtm_billable, with 1 verified, 2 flagged, and an average quality of 8.3.

Kinetiq scoring Aisha, a real captured bodyweight-squat clip, with the 33-point skeleton overlaid on the actual video and a per-rep table on the right showing a good rep and a shallow rep graded against the wellness-screen profile.
Aisha: a real squat clip, keypoints extracted offline, scored by the same engine as the synthetic sessions.

The rep a pose model counts and a clinician should not

Maria is a synthetic post-ACL patient doing 15 prescribed squats. A raw pose library would log all 15 as reps. Kinetiq grades them, and on rep 9 it returns KNEE VALGUS: the knee-valgus index reads 0.054, at or above the 0.03 threshold, peak flexion is 78.6 degrees, and tempo is 1.4, above the 1.25 limit, a re-injury-risk alert rather than a good rep. That is the whole thesis in one row: the value is not counting the rep, it is catching the one that matters.

The Maria post-ACL session with the per-rep analysis table highlighting rep 9 in red as KNEE VALGUS, reading knee-valgus index 0.054 at or above 0.03 as a re-injury risk and tempo 1.4 above 1.25 as compensatory, while reps 5 through 14 around it read GOOD REP, and rep 12 reads NOT SCORED with the hip keypoint below the visibility threshold.
Rep 9 flagged as a knee-valgus re-injury risk, with the exact threshold clause shown; rep 12 abstains because the hip is not visible.

Same motion, different verdict by patient profile

Population-adaptive judgement is not a slogan; it flips a verdict. Switch the profile from Maria (post-ACL, target 75 degrees) to Jordan, a corporate-wellness athlete (target 95 degrees), and a squat at roughly 80 degrees depth that scored good for Maria is scored SHALLOW for Jordan. The same motion earns a different verdict because the thresholds are keyed to the patient. In the full Jordan session the gate still returns rtm_billable even with reps flagged, an honest nuance: billable does not mean every rep was good.

The Jordan corporate-wellness-athlete session under profile wellness_athlete, with a per-rep table where squats around 80 degrees peak flexion all read SHALLOW because flexion is below the 95 degree target, the same depth that graded as good under Maria's 75 degree post-ACL target.
The population-adaptive flip: roughly 80 degrees is good for a post-ACL knee and shallow for a wellness athlete.

The billable receipt, and the abstention that routes it

Maria's session rolls up to 13 verified reps, 1 flagged (rep 9), and 1 abstained on occlusion, at an average quality of 9.6 out of 10. The RTM determination reads needs_clinician_review, mapped to CPT 98975 to 98981 plus the 2026 codes 98979 and 98985: the session is billing-eligible, but the valgus alert routes it to a clinician before any auto-billing, and that clinician alert itself documents a treatment-plan decision. From here the FHIR-shaped report exports as the auditable evidence a clinician documents RTM on.

The RTM determination modal for Maria reading NEEDS CLINICIAN REVIEW, CPT 98975 to 98981 RTM family plus 2026 codes 98979 and 98985, with prescribed 15 reps, verified 13, flagged 1, abstained on occlusion 1, average quality 9.6 out of 10, and an Export FHIR Report button.
The RTM determination: billing-eligible, but the valgus alert routes it to a clinician before auto-billing.

The benchmark, scoped honestly

Running the fixed labeled set surfaces the durable result. Per-rep verdict agreement against planted ground truth is 100 percent on 25 clear cases and 100 percent on 10 borderline cases within about one sigma of a threshold, with per-class agreement all at 1.00. Ground truth is the planted physical parameters versus the profile thresholds, computed independently of the engine, and measurement noise is injected after the labels are fixed, so the engine must recover the verdict through the noise. The honesty invariant is separate and unit-tested: of 3 occluded reps, 3 abstained, with 0 fabricated angles. These are task accuracy, throughput, and honesty on a fixed labeled synthetic set, not an open-world guarantee.

The Kinetiq benchmark summary showing metric cards for 100 percent verdict agreement on 25 clear cases, 100 percent on 10 borderline cases within one sigma of a threshold, 3 of 3 occluded reps abstained with 0 fabricated angles, and 3 plus 1 of 4 sessions auto-billable or routed to review, above a per-class agreement table reading 100 percent for good rep, shallow, not scored, and knee valgus.
100 percent on 35 of 35 reps recovered through injected noise, and 3 of 3 occluded reps abstained, on the labeled synthetic set.

Where Kinetiq sits, and where it does not

It runs after the keypoints, on top of whatever pose model you already use. It builds the interpretation-and-proof layer; it does not compete with the pose estimator.

Concern Raw pose estimation and rep counting Kinetiq
A knee caving on rep 9 Counted as a rep Flagged as a knee-valgus re-injury risk, with the threshold shown
A joint out of frame An angle inferred anyway Abstains, rep not scored, no fabricated angle
Same depth, different patient One fixed threshold for everyone Population-adaptive verdict keyed to the patient profile
Billing evidence Raw coordinates CMS will not reimburse RTM-billable, FHIR-shaped session report mapped to the CPT family
Who decides billability Not addressed A deterministic policy gate outside any model
Durability as pose models improve The whole value is the sensor, which commoditizes The value is the brain and the proof above the sensor

What this demo does not do

  • It does not use a live camera or on-device inference. The keypoint stream is synthetically generated for three scenarios or extracted offline with MediaPipe from one real captured clip. The mobile capture SDK and any edge deployment are deferred.
  • It does not claim clinical-grade goniometry. Monocular knee-angle error is 9.3 to 21.9 degrees (Nature Scientific Reports, 2025), so Kinetiq works at the granularity RTM requires and abstains on low-visibility reps rather than reporting a precise angle.
  • The session report is FHIR-shaped, not FHIR-validated or FHIR-compliant. It mirrors the Observation and DocumentReference shapes; the EHR write is a mock adapter, so it emits and does not POST.
  • The RTM and CPT mapping is a framing to help document RTM, not a billing certification, a compliance sign-off, or a reimbursement guarantee.
  • The scoring path has no LLM and no trained deep model. V1 is a deterministic feature engine; a trained TCN is the stated V2 swap behind the same per-rep interface. The optional agents only interpret and are grounding-checked.
  • The patients are honestly-labeled test cases, not real patients or customers. Three (Maria, Jordan, Eleanor) are synthetic and one (Aisha) is a real captured squat clip with no real identity or medical record. There are no customers, deployments, testimonials, or claimed ROI.
  • The 100 percent verdict agreement and the 3 of 3 abstention are measurements on a fixed labeled synthetic set where ground truth is the planted parameters versus profile thresholds, not open-world or production guarantees.

Questions buyers ask

We already run BlazePose and count reps. What does Kinetiq add?

Pose estimation and rep counting are the commoditized part. A raw pose library will happily log 15 good squats on a patient whose knee caves on rep 9. Kinetiq is the layer above the keypoints: it grades each rep against a population-adaptive clinical profile, abstains when a joint is not visible, and exports an RTM-billable, FHIR-shaped session report a clinician can act on. That interpretation-and-proof layer is what a PT platform actually bills and a clinician acts on, and it survives every pose-model upgrade rather than aging out with it.

Can it measure a joint angle accurately enough to bill on?

We do not claim clinical-grade goniometry, and we say so on screen. Monocular knee-angle error runs at a mean absolute error of 9.3 to 21.9 degrees (Nature Scientific Reports, 2025), so a degree-accurate angle claim from a single camera is a trap. Kinetiq works at the granularity RTM actually requires, verified completion plus approximate quality plus trend, and it abstains on low-visibility reps rather than inventing a precise angle. The billing evidence is the verified, protocol-mapped session record, not a claimed exact joint angle.

Is the report FHIR-compliant, and can it write to our EHR?

It is FHIR-shaped, not FHIR-validated. The session report is structured JSON that mirrors the FHIR Observation and DocumentReference field shapes, carrying per-rep observations, the session rollup, the RTM determination and CPT family, and the documentation fields CMS expects. The EHR or FHIR write is a mock adapter in this demo, so Kinetiq emits the record, it does not POST to a live server. That keeps the artifact honest: it is the evidence a clinician documents on, shaped for a downstream FHIR integration you would build, not a certified EHR write.

How do we actually bill RTM off this, and is reimbursement guaranteed?

CMS reimburses Remote Therapeutic Monitoring on the CPT 98975 to 98981 family, plus the 2026 codes 98979 and 98985, and it requires device-gathered data tied to treatment decisions rather than raw coordinates. Kinetiq is designed to produce exactly that evidence: a deterministic policy gate returns rtm_billable, needs_clinician_review, or insufficient_device_data, and the FHIR-shaped report documents the device-gathered data and the treatment-decision link. The CPT mapping is a framing to help you document RTM, not a billing certification or a reimbursement guarantee, and a flagged session routes to a clinician before auto-billing.

An AI is grading a patient's exercise form. How is that safe to defend?

The trust core is deterministic and has no LLM in the scoring path. Every per-rep verdict and the RTM billability determination are plain, unit-tested NumPy code, so a clinician can interrogate exactly why a rep was flagged, for example rep 9 flagged because valgus index 0.054 is at or above 0.03 and tempo 1.4 is above 1.25. Agents advise, code decides: the two optional agents only interpret and communicate the deterministic evidence, and any number an agent introduces that is not in the evidence is rejected and the deterministic template is shown instead. That auditability is the point for a firm whose brand is truth.

Does it need a live camera or a mobile SDK? What runs today?

There is no live camera and no on-device inference in this demo. The keypoint stream is either synthetically generated for three scenarios or extracted offline with MediaPipe from one real captured squat clip, a stubbed sensor in both cases. The mobile capture SDK and any edge deployment are deferred. What runs today is the real interpretation-and-proof logic: the 1-Euro smoothing, the confidence gate, the class-agnostic rep segmentation, the per-rep biomechanics, the population-adaptive rules, the RTM policy gate, and the FHIR-shaped export, all keyless on a laptop.

Are those 100 percent numbers real-world accuracy?

No, and we are careful to scope them. The 100 percent verdict agreement is on a fixed labeled synthetic set of 35 reps, 25 clear and 10 borderline within about one sigma of a threshold, where ground truth is the planted physical parameters versus the profile thresholds, computed independently of the engine, and the engine must recover the verdict through measurement noise injected after the labels are fixed. The borderline cases are a discrimination stress test, so this is genuine discrimination rather than recall of an extreme, but it is not an open-world guarantee. The durable measures are task accuracy, automation throughput, and honesty, including 3 of 3 occluded reps abstained with 0 fabricated angles, which hold as pose estimation improves.

Technical Research

The research behind this demo — the architecture, the verification design, and the enterprise blueprint.

Build the brain above your pose model

Verified, population-adaptive exercise data with a billable receipt.

If your product and clinical teams are working out how to turn a raw pose stream into verified, RTM-billable exercise data without overclaiming a clinical-grade angle, we would genuinely like to hear how you are thinking about it. The problem is industry-wide and the answers will be too.

Exercise-verification assessment

  • ✓ Map where your pose stream needs interpretation, not just rep counts
  • ✓ Define population-adaptive thresholds per patient profile
  • ✓ Set the confidence gate so the system abstains rather than guesses
  • ✓ Shape an RTM-billable, FHIR-shaped record your clinicians can document on

Build with us

  • ✓ A deterministic, unit-tested biomechanics engine above any pose model
  • ✓ A population-adaptive rule engine and deterministic RTM policy gate
  • ✓ A FHIR-shaped session report mapped to the CPT RTM family
  • ✓ Grounding-checked agents for the longitudinal note, not black-box scoring