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

# Track Budget Actuals

> Compare an approved budget with synchronized customer invoice spend and review how each line performed

The **Actuals** tab compares a locked budget with customer invoice spend from supported PSA integrations. Use it to see whether the company is over or under budget, understand which costs matched each line, and identify invoice events that still need review.

## Prerequisites

* An **Approved** or **Archived** budget
* Permission to view the budget and invoices
* A connected ConnectWise Manage, Autotask PSA, or HaloPSA integration with invoice sync enabled
* The PSA company mapped to the same MSPortal company as the budget

<Note>
  If you can view the budget but do not have invoice access, the **Actuals** tab is hidden. Users with read-only budget access can review reconciliation results but cannot resolve exceptions.
</Note>

## Getting Started

<Steps>
  <Step title="Open the budget">
    Go to **Budgets**, open the budget's **Actions** menu, and select **View**.
  </Step>

  <Step title="Select Actuals">
    Select the **Actuals** tab beside **Overview** and **Monthly Breakdown**.
  </Step>

  <Step title="Confirm the baseline">
    Review the locked budget status, reconciliation period, currency, and **Customer invoiced spend** basis shown at the top.
  </Step>

  <Step title="Review the summary">
    Start with the four summary cards, then use **Line outcomes**, matched evidence, and **Unmatched exceptions** to explain the result.
  </Step>
</Steps>

## What Counts as Actual Spend

Actuals use tax-exclusive amounts that the MSP invoiced to the customer. Billed project work, licences, services, and labour can contribute. Internal cost of goods sold, payroll, unbilled time, vendor bills, purchase commitments, and contract totals that have not been invoiced do not. Contract and project information can help match an invoice; they do not add spend on their own.

| Provider           | Eligible invoice data                                                                                                               |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| ConnectWise Manage | Closed invoices, excluding voided or cancelled invoices; payment and accounting-export status are not required                      |
| Autotask PSA       | Invoices with an issued invoice number, excluding voided or cancelled invoices; amounts must be available or calculable without tax |
| HaloPSA            | Posted invoices, excluding draft, voided, or cancelled invoices                                                                     |

* ConnectWise Manage contributes invoice totals
* Autotask PSA and HaloPSA contribute invoice-line detail when available, with any difference from the invoice total included as an invoice-level remainder to avoid double-counting
* Credits and refunds appear as signed amounts and reduce spend
* Only invoice dates inside the locked reconciliation period are included
* MSPortal does not convert currencies

The locked period is January 1 through December 31 of the budget's fiscal year. **Quarterly** and **Monthly** period types do not change that date range.

The **Source coverage** section shows which PSA providers and source grains contributed to the comparison. **Invoice line** means detailed billing rows were available; **Invoice total** can be a full invoice amount or the remainder not represented by its lines. Different-currency and unknown-currency events remain visible for review but are excluded from monetary totals, including Unallocated.

## Understand the Summary

| Card             | Meaning                                                                                                       |
| ---------------- | ------------------------------------------------------------------------------------------------------------- |
| **Budgeted**     | The locked baseline. All lines except rejected lines contribute, including lines with Draft or Pending status |
| **Actual spend** | All eligible invoice spend for the budget's company, in the budget currency and locked period                 |
| **Variance**     | Budgeted minus Actual spend. A positive value is remaining budget; a negative value is over budget            |
| **Unallocated**  | Eligible spend in the budget currency that has not been assigned fully to budget lines                        |

The note under **Actual spend** shows how much spend is allocated to lines and how many source events are fully matched.

<Warning>
  The total **Actual spend** includes eligible company invoice spend even when it is unmatched or unrelated to this budget's projects. References control allocation, not the overall total. For a project-only budget, use **Line outcomes** to assess project performance: the overall variance still compares against company-wide invoice spend for the period.
</Warning>

## Review Line Outcomes

Each locked budget line shows its reference, category, approved amount, matched actual, variance, and outcome.

| Outcome                    | Meaning                                                                                                          |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Matched**                | Spend is assigned to the line, and its assigned events have no unallocated remainder, even if split across lines |
| **Partially matched**      | At least one assigned event still has an unallocated remainder                                                   |
| **No actuals**             | No invoice spend is currently assigned to the line                                                               |
| **Not in approved budget** | The line was rejected and is excluded from the baseline                                                          |

Positive line variance means budget remains on that line. Negative line variance means matched spend exceeds its approved amount.

