Trust & Methods · JetPatient Hub  ·  Methodology  ·  Status  ·  Changelog  ·  Security  ·  Honesty
How we label data

Every badge on JetPatient,
plain language.

When something on JetPatient isn’t real production data, we say so. When the AI is sampling, you see a sample badge. When a clinic’s outcome cohort hasn’t reached the publish threshold, we show pending — not fake numbers. This page is the single source of truth for what every badge means, exactly when you see it, and what we’re doing about it.

AI output

Every JetPatient AI surface (Brief, Risk Engine, Scribe, Pathway, Navigator, Copilot, PREDICT, JetVision) renders one of three badges on every response.

Live
Real model output, computed in real time

The response on the page was generated by the live Claude model against the actual prompt you submitted. No caching, no substitution. This is the “normal” state for every AI surface once the production Anthropic API key is configured.

When you see it API key set, model returned 2xx Variance Live model output varies between calls
Cached
Recent live output, served from cache

Someone (often you, a moment ago) sent an identical input to the same model within the last few minutes. To save you a wait and the model a call, the cached response is returned. Content is byte-for-byte the same as if the model had just computed it.

When you see it SHA-256(prompt) cache hit in NS.LLM_CACHE TTL Per-endpoint; typically 1–15 min
Sample
Curated example, NOT specific to your data

The live AI is unavailable (no API key configured, upstream error, or you’re in a preview environment), so a curated sample response is shown. Samples are crafted to be representative of what the live model would produce for a generic case, but they are not specific to your data and should not be used to make decisions. Every sample badge is honest: we’d rather show a labelled example than silently fail.

When you see it callAnthropicWithFailover bottomed out at no_key / failed Triggered by Block 13 graceful-sample pattern (every LLM endpoint)

Cohort & outcomes

When a clinic doesn’t have enough completed JetPatient cases yet, we will not substitute demo data into a real profile. We say pending and explain when the cohort will publish. Patients comparing their own recovery against the cohort see the same honest rules in Patient Passport » Cohort Mirror — never a misleading trend on too little data.

Pending real data
Cohort below the publish threshold

JetPatient publishes recovery curves and outcome cohorts only when the underlying case count clears MIN_PUBLISH_COHORT = 10. Below that, the panel says “we’ll publish once 10 cases are on file” instead of showing demo numbers behind a small SAMPLE pill (the pre-Block-39 behaviour that we reversed because it was a credibility risk). Block 42 added the patient-PRO collection loop that feeds this threshold; Block 43 added the patient-side Cohort Mirror that uses the same data + same threshold — anonymized, with the patient’s own submissions overlaid.

Threshold n ≥ 10 completed cases Reads NS.OUTCOMES (now fed by Block 42 PROs) Patient view Passport » Cohort Mirror
Verified
Credentials checked against issuing board

For clinics: JCI status, surgeon licences, malpractice records, and sanctions checks were validated against the issuing authority. The supporting documents are stored in the audit log. A clinic only carries the Verified badge while credentials remain in good standing.

Continuous monitoring Planned (Product Enhancement Memo) Today Point-in-time at intake; recert workflow on revocation
Provisional
Submitted, not yet verified

Information has been entered into the system (by a clinic during onboarding, by a patient during intake) but the verification workflow has not yet completed. Treat as the submitter’s claim. The audit trail records who entered the data and when.

Visible to Clinic ops + internal review only Transition Becomes Verified or rejected after review

Quote & transaction states

Quote-checkout, BNPL prequalification, and payment flows use a consistent vocabulary so a patient never has to guess what stage they’re in.

Draft
Visible only to the author

Created but not sent. Edit freely; nothing here is visible to the other side of the conversation until you explicitly hit Send.

Sent
Awaiting response

Delivered to the recipient. They’ll see it the next time they open JetPatient or check their notifications.

Accepted
Both sides have agreed

Both sides have signed off. The next step in the flow is unblocked (payment hold, case creation, deposit capture, etc.).

Expired
Past its validity window

Quotes and prequalification offers have explicit validity windows. Once past, you’ll need a fresh version — one click to regenerate, no data lost.

Failed
Last attempt did not complete

The system is healthy; the specific action can be retried. Persistent failures are routed to JetPatient ops via the same telemetry that feeds the status page.

The contract behind every label

1 · We’d rather be honest than impressive

Across Blocks 13, 35, and 39, the team established the same pattern in three different surfaces: when the live system can’t produce a real answer, return a clearly labelled sample, never a silent failure. Block 39 went further and reversed the pre-existing pattern of substituting demo cohort data into real clinic profiles with a small SAMPLE pill — on real clinic profiles, the only acceptable rendering is real data or an honest empty state.

2 · Every label is operator-visible

The same state that drives the badge a visitor sees is recorded in the audit log (NS.AUDIT) and the AI usage telemetry (NS.AI_USAGE). The admin SLA dashboard at /admin/ops.html shows the live-vs-sample rate per endpoint, so the team knows when sample-mode is happening more than it should.

3 · Every badge has a tooltip and a source

You found this page by clicking the tooltip on a badge somewhere on the platform. The tooltip is automatic for every badge on every page that includes assets/js/jp-trust-badge.js. The labels in this explainer match the labels in the code — if we add a new state, this page is updated in the same PR.

4 · Where the cohort thresholds come from

The publish thresholds (MIN_PUBLISH_COHORT = 10 for clinic outcomes, the Trust Score “methods note” rules) are chosen to balance signal against premature publication. They will tighten over time as the network grows and the law of large numbers does more of the work. Methodology notes for each threshold are linked from the Trust & Methods hub.

5 · How to report a missing label

If you see numbers or AI output on JetPatient that don’t carry a badge but should, please email trust@jetpatient.com. We treat missing-badge reports as P1 because they break the contract on this page.