Skip to main content

Claims Service — Service Risk Register

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · SERVICE_OVERVIEW · DOMAIN_MODEL

1. Risk Register

IDRiskCategoryLikelihoodImpactRisk ScoreOwnerMitigationResidual
R-01Payer EDI timeout cascade — EDI clearinghouse slow response (X12 277 / 835) causes claim submission queue to back up; connection pool exhaustion blocks new claim submissionsOperationsMediumHighHighSRE + Tech LeadPer-payer circuit breaker on submission adapter; EDI timeout configurable per payer (default 30 s); claims_submission_queue_depth_gauge Prometheus metric; ClaimsSubmissionQueueHigh alert; async submission pattern: submit returns 202, status polledLow after circuit breaker
R-02Duplicate claim submission — network retry or operator error causes the same claim to be submitted to a payer twice; payer may adjudicate and pay both, creating overpayment liabilityFinancial / ComplianceLowHighHighTech LeadIdempotency-Key on submission endpoint (24 h cache); clearinghouse_ref unique constraint per (payer_id, tenant_id); duplicate claim detection at scrubbing stage: check active claims with same (patient_id, encounter_id, service_date, procedure_codes); blocked by DUPLICATE_CLAIM error codeLow after controls
R-03Coverage verification SLA breach — eligibility inquiry (X12 270/271 or payer REST) exceeds 30-second SLA; pre-authorization and claim assembly stall; patients experience registration delaysOperationsMediumMediumMediumSRE + Tech LeadEligibility response cached per coverage (TTL configurable, default 4 h); cache hit rate monitored; async eligibility mode available when real-time unavailable; claims_eligibility_check_duration_seconds histogram; ClaimsEligibilityTimeout alertLow after caching
R-04EOB reconciliation driftExplanationOfBenefit FHIR resources generated from remittance records diverge from actual claim state over time; patient portal shows incorrect payment historyData IntegrityMediumMediumMediumTech LeadEOB is generated transactionally when remittance allocation is applied (claims.remittance.applied.v1 event triggers EOB generation); reconciliation job runs nightly comparing claim status against EOB presence; ClaimsEobReconciliationDrift alert on mismatch > thresholdLow after reconciliation job
R-05Regulatory code set changes (ICD-10 annual updates) — annual ICD-10-CM code set update (effective October 1 each year) causes newly invalid codes to pass claim scrubbing if terminology-service is not updated on timeRegulatory / ComplianceHighMediumHighCompliance + terminology-service teamClaim scrubbing validates diagnosis codes against terminology-service; terminology-service release process gates ICD-10 annual update to production before October 1; INVALID_DIAGNOSIS_CODE claim scrubbing error returns specific code; scrubbing rules are terminology-service-driven, not hard-codedLow with process
R-06Cross-tenant claim routing — multi-tenant deployment where billing admin or integration error causes a claim to be routed to the wrong tenant's payer configurationSecurity / ComplianceVery LowCriticalHighSRE + Tech Leadtenant_id RLS on all tables; payer configs scoped to tenant; tenant-isolation.spec.ts mandatory CI gate; submission adapter always reads payer config with tenantId filter; audit log captures every submission with tenantIdVery Low after controls
R-07Claim scrubbing rule staleness — custom scrubbing rules (payer-specific edits, NPI validation) not updated after payer policy change; claims fail at clearinghouse after passing internal scrubbingRevenue CycleMediumMediumMediumBilling OperationsPayer scrubbing rules stored in payer_configs.scrubbing_rules (JSON, per-tenant-override); billing admin notified via ClaimScrubRuleUpdate alert when clearinghouse rejection rate for a payer exceeds 5%; scrubbing rule update process documented in billing operations runbookLow with monitoring
R-08Denial code set volatility (CARC / RARC) — CARC and RARC codes updated by NUBC/ASC X12 periodically; unmapped new codes cause denial case records to have unknown denial reason; appeal workflow stallsRegulatoryLowMediumMediumTech Lead + ComplianceCARC/RARC code table stored in claims.denial_codes (updated from terminology-service); unknown denial reason triggers UNMAPPED_DENIAL_CODE alert; billing team reviews unmapped codes within 24 h; appeal deadline is still recorded even with unknown reasonLow with monitoring

2. Risk Matrix

Impact → Low Medium High Critical
Likelihood ↓
Very Low R-06
Low R-08 R-02
Medium R-03, R-04, R-07 R-01, R-05
High

3. Financial Risk Exposure

RiskPotential financial exposureNotes
R-01 — EDI timeout cascadeDelayed revenue collection; cash flow impactSLA: 99.5% submission availability
R-02 — Duplicate submissionOverpayment liability; payer audit riskBlocked by controls — residual low
R-03 — Eligibility SLA breachRegistration delays; staff timeCache mitigates most cases
R-04 — EOB driftPatient billing disputes; portal inaccuraciesReconciliation job mitigates
R-05 — Code set changesClaims denied due to invalid codes; re-work costProcess control: pre-October update

4. Review Schedule

Review typeFrequencyOwner
Full register reviewQuarterlyTech Lead + Billing Operations
ICD-10 / CARC update reviewAnnual (August) before October 1 cutoverCompliance + terminology-service team
Payer rejection rate reviewMonthlyBilling Operations
Post-incident updateAfter any revenue impact incidentOn-call + Tech Lead