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

# Budget vs Actual

> View a side-by-side comparison of a budget's planned amounts against actual GL activity, with variance drill-down and CSV export.

Budget vs Actual displays the planned budget amounts for a selected budget record alongside the actual general-ledger activity posted to date, highlighting variances. Route: `/fa/reports/budget-vs-actual/:id`

## Overview

The Budget vs Actual page loads a budget record by its `:id` URL parameter and fetches two datasets: line-level variance data and a rollup summary. Filters for period, fund, and department can be applied interactively. A YTD toggle is available. Users can export the displayed variance data to CSV.

## Who it's for

Access follows your organization's role and module configuration. ## Before you start

* A budget record must already exist. Navigate via `/fa/budgets/:id` or the Budgets list.
* Ensure GL entries for the relevant period have been posted so actuals are reflected.

## Steps

<Steps>
  <Step title="Open the report">
    Navigate to `/fa/budgets/:id` and select the Budget vs Actual action, or go directly to `/fa/reports/budget-vs-actual/:id`.
  </Step>

  <Step title="Apply filters">
    Use the filter controls to narrow by period, fund, or department. Toggle YTD on or off as needed.
  </Step>

  <Step title="Review variance data">
    The report table shows budget amounts, actual amounts, and variance per line. The summary section shows rollup totals.
  </Step>

  <Step title="Export to CSV (optional)">
    Click the download button. The export is named `budget-vs-actual-<version_name>`. The button is disabled when no data rows are loaded.
  </Step>
</Steps>

## Key concepts

* **`version_name`** — The budget record's human-readable label, used in breadcrumbs and the CSV filename.
* **YTD** — Year-to-date mode; affects how the variance query aggregates actuals.
* **`useBudgetVsActual` / `useBudgetVsActualSummary`** — Primary data hooks; both accept `budgetId`, `organizationId`, and filter parameters.

## Related

<Columns cols={2}>
  <Card title="Finance & Revenue" icon="building-columns" href="/fa/overview">
    Finance & Revenue core overview.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index" />
</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/fa.tsx
  * src/cores/fa/pages/BudgetVsActualPage.tsx
  * src/cores/fa/hooks/useBudgetVsActual.ts
  * src/cores/fa/hooks/useBudgets.ts
  * src/cores/fa/utils/exportReportCsv.ts
</Accordion>
