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

# Recovery and refund claims

> How the AI Spend Agent reconciles billing, opens refund claims against violations, and tracks them to completion.

Recovery is where the AI Spend Agent chases money back on your behalf. It has two parts:

* The **reconciliation summary** — what the agent expected to be billed vs. what actually was.
* The **refund claim list** — individual claims filed against billing-discrepancy findings, and where each one stands.

## Reconciliation summary

Every audit produces a reconciliation of your provider bill against expected pricing. The summary at the top of Recovery shows:

* **Billed vs. expected** — Total the provider billed you against what pricing implies you should have been billed.
* **Recoverable** — The positive-delta total across reconciled buckets — the amount that's actually claimable.
* **Net delta** — Billed minus expected across everything reconciled (can be positive or negative).
* **Buckets reconciled** — How many usage buckets the audit was able to line up against pricing.
* **Period** — The date range the reconciliation covers.
* **Coverage caveat** — When some usage couldn't be reconciled (missing pricing, unknown models), the summary flags it so you know the recoverable number is a lower bound.

If the audit hasn't run yet, the summary shows an unaudited state and points at **Refresh insights**. If the audit ran and found no overcharges, it shows explicitly — "no overcharges found · N buckets reconciled · \$0 to recover" — instead of an empty section that could read as broken.

## Opening a refund claim

Refund claims are backed by **billing-discrepancy** findings on the [Violations](/integrations/ai-tokens/dashboard#violations) view.

<Steps>
  <Step title="Open Violations">
    From the agent's rail, open **Violations**.
  </Step>

  <Step title="Expand a billing discrepancy">
    Click a `Billing discrepancy` finding to expand it. Only findings whose rule is claimable show the claim action — cache, model-efficiency, and pricing-data findings can't back a claim.
  </Step>

  <Step title="Open the claim">
    Click **Open refund claim**. The action flips to **Claim opened** once the claim exists, so you can't double-file against the same finding.
  </Step>
</Steps>

The new claim appears in the Recovery list. Dash.fi assembles the evidence and files the refund request with the provider on your behalf — you don't submit anything to the provider directly.

## The refund claim list

Each claim in the list shows:

* **The originating finding** — Title, severity, human explanation, and estimated impact all render inline so you don't need to jump back to Violations.
* **Refund state** — The system-owned state of the refund with the provider: `draft`, `submitted`, `acknowledged`, `accepted`, `partial`, or `rejected`. This moves as the provider processes the claim.
* **Amounts** — What was claimed and, for accepted or partial states, what was recovered.
* **Rejection reason** — If the provider rejected the claim, the reason is shown alongside the state.
* **Your progress** — A per-claim status you set yourself (see below).

## Track your progress with status tabs

Recovery is the single home for claims. Each claim has a **customer-owned progress** field that's separate from the system refund state. You set it to reflect where you are in your own workflow — for example, marking a claim `In progress` while you gather internal approvals, or `Completed` once the refund lands in your account.

Available statuses:

* **Not started**
* **In progress**
* **Completed**
* **Cancelled**

The status tabs at the top of the list filter claims by this field, with counts per status. The tab you land on defaults to **All**. Change a claim's status from the control on its row — the change saves immediately.

<Note>
  The **refund state** (what the provider is doing) and your **progress** (where you are in your own workflow) are deliberately separate. The provider can be in `submitted` while you're in `In progress`; the provider can mark a claim `accepted` while your own progress stays `Not started` until you've reconciled the credit internally.
</Note>

## What if there's nothing to recover?

If the reconciliation runs and finds no positive delta on any bucket, Recovery shows a clear "no overcharges found" state alongside the reconciliation numbers. That way you can see it's the real answer, not a missing audit. Re-run the audit any time with **Refresh insights** — a future window may surface new discrepancies as usage and pricing data land.
