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

# Good Faith Estimates

> Create and manage No Surprises Act Good Faith Estimates for self-pay patients; view itemized details, deliver, acknowledge, and file disputes.

This page lists and manages <Tooltip tip="Good Faith Estimate — a written cost estimate required under the No Surprises Act for self-pay and uninsured patients">Good Faith Estimates</Tooltip> for the organization and is reached at `/pm/gfe`.

## Overview

The <Tooltip tip="Good Faith Estimate — a written cost estimate required under the No Surprises Act for self-pay and uninsured patients">Good Faith Estimates</Tooltip> page lists all GFEs from `pm_good_faith_estimates` joined with patient names from `pm_patients`, ordered by `estimate_date` descending. Each card shows the patient name (Last, First format), a status badge, the estimate date, total estimated amount, and whether an appointment is linked ("Scheduled") or the GFE is pre-booking. Users with `pm.gfe.create` permission see a **Create GFE** button that opens the `GfeCreateDialog`.

## Who it's for

Requires permission: `PM_PERMISSIONS.GFE_VIEW` (`pm.gfe.view`).

Creating new GFEs additionally requires `pm.gfe.create`.

## Before you start

* You must hold the `pm.gfe.view` permission.
* Patient records must exist in Practice Management before a GFE can be created for them.

## Steps

<Steps>
  <Step title="Open Good Faith Estimates">
    Navigate to **Practice Management → GFE** or go directly to `/pm/gfe`. The full list loads ordered by most recent estimate date.
  </Step>

  <Step title="Filter by status">
    Use the **Status** dropdown to filter the list. Options are: **All Statuses**, **Draft**, **Delivered**, **Acknowledged**, and **Superseded**.
  </Step>

  <Step title="Review estimate cards">
    Each card shows the patient name, status badge, estimate date, total estimated amount, and scheduling context (Scheduled or Pre-booking).
  </Step>

  <Step title="Open a GFE">
    Click any card to navigate to `/pm/gfe/:gfeId` for the full estimate detail.
  </Step>

  <Step title="Create a GFE (if permitted)">
    Click **Create GFE** in the page header to open the `GfeCreateDialog`. Complete the required fields and submit. The list refreshes on success.
  </Step>
</Steps>

## Key concepts

<AccordionGroup>
  <Accordion title="GFE statuses">
    Four statuses are defined: **draft** (outline badge), **delivered** (default), **acknowledged** (secondary), and **superseded** (destructive). A superseded GFE has been replaced by a newer estimate.
  </Accordion>

  <Accordion title="Pre-booking vs. Scheduled">
    If a GFE has no linked `appointment_id`, it displays as "Pre-booking." If an appointment is linked, it displays as "Scheduled."
  </Accordion>

  <Accordion title="Empty state">
    When no estimates match the active filter, the page shows "No estimates match the filters" with the prompt to broaden filter criteria. When no estimates exist at all, it shows "No good faith estimates yet" with a **Create GFE** action.
  </Accordion>
</AccordionGroup>

## Viewing a good faith estimate

The GFE Details screen displays a single Good Faith Estimate record with its itemized service lines and lifecycle actions at route `/pm/gfe/:gfeId` (permission: `pm.gfe.view`). Delivering and acknowledging requires `pm.gfe.create`. Filing a dispute requires `pm.gfe.manage`.

The page loads a GFE via `useGfeDetail`, with the breadcrumb showing the patient's name from joined `pm_patients`. The header shows the patient name in the description and a status badge. An Estimate Summary card displays: estimate date, total estimated amount, delivery method, and delivered-at timestamp. The Itemized Services table lists each `GfeItem` with CPT code, description, quantity, unit rate, and total. Status-action buttons (gated by permissions) allow: **Mark as Delivered** (`pm.gfe.create`, draft status) via `GfeDeliverDialog`; **Record Acknowledgment** (`pm.gfe.create`, delivered status) via `acknowledgeGfe` mutation; and **File Dispute** (`pm.gfe.manage`) via `GfeFileDisputeDialog`.

1. From the GFE list (`/pm/gfe`), click a row to open its detail page.
2. The Estimate Summary card shows the estimate date, total estimated amount, delivery method, and delivery timestamp.
3. The Itemized Services table lists each line item with CPT code, description, quantity, unit rate, and total.
4. Click **Mark as Delivered** (draft status, requires `pm.gfe.create`) to open the delivery dialog.
5. Click **Record Acknowledgment** (delivered status, requires `pm.gfe.create`) to confirm patient receipt.
6. Click **File Dispute** (requires `pm.gfe.manage`) to open the dispute dialog and create a linked GFE dispute record.

| Term              | Meaning in code                                                            |
| ----------------- | -------------------------------------------------------------------------- |
| `estimate_date`   | Date the GFE was created                                                   |
| `total_estimated` | Sum of all itemized line totals                                            |
| `delivery_method` | How the GFE was delivered to the patient                                   |
| `delivered_at`    | Timestamp when delivery was recorded                                       |
| `GfeItem`         | Line item with `cpt_code`, `description`, `quantity`, `unit_rate`, `total` |
| `GfeStatus`       | `draft`, `delivered`, `acknowledged`, `superseded`                         |

## 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/GfeListPage.tsx
  * src/cores/pm/hooks/useGfeList.ts
  * src/cores/pm/types/gfe.ts
  * src/cores/pm/pages/GfeDetailPage.tsx
  * src/cores/pm/hooks/useGfeDetail.ts
  * src/cores/pm/hooks/useGfeMutation.ts
</Accordion>
