> ## 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.

# Cost Estimates

> Generate and review patient cost estimates with estimate status and financial clearance tracking.

The Cost Estimates page (`/pm/cost-estimates`) lists patient cost estimates for the organization, supports filtering by estimate status and clearance status, and allows drilling into individual estimate details.

## Overview

The Cost Estimates page renders a list of cost estimate records fetched by `useCostEstimateList`. When no organization is loaded, a loading skeleton is displayed. The list shows date, service type, total estimated charges, patient estimated responsibility, estimate status, and clearance status. Clicking a row opens the `CostEstimateDetail` view inline (the list is replaced); a **Back** button returns to the list. The **Generate Estimate** dialog (`CostEstimateGenerateDialog`) is accessible from the list view header. The page enforces `pm.cost-estimates.view` via a nested `RequirePermission` wrapper.

## Who it's for

Requires permission `pm.cost-estimates.view` (string `pm.cost-estimates.view`, also mapped to `PM_PERMISSIONS.COST_ESTIMATES_VIEW`).

## Before you start

* You must hold `pm.cost-estimates.view`.
* An active organization context must be loaded; the page shows a skeleton until `currentOrganization.id` is available.

## Steps

<Steps>
  <Step title="Open Cost Estimates">
    Navigate to `/pm/cost-estimates`. The list loads all cost estimates for your organization.
  </Step>

  <Step title="Filter the list">
    Use the **Status** dropdown to filter by estimate status (`Draft`, `Final`, `Expired`). Use the **Clearance** dropdown to filter by clearance status (`Pending`, `Cleared`, `Blocked`, `Override`). Both filters apply simultaneously.
  </Step>

  <Step title="Open an estimate">
    Click the **View** button on any row to open the `CostEstimateDetail` view. Click **Back** to return to the list.
  </Step>

  <Step title="Generate a new estimate">
    Click the **Generate Estimate** button (rendered by `CostEstimateGenerateDialog`) in the list view header to create a new cost estimate.
  </Step>
</Steps>

## Key concepts

<AccordionGroup>
  <Accordion title="Estimate statuses">
    Four statuses exist: `Draft` (secondary badge), `Final` (default/filled badge), `Expired` (destructive/red badge), `Superseded` (outline badge). The filter dropdown exposes `Draft`, `Final`, and `Expired` as options.
  </Accordion>

  <Accordion title="Clearance statuses">
    Four clearance statuses exist: `Pending` (secondary), `Cleared` (default/filled), `Blocked` (destructive/red), `Override` (outline).
  </Accordion>

  <Accordion title="Empty and error states">
    Empty: "No cost estimates yet — Click 'Generate Estimate' to create one." Error loading: "Unable to load estimates — There was an error loading cost estimates. Please try again."
  </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/CostEstimateListPage.tsx
  * src/cores/pm/components/cost-estimation/CostEstimateList.tsx
  * src/platform/permissions/constants.ts
</Accordion>
