NewMed · AI PRD ← Back to the case study hub

🔐 AI PRD: access on request

This is the full product requirements pack for the Denial Prevention Co-Pilot (functional specs, TRD, design requirements, evals & QA). Request access below and I will get back to you, or enter the access code if you already have one.

OR
← Hub Open the live prototype

AI PRD: NewMed Denial Prevention Co-Pilot

AuthorNayan Lal (Product)
Version / statusv0.9 · draft for engineering review · July 2026
Product lineNewMed Practice Management · claims & billing (fictional platform, portfolio case study)
Working prototypeLive demo · source on GitHub
RelatedDiscovery analysis (DISCOVERY.md) · eval methodology (EVALS.md) · companion: Ops Bottleneck Analyzer
How to read this pack. Section 1 (functional) and Section 3 (design) are owned by product. Section 2 (TRD) is structured by product and completed with engineering: every field marked ENG TO CONFIRM carries product's suggested starting point and needs an engineering owner and estimate. Section 4 defines how we will know the product works before, during, and after release.

1. Functional specifications & requirements

1.1 Problem and goal

Practices lose material revenue to claim denials: 15.4% denial rate in the discovery dataset against a 10 to 15% industry norm, with 45.5% of denials written off entirely and about $79 average rework labour per denied claim. 80.1% of denial reasons are knowable before submission. Goal: raise the first-pass clean claim rate by scoring every claim for denial risk at claim-scrubbing time, explaining the risk in biller language, and offering a one-click fix, with the biller always in control.

1.2 Users

UserJob to be doneSuccess looks like
Biller / billing manager (primary)Get every claim paid on first passWorks a short, trusted queue each morning instead of a reactive denial pile
Front-desk staff (secondary)Verify coverage before the visitReceives eligibility flags early enough to act at check-in
Practice administrator (secondary)Predictable cash flowSees clean-claim rate and protected dollars per month
NewMed RCM services (internal)Work denials efficiently at scaleFewer preventable denials reaching their queue

1.3 User stories with acceptance criteria

US-1 · Risk-scored queue. As a biller, I see today's pre-submission claims ranked by denial risk so I work the riskiest first.
Given claims in the pre-submission state When I open the queue Then each claim shows a risk percentage and band (Low / Moderate / Elevated / High), sorted descending, recomputed on every claim edit.
US-2 · Explanation panel. As a biller, I see why a claim is flagged, in my language, so I can trust or challenge the flag.
Given a flagged claim When I open it Then I see every contributing factor with direction and relative strength, the predicted CARC denial code, and plain-language wording (no model jargon). Every factor maps to a field on the claim I can inspect.
US-3 · One-click fix with undo. As a biller, I apply the suggested fix in one click, and can undo it, so acting is fast and safe.
Given a suggested fix When I click Apply Then the underlying workflow starts (eligibility recheck, PA request, modifier edit), the risk score recomputes immediately, and an Undo control appears that fully restores prior state and counters.
US-4 · Override. As a biller, I can submit as-is against the model's advice in one click, without friction or guilt.
Given any flagged claim When I click Override Then the claim proceeds to submission, the override is logged as a labeled training event, and no additional confirmation is demanded.
US-5 · Operating threshold per practice. As a billing manager, I set how many claims get flagged so the queue matches my team's capacity.
Given the threshold setting When I move it Then I see a live preview of expected flags/day, review hours, expected recall, and estimated dollars protected before saving.
US-6 · Outcome reporting. As a practice administrator, I see what the Co-Pilot protected each month.
Given a closed month When I open the report Then I see clean-claim rate vs baseline, denials prevented (measured against matched control claims), rework hours avoided, and suggestion acceptance rate.

1.4 Functional requirements

IDRequirementPriority
FR-1Score every professional claim (837P, single line for MVP) on entry to the pre-submission state and on every editP0
FR-2Display risk score, band, contributing factors with direction/strength, and predicted CARCP0
FR-3Suggested fix per detected gap (eligibility, prior auth, modifier, missing fields, timely filing) with one-click execution where the platform owns the workflowP0
FR-4Undo for every applied fix, restoring claim state and session countersP0
FR-5One-click override; logged as labeled feedbackP0
FR-6Per-practice operating threshold with live workload/recall/economics previewP1
FR-7Feedback capture: fix applied / undone / overridden / eventual 835 outcome, joined to model versionP0
FR-8Monthly outcome report per practice (clean-claim lift, protected dollars, acceptance, override rate)P1
FR-9Glossary and hover definitions for all billing vocabulary in the UIP1
FR-10Admin audit trail of every score, suggestion, and user actionP0
FR-11Never auto-block or auto-edit a claim without explicit biller actionP0 (principle)

1.5 Non-functional requirements

  • Latency: score on claim save under 500 ms p95; full-queue nightly rescoring completes before 6:00 AM practice-local time.
  • Availability: queue view 99.9%; scoring degradation must fail open (queue works unscored, clearly labeled) never closed.
  • Auditability: every score reproducible from logged model version + feature vector for 7 years.
  • Accessibility: WCAG 2.1 AA; risk never communicated by color alone (band label + percentage always present).