**Matched** does not mean the actual equals the budget or that the project is complete. Older locked budgets without references or captured matching keys can still receive manual allocations.

### Review Matching Evidence

<Steps>
  <Step title="Open a line's evidence">
    In **Line outcomes**, click the **Review** button showing the event count for a line with matched spend.
  </Step>

  <Step title="Confirm the source">
    Review the provider, invoice number, date, description, source amount, and matched amount.
  </Step>

  <Step title="Check the match method">
    Confirm whether MSPortal used a budget reference, linked project, linked product, product identity, or manual allocation.
  </Step>

  <Step title="Check source status">
    A **Source changed** warning means the synchronized invoice details no longer match the information recorded when a manual decision was made.
  </Step>
</Steps>

## How Matching Works

MSPortal evaluates automatic methods in priority order:

1. **Budget reference** — an exact line reference found in PSA invoice, PO, project, contract, or related details
2. **Linked project** — the invoice event is associated with a PSA project captured through the budget line's linked Planner item
3. **Linked product** — the synchronized invoice item points to the product captured on the budget line
4. **Product identity** — the invoice-line SKU or product name matches the captured product identity

If the highest-priority matching method identifies multiple lines, the event becomes an exception; MSPortal does not try a lower-priority method to break the tie. An explicit reference that is unknown, belongs to a different budget, or identifies an ineligible line also prevents project or product fallback. Multiple distinct references need manual review.

One source event is counted once within a budget. **Manual allocation** is a user override, not another automatic method: it takes control of the event and suppresses automatic matching, including when you split the event across several lines.

## Common Tasks

### Investigate an Over-Budget Result

1. Confirm the total **Actual spend** and overall variance
2. Sort **Line outcomes** by variance to find the largest negative values
3. Click the **Review** button on those lines to inspect the supporting invoices
4. Review **Unallocated** and the exception queue for spend not yet assigned to a line

### Check Whether Invoice Sync Is Current

Use **Source coverage** to compare the provider's **Latest event** date with the most recent eligible invoice you expect in the locked period. This is an invoice date, not the last sync time. If an expected invoice is missing, review the PSA integration and invoice sync before changing reconciliation decisions.

### Improve Future Automatic Matches

Copy the line's short reference and add it to the PSA project, PO, invoice reference, or custom field that flows through to billing. For recurring services and licences, keep synchronized product links and SKUs consistent.

## Troubleshooting

| Issue                                                  | Resolution                                                                                                                                        |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| The **Actuals** tab is missing                         | Confirm your role can view invoices                                                                                                               |
| Actuals says to approve the budget                     | Only Approved and Archived budgets can be reconciled; approve the budget first                                                                    |
| No source events appear                                | Confirm invoice sync is enabled, the PSA company is mapped correctly, invoice dates fall inside the locked period, and the invoices are finalized |
| An expected ConnectWise invoice is missing             | Confirm the invoice is closed and is not voided or cancelled                                                                                      |
| Actual spend differs from invoice totals including tax | Actuals deliberately exclude sales tax                                                                                                            |
| Actual spend is present but a line says **No actuals** | The spend is unallocated; review **Unmatched exceptions**                                                                                         |
| A matched amount is negative                           | Review whether the source is a credit or refund                                                                                                   |
| Exceptions are visible but Unallocated is zero         | Check their currencies; different-currency and unknown-currency amounts are excluded from monetary totals                                         |
| An archived budget's actuals changed                   | Archiving freezes the plan, not synchronized invoices or reconciliation decisions                                                                 |
| A source uses an inferred currency                     | MSPortal used the company or tenant currency because the invoice did not provide one; verify that configuration before relying on the result      |
| Actuals cannot be loaded                               | Retry the page; the rest of the locked budget remains available while reconciliation is temporarily unavailable                                   |

## Best Practices

* Review Source coverage before interpreting the totals
* Resolve exceptions regularly so line outcomes explain the overall spend
* Use matched evidence to support QBR and budget-review conversations
* Add a single budget reference to each project, purchase, or billed item
* Keep company mappings, product identities, and invoice currencies accurate in the PSA
* Preserve archived budgets as historical baselines

## Related Resources

* [Approve and lock a budget](/user-guides/budgets/approving-and-locking-budgets)
* [Resolve actuals exceptions](/user-guides/budgets/resolving-actuals-exceptions)
* [Budgets overview](/user-guides/budgets/index)
* [Invoices](/user-guides/invoices/index)
