Version: 1.0.0Documentation Index
Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
Use this file to discover all available pages before exploring further.
Last Updated: 2026-02-20
Spec: PM-08 Claims Management & Submission
Overview
The Claims Management module (PM-08) enables billing staff to generate CMS-1500 (837P) and UB-04 (837I) claims from approved charges, validate them through pre-submission scrubbing, manage the claim lifecycle, and track denials with CARC/RARC codes. Access: Navigate to Practice Management → Claims in the sidebar.Permission:
pm.claims.view (view), pm.claims.create (generate), pm.claims.submit (submit to payer).
Generating Claims from Charges
- Navigate to
/pm/claimsand click Generate Claims. - The dialog displays all approved charges that are not yet linked to a claim.
- Select charges to include — they are automatically grouped by patient.
- Provide the Billing Provider NPI and select the Payer.
- Click Generate to create draft claims with linked claim lines.
billed and the claim_id foreign key is set.
Claim Scrubbing
Before submission, claims go through pre-submission validation:| Rule | Severity |
|---|---|
| Billing provider NPI required (10 digits) | Error |
| Payer required | Error |
| Patient required | Error |
| At least 1 claim line | Error |
| Primary diagnosis code required | Error |
| Filing deadline not expired | Error |
| Each line: CPT code required | Error |
| Each line: units > 0 | Error |
| Each line: charge amount > 0 | Error |
| Each line: service date required | Error |
| Each line: ≥1 diagnosis pointer | Error |
| Duplicate modifiers on a line | Warning |
Claim Lifecycle
| Status | Description |
|---|---|
| Draft | Generated from charges, awaiting scrubbing |
| Scrubbed | Passed validation, ready for submission |
| Submitted | Sent to clearinghouse/payer |
| Accepted | Payer acknowledged receipt (999) |
| Paid | Fully adjudicated and paid (835) |
| Partial Payment | Partially paid, remainder pending |
| Denied | Denied by payer |
| Appealed | Under appeal after denial |
| Void | Voided (frequency code 8) |
| Adjusted | Post-payment adjustment applied |
Filing Deadline Tracking
AHCCCS requires claims within 365 days of the date of service. The filing deadline is automatically calculated from the earliest service date on the claim. Visual indicators on the claim list:- 🟡 Amber — fewer than 30 days remaining
- 🔴 Red — deadline expired
Managing Denials (CARC/RARC)
When a claim is denied, denial codes are stored using industry-standard CARC (Claim Adjustment Reason Codes) and RARC (Remittance Advice Remark Codes). Group codes:| Code | Meaning |
|---|---|
| CO | Contractual Obligation (write-off) |
| PR | Patient Responsibility (balance bill) |
| OA | Other Adjustment |
| PI | Payer Initiated |
Secondary/Tertiary Claims
After the primary payer adjudicates, create a secondary claim:- From the paid/denied claim, use Generate Secondary (frequency code
1). - The secondary claim references the original via
original_claim_id. - Submit to the secondary payer with the primary’s EOB data.
Void/Replacement Claims
| Frequency Code | Purpose |
|---|---|
| 1 | Original submission |
| 7 | Replacement of prior claim |
| 8 | Void of prior claim |
void and set frequency code 8. For replacement, create a new claim with frequency code 7 referencing the original.
Claim Detail Page
The claim detail page (/pm/claims/:claimId) provides:
- Header: Claim number, status badge, patient, payer, dates, total charge
- Lines Tab: CPT codes, modifiers, units, amounts, charge links
- Scrub Results Tab: Run on-demand scrubbing, view errors/warnings
- Notes Tab: Chronological notes (scrub errors, denials, appeals, corrections)
Permissions
| Permission | Description |
|---|---|
pm.claims.view | View claims list and detail |
pm.claims.create | Generate claims from charges |
pm.claims.update | Edit draft claims, add notes |
pm.claims.submit | Submit claims to payer |
Integration with PM-07 (Charges)
- Claims are generated from approved charges (
status = 'approved',claim_id IS NULL) - Each claim line stores
charge_idlinking back to the source charge - When a claim is generated, linked charges transition to
billedstatus - Charges linked to a claim cannot be voided without first voiding the claim
Future: PM-15 Clearinghouse Integration
Currently, “Submit” transitions the claim status but does not transmit to a clearinghouse. When PM-15 is implemented:- Submission will generate 837P/837I X12 transactions
- The
clearinghouse_trace_idwill be populated - Status polling will auto-update claims based on 277CA responses
- ERA (835) processing will auto-post payments via PM-09