1.6 Out of scope (MVP)

  • Auto-editing or auto-holding claims; medical-necessity prediction (needs chart data); institutional claims (837I); multi-line adjudication; appeals drafting (stage-7 Billing Assistant territory); payer integrations beyond what the platform already has.

2. Technical requirements document (TRD)

Structured by product; to be completed with the engineering team. ENG TO CONFIRM marks decision points where product proposes a starting point and engineering owns the final call, estimate, and design doc.

2.1 System context

PM claims DBpre-submission state Feature serviceclaim → feature vector Scoring servicemodel registry vN Co-Pilot queue UIbiller actions Feedback eventsfix / undo / override Label storejoins 835 outcomes Training pipelineretrain + backtest gates 835 / 837 ingestclearinghouse feed publishes new model version
System context. The 835 remittance stream is the continuous label source; retraining publishes versioned models behind backtest gates.

2.2 Data contract at scoring time

Field groupFields (MVP)SourceFreshness need
Claim corepayer, specialty, CPT, ICD-10, modifiers, charge, service date, submission lagPM claims DBat save
Eligibilityverified flag, last verification date, coverage status270/271 service< 24 h
Prior authrequired flag (payer rules table), auth on filePA module + payer rules< 24 h
Payer rulestimely filing limit, modifier requirementspayer rules tableweekly review
Historyresubmission flag, prior denials on patient/payer pairclaims historynightly

2.3 Model serving ENG TO CONFIRM

  • Product's starting point: nightly batch rescoring of the whole pre-submission queue plus on-demand scoring on claim save. Model artifact is small (15 weights for MVP); a stateless service or even in-process scoring both plausible. ENG TO CONFIRM serving pattern, capacity, and cold-start behaviour.
  • Versioning: every score logs model version; shadow-mode support (score-but-do-not-display) required for new versions. Rollback to previous version in one config change.
  • Failure mode: scoring down means queue renders unscored with a visible banner. Never block submission.

2.4 Feedback event schema (proposed)

{
  "event": "fix_applied | fix_undone | override | outcome_835",
  "claim_id": "CLM-2026-04687",
  "model_version": "denial-risk-v0.9.2",
  "risk_before": 0.93, "risk_after": 0.55,
  "gap_type": "pa_gap",
  "actor": "user:biller_142 | system:835_ingest",
  "outcome": { "status": "denied", "carc": "CO-197" },   // 835 events only
  "ts": "2026-07-14T09:12:33Z"
}

2.5 Retraining and deployment ENG TO CONFIRM

  • Triggers: scheduled monthly, plus alarm-driven when weekly per-payer calibration error exceeds the agreed band for 2 consecutive weeks.
  • Gates: temporal backtest must clear AUC and per-payer recall floors (Section 4.1) before a version can leave shadow mode. Human approval on every promotion during alpha and beta.
  • ENG TO CONFIRM: pipeline tooling, feature-store choice, canary strategy per practice cohort.

2.6 Security, privacy, compliance

  • Features are claim-metadata level; no clinical notes in the MVP feature set. All the same, claims data is PHI: BAA coverage, encryption in transit and at rest, minimum-necessary access, and full audit logging are entry criteria, not enhancements.
  • Model outputs (scores, factors) are treated as PHI-derived data with the same access controls as the claim itself.
  • ENG TO CONFIRM: threat model review, retention windows per artifact, de-identification standard for the training store.

2.7 Open engineering questions

#QuestionProduct's starting positionOwner
Q1Score on save vs batch-only for MVP?Both; on-save matters because billers edit and expect the number to moveENG
Q2Where do payer rules (timely filing, modifier requirements) live today, and who maintains them?Assume existing rules table; needs an owner and a weekly review loopProduct + ENG
Q3Can the eligibility (270/271) service be triggered per claim on demand, and at what cost per check?Assumed yes; cost per check shapes the fix economicsENG
Q4Event bus vs direct writes for feedback events?No position; whatever the platform standard isENG

3. Design prototype & design requirements

3.1 Design principles

  1. Explain before you automate. No score without its reasons, in biller language. Jargon always carries a hover definition.
  2. One primary action per flag. The suggested fix is a single button; everything else is secondary.
  3. Undo everywhere. Any applied action is reversible in one click. Safety produces adoption.
  4. Respect disagreement. Override is one click, never nagged, and framed as feedback rather than failure.
  5. Show the cost of being wrong. The threshold screen shows workload and missed-denial trade-offs honestly.

3.2 Wireframes

Co-Pilot · pre-submission queuesession counters Queue (sorted by risk) 93%CLM-04687 · Medicaid · 66984 · $1,973 41%CLM-02909 · BlueShield · 96910 · $111 18%CLM-00641 · Medicare · 29881 · $2,870 5%CLM-01161 · Medicare · 17000 · $150 Claim detail risk gauge + band why flagged: factor bars (weights) predicted denial: CO-197 (no prior auth) Apply fix Undo Override: submit as-is
W1 · Desktop: queue + detail two-pane. Risk is always a number plus a band label, never color alone.
Threshold setting (billing manager) flags/day: 17 · review: ~68 min · recall: 59% est. protected: $46k/mo Save live preview before commit (US-5) Mobile queue (stacked) tap → detail scrolls into view States · all clear: "0 flags today" + tally · scoring down: unscored banner,queue still usable (fail open) · empty queue: next batch ETA · loading: skeleton rows · error: retry + support path
W2 · Threshold configuration, mobile behaviour, and required UI states.

3.3 Design requirements

  • Risk bands: Low <10%, Moderate 10 to 25%, Elevated 25 to 50%, High ≥50%; band thresholds are display constants, distinct from the operating threshold.
  • Factor list is ordered by contribution and capped at what fits without scrolling on desktop; the full list expands on demand.
  • Every billing term carries a hover definition sourced from one shared glossary; on touch devices, definitions live behind an info affordance.
  • All charts and gauges size to their container; the product must be fully usable at 375 px width and at 1440 px+ without dead space.
  • The live prototype (demo) is the hi-fi reference for interaction behaviour; visual design tokens to be aligned with the NewMed design system at implementation.

4. Evaluations & QA

4.1 Offline evaluation protocol (pre-ship gate)

  • Temporal backtest only. Train on the past, test on the future (current prototype: trained Jan to Apr 2026, tested May to Jun). Random splits are prohibited: payer rules drift and random splits leak future behaviour into training.
  • Current prototype results: AUC 0.853 on 2,008 unseen claims (16.2% base rate). At the default 30% threshold: precision 54%, recall 59%, 17.6% of claims flagged. Synthetic-data caveat: these numbers demonstrate the method; real-world targets get re-baselined per payer in alpha.
  • Ship gates per model version: AUC > 0.80 overall; recall floor per major payer; calibration reviewed (a claim shown as 70% should deny about 70% of the time before GA).

4.2 Online evaluation (alpha and beta)

PhaseDesignGate to advance
Alpha3 to 5 practices, one specialty; 100% human review of flags; weekly calibration vs actual 835sAcceptance > 60%; override < 20%; no workflow regression reported
BetaExpand payers before specialties; matched control practices for lift measurementClean-claim-rate lift visible vs control; per-payer precision stable 4 weeks
GAPer-practice ROI reporting on; continuous retraining onLift sustained 2 quarters

4.3 QA plan

  • Model QA: scoring parity test between training code and serving code on a golden claim set (the prototype ships exactly this: Python trains, JavaScript serves, same weights, asserted equal). Feature-drift tests on every input field.
  • Data QA: fan-out checks (claims join to payers 1:1; line-item joins pre-aggregated to claim grain), duplicate claim detection, NULL-safe rate calculations, date-bucketing by service date not submission date.
  • UX QA: apply/undo/override state machine covered by automated tests; counters always reconcile; the fail-open unscored state renders correctly; WCAG 2.1 AA audit.
  • Regression pack: golden queue snapshot re-scored on every model or code change; alert on any claim whose band changes without a data change.

4.4 Production monitoring

SignalCadenceAction trigger
Per-payer precision and recall vs actual 835sweekly>10-point calibration error 2 weeks running → retrain
Fix-suggestion acceptance rateweekly<60% → review suggestion quality per denial category
Override rateweekly>20% or rising → threshold and feature review with alpha practices
New dominant CARC per payercontinuousfeature/rule gap analysis
Automation-bias audit (sampled re-review of accepted fixes)monthlyerror rate above baseline → raise mandatory-review share
Clean-claim rate vs matched controlsmonthlyflat after 2 quarters → revisit product, not just model

4.5 Model risk register

RiskMitigation
Payer rule driftWeekly calibration monitoring; 835 stream as continuous labels; alarm-driven retraining
Automation bias (rubber-stamping)Sampled mandatory review; undo prominence; acceptance-quality audits
False-positive fatiguePer-practice threshold tied to capacity; precision floors per payer
Cold start (small payers/specialties)Fall back to pooled cross-specialty payer patterns until volume accrues
PHI exposureMetadata-only features; PHI-derived outputs inherit claim access controls; audit logging

Appendix

A. Companion product. The Practice Ops Bottleneck Analyzer (live demo) applies the same discovery method to operational task data: rank each practice's manual-effort sinks and pair every bottleneck with an automation recommendation and a quantified saving.

B. Source and reproducibility. Everything regenerates from code: github.com/nayanlal029/portfolio-projects-newmed. The claims warehouse, the SQL discovery pack, model training, and this document's numbers are one python3 run_pipeline.py away.

NewMed is a fictional platform; all data is synthetic. Prepared by Nayan Lal, July 2026.