> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Charge Reconciliation

> Identify and resolve gaps between encounters, charges, claims, and payments using tab-filtered gap type views and a filters bar.

The Charge Reconciliation screen (`/pm/charge-reconciliation`) surfaces billing gaps — mismatches between encounters, charges, claims, and payments — and provides tools to resolve them.

## Overview

The Charge Reconciliation screen shows a dashboard summary section (`ChargeReconDashboardSection`) followed by a tabbed gap type list. Results are loaded from `pm_charge_reconciliation_results`, ordered by `days_outstanding` descending (longest-outstanding first), with a query limit of 25 records per tab. By default, only unresolved gaps are shown. A filters bar lets users narrow by date range, provider, and show/hide resolved gaps. Clicking "Resolve" on any gap row opens the Resolve Gap dialog.

The screen renders an inner permission check on the resolve action using `PM_PERMISSIONS.CHARGE_RECON_VIEW`.

## Who it's for

Requires the `pm.charge_recon.view` permission. The route guard and the inner permission wrapper both check this permission.

## Before you start

* You must hold `pm.charge_recon.view`.
* Reconciliation results must already be computed and stored in `pm_charge_reconciliation_results`; this screen displays results only.

## Steps

<Steps>
  <Step title="Open Charge Reconciliation">
    Navigate to `/pm/charge-reconciliation`. The screen loads with the "All" tab active showing all unresolved gap types.
  </Step>

  <Step title="Select a gap type tab">
    Choose one of the five gap type tabs to narrow the list: **Encounter → Charge**, **Charge → Claim**, **Claim → Payment**, **Duplicate Charge**, or **Zero-Amount Charge**. Results reload for the selected gap type.
  </Step>

  <Step title="Apply filters">
    Use the Charge Recon Filters bar to filter by date range (run date), provider, or to include resolved gaps ("Show Resolved" toggle).
  </Step>

  <Step title="Resolve a gap">
    Click the Resolve action on any gap row to open the Resolve Gap dialog. Complete the dialog to mark the gap as resolved.
  </Step>
</Steps>

## Key concepts

Gap types surfaced in the tabs:

| Tab label              | Gap meaning                                      |
| ---------------------- | ------------------------------------------------ |
| **Encounter → Charge** | An encounter exists with no corresponding charge |
| **Charge → Claim**     | A charge exists with no corresponding claim      |
| **Claim → Payment**    | A claim exists with no corresponding payment     |
| **Duplicate Charge**   | A potential duplicate charge detected            |
| **Zero-Amount Charge** | A charge with a zero billed amount               |

<Tooltip tip="Number of days a gap record has been outstanding without resolution">Days outstanding</Tooltip> — used to sort results so the most aged gaps appear first.

<AccordionGroup>
  <Accordion title="Resolved gaps">
    By default, gaps with a non-null `resolved_at` are excluded. Toggle "Show Resolved" in the filters bar to include them.
  </Accordion>

  <Accordion title="Result limit">
    Each tab query returns a maximum of 25 records per result set.
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Practice Management" icon="briefcase" href="/pm/overview">
    Overview of the Practice Management core.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index">
    Documentation coverage and governance.
  </Card>
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/pm.tsx
  * src/cores/pm/pages/ChargeReconciliationPage.tsx
  * src/cores/pm/hooks/useChargeReconciliationResults.ts
  * src/cores/pm/types/charge-reconciliation.ts
  * src/platform/permissions/constants.ts
</Accordion>
