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

# Read the finance report

> See what cash came in, what you billed, what is still owed and what you spent, with the breakdown behind each figure, filterable by date and exportable as CSV or PDF.

**Finance** is the money tab on **Reports**, sitting between **Appointments** and **CSAT** in the tab strip. On screen it introduces itself as *What came in, what was billed, what is still owed and what went out.*

It only reads. Nothing on this page changes a payment, an invoice or an expense; it is the same money you already recorded in [Finance](/finance/overview), totalled up and sliced by date, method, category, offering and client.

<Note>
  The first three tiles answer three different questions and are deliberately never added together. **Money in** is cash that arrived. **Billed** is what you invoiced. **Outstanding** is what you are owed right now, ignoring the dates you set. Read [The three kinds of number](#the-three-kinds-of-number) before you quote any of them to your accountant.
</Note>

## Open the report

<Steps>
  <Step title="Open Reports">
    In the sidebar, under **Configurations**, select **Reports**, then select the **Finance** tab.
  </Step>

  <Step title="Read the five tiles">
    **Money in**, **Billed**, **Outstanding**, **Spent** and **Net profit**, in that order, in your workspace currency.
  </Step>

  <Step title="Read the small print under them">
    A line under the tiles always states which basis each figure is on, and adds a sentence about tips and a sentence about refunds when either applies.
  </Step>

  <Step title="Filter by date">
    Set **From** and **To** to narrow the window. Leave both blank and the report defaults to the trailing 30 days. Three figures ignore these dates on purpose; see [Filter by date](#filter-by-date).
  </Step>

  <Step title="Export or download a PDF">
    **CSV** gives you every payment behind **Money in**. **PDF** downloads the whole report formatted. See [Export](#export).
  </Step>
</Steps>

## The three kinds of number

| Figure          | The question it answers                  | Dated by                          | Moves when you change the dates |
| --------------- | ---------------------------------------- | --------------------------------- | ------------------------------- |
| **Money in**    | How much cash actually reached me?       | the day the payment arrived       | Yes                             |
| **Billed**      | How much did I invoice?                  | the invoice's issue date          | Yes                             |
| **Outstanding** | How much do my clients owe me right now? | nothing: it is a running position | No                              |

**Money in** is cash. It counts money that physically arrived between your two dates, dated by the day it arrived, with refunds already taken off. It does not care when the work was done or when you raised the invoice.

**Billed** is the face value of the invoices you issued between those dates. It does not care whether a penny of it has been paid.

**Outstanding** is a snapshot of what your clients owe you today, across every posted invoice you have ever raised. It is not a period figure, so narrowing it to a period would misrepresent it. Changing **From** and **To** leaves it exactly where it is.

The two windowed figures cross over constantly. An invoice issued inside your window and paid next month counts in **Billed** and not in **Money in**. A payment that lands inside your window against an invoice you raised last year counts in **Money in** and not in **Billed**. Neither is an error, and the gap between them is not a discrepancy to chase.

<Warning>
  Do not add **Money in**, **Billed** and **Outstanding** together, and do not treat any one of them as "revenue for the period" without saying which. They are three separate measurements of the same business, on three different bases.
</Warning>

### What each one leaves out

**Money in** excludes:

* **Money that never arrived.** A payment only counts once it is recorded as collected on a date. Pending and failed payments never count, and neither does a payment marked refunded that never actually collected anything.
* **Gift card redemptions.** That money was already counted when the card was sold. Counting it again when the card is spent would count the same sale twice. See [Gift cards](/offerings/gift-cards).
* **Tips.** A gratuity moves money but is not takings. Tips are reported on their own line instead.
* **Refunds.** Refunds are netted off, so **Money in** is what you kept.

**Billed** excludes draft invoices (not owed yet), voided invoices (cancelled), and any posted invoice issued outside the window.

**Outstanding** excludes draft and void invoices. Nothing else is excluded, and nothing is excluded by date.

**Spent** excludes nothing but the window itself. Every expense recorded against a date inside it counts, including expenses you have not put in a category.

<Note>
  A refund returns money; it does not un-collect it. Refunding an invoice lowers **Money in** and does not push the balance back into **Outstanding**. The invoice stays settled.
</Note>

## What each tile means

| Tile            | Basis          | What it counts                                                                                               |
| --------------- | -------------- | ------------------------------------------------------------------------------------------------------------ |
| **Money in**    | Cash           | Payments collected in the window, after refunds, excluding tips and gift card redemptions.                   |
| **Billed**      | Invoiced       | The total of every invoice you issued in the window, paid or not. Drafts and voids are out.                  |
| **Outstanding** | Owed now       | What is still unpaid across every invoice you have issued, at this moment. Ignores the window.               |
| **Spent**       | Recorded spend | Expenses dated inside the window. There is no paid or unpaid state on an expense: recording it is the event. |
| **Net profit**  | Mixed          | **Money in** minus **Spent**. See the note below.                                                            |

<Note>
  **Net profit** here is cash you took minus spend you recorded. It is not an accounting profit. It ignores **Billed** and **Outstanding** entirely, so a month where you invoiced heavily and collected little shows a poor net profit even though the business had a good month.
</Note>

### The lines under the tiles

One line is always shown, word for word:

> Money in is cash that arrived in this period, net of refunds and excluding tips. Billed counts invoices issued in the period. Outstanding is what is owed right now, so it is not limited to this period.

Two more appear only when they apply:

* `Tips of {amount} were collected on top and are not counted as revenue.` shows when any tip was kept in the window. That figure is the gratuity you actually kept, so a refund that ate into a tip has already been deducted from it.
* `{refunded} was refunded out of {gross} taken.` shows when anything was refunded. The larger number is what you took before refunds, which is why it does not match the **Money in** tile.

If takings arrived in more than one currency, an amber line appears above the charts:

`Takings arrived in {count} currencies ({list}). The totals above add them together without conversion.`

<Warning>
  Read that line literally. DMLY does not convert currencies here. It adds the raw amounts and tells you it has done so. If your workspace genuinely bills in two currencies, the tiles are a sum of unlike things and only the per-currency split in that line is meaningful. The **Currency** column in the CSV export is the only place each payment's own currency is broken out.
</Warning>

## What the charts and tables show

**Money in and out over time** plots two lines, **Money in** and **Spent**, across the window. Each line adds up to its own tile exactly. A short window is plotted by day. Wider windows are grouped into weeks, and wider ones again into months, so the chart stays readable; the labels along the bottom are then week or month starts rather than days.

**How the money arrived** splits **Money in** by payment method, using the method recorded on each payment (for example **Bank transfer**). The rows add up to the **Money in** tile.

**Where the money went** splits **Spent** by expense category. Spend with no category is kept visible as **Uncategorised** rather than dropped, so the rows still add up.

**Top services and products** is the one breakdown that is *not* cash. Its own sub-line says so: *By value billed on invoices issued in this period.* It totals the value of the lines on the invoices you issued, grouped by the name saved onto the invoice at the time, so renaming a service later does not split its history in two.

**Best clients** lists up to ten clients by **Money in**, with a **Payments** count beside each. **Payments** counts payments, not invoices and not visits; a fully refunded payment still counts as one. Payments with no contact attached to them are grouped under **Unassigned**, which is a real row and not an error.

**What is still owed** ages your unpaid invoices into five buckets: **Not yet due**, **1–30 days**, **31–60 days**, **61–90 days** and **90+ days**, each with an invoice count and an amount, then a bold **Total owed** row that matches the **Outstanding** tile. When anything is past its due date, a red line beneath reads `{amount} of that is past its due date, across {count} invoice(s).` When nothing is owed, the panel simply says **Nothing is outstanding.**

<Note>
  Every bar breakdown shows its top eight rows and folds the rest into a single row labelled **Other (n)**, where `n` is how many rows were folded in, so the bars still add up to the total. **Best clients** is capped at ten rows with no fold row, so it adds up to **Money in** only when ten or fewer clients paid you in the window.
</Note>

Empty windows say so rather than showing a zero: **No payments were collected in this period.**, **No expenses were recorded in this period.**, or **No data for this period yet.**

## Filter by date

**From** and **To** are the only filters. There is no channel, staff, method or currency filter, and nothing to select to apply them: the report reloads the moment you change a date. A **Clear filter** button appears while either date is set and resets both.

* Leave both blank and you get the trailing 30 days, ending today, both ends included.
* Set only one and the other end still resolves: a **From** on its own runs to today, and a **To** on its own gives the 30 days ending on that date.
* Set **From** after **To** and the window collapses to a single day.

Three things on the page ignore these dates completely: the **Outstanding** tile, the past due line, and the whole **What is still owed** table. They are a position, not a period. Everything else moves.

<Tip>
  The window you set is not printed anywhere on the screen. If you need a copy of the report that states its own date range, export the **PDF**: the range appears in its header.
</Tip>

## Export

Three buttons sit at the right of the filter row.

<Steps>
  <Step title="CSV">
    `finance.csv`: one row per payment collected in the window, newest first, with the columns **Paid at**, **Client**, **Invoice**, **Method**, **Status**, **Gross**, **Tip**, **Refunded**, **Net**, **Currency** and **Reference**. It uses exactly the same rules as the tiles, so the **Net** column adds up to **Money in**. **Gross** is the charge without the tip, and **Net** is **Gross** minus **Refunded**.
  </Step>

  <Step title="PDF">
    `finance-report.pdf`: the five tiles, the basis note, the trend chart and every breakdown, formatted like an invoice PDF, with your business header and the date range.
  </Step>

  <Step title="Workspace report">
    `workspace-report.pdf`: several reports in one document. It carries a Finance section when your role can view finance, and simply leaves that section out when it cannot; either way you get the rest of the document. See [Exporting reports](/analytics/exporting-reports).
  </Step>
</Steps>

<Note>
  **Workspace report** does not carry your dates across. It always covers the trailing 30 days, whatever you set here. For a specific window, export this tab's own **PDF**.
</Note>

<Note>
  The **PDF** is in English whatever language the app is set to. The screen is translated; the printed report's headings are not. Its wording differs slightly too, for instance **Top services and products** prints as **Top services & products billed**.
</Note>

## Who can see the Finance tab

Two permissions decide it, and neither is new.

* To reach the report at all you need access to the **Reports** module, and the **Finance** module's **View finance (invoices, payments, orders)** permission: the same one that opens the Finance section itself. Without the second, the tab is not shown, and going to the address directly is refused with *You do not have permission to view finance.*
* Owners and Admins hold both. Members and Viewers hold **View finance** by default, so they see the tab. A custom role only sees it if you tick that permission.

Exporting is separate again: **CSV**, **PDF** and **Workspace report** all need **Export reports**, which is admin only by default. Those three buttons are shown to everyone on the page, so a Member can see them and still be turned away on selecting one. That is true of every Reports tab, not just this one. See [Roles and permissions](/account/roles-and-permissions).

## Caveats

<Accordion title="Money in does not match my bank statement">
  It is not meant to. Five things sit between them, and all five are deliberate: tips are excluded, gift card redemptions are excluded, refunds are already netted off, payments you have not recorded as collected are not counted, and takings in different currencies are added without conversion. Work down that list before assuming a payment is missing.
</Accordion>

<Accordion title="Outstanding does not change when I change the dates">
  Correct. **Outstanding**, the past due line and the **What is still owed** table are a snapshot of what you are owed right now, across every invoice you have ever issued. A period filter would make them a different, and misleading, number.
</Accordion>

<Accordion title="Top services and products does not add up to Billed">
  Expected. That panel totals the value of invoice lines, while **Billed** totals invoices. A coupon, a discount or a shipping charge moves the invoice total away from the sum of its lines. It is also capped at eight rows plus **Other (n)**, and it never sees anything you sold without an invoice line. Treat it as a ranking, not as a breakdown of **Billed**.
</Accordion>

<Accordion title="The appointments report shows a different money figure">
  The appointments report has a money figure of its own, printed as **Paid bookings** in its PDF. It totals what bookings are worth once they are marked paid, counted on the date of the booking rather than the day the money arrived, so it includes bookings that have not happened yet and takes no account of refunds. It is not **Money in** and the two are not meant to reconcile. For cash actually taken, use this page.
</Accordion>

<Accordion title="An invoice looks past due here but not on the invoice itself">
  This report works out what is overdue from each invoice's due date every time it loads, so an invoice can show as past due here just before its own status catches up. Invoices with no due date at all are never counted as overdue; they sit in the **Not yet due** bucket, because undated money is not late money.
</Accordion>

<Accordion title="An invoice exactly 90 days late is in the wrong bucket">
  The bucket names are rounded. An invoice exactly 90 days past its due date sits in **61–90 days**, and **90+ days** starts a day later. Nothing is lost either way: every unpaid invoice lands in exactly one bucket, and the buckets add up to **Total owed**.
</Accordion>

<Accordion title="A payment landed on the wrong day">
  The date window is applied in UTC rather than your local time, so a payment taken late in the evening well east of UTC can fall into the next day's bucket. Over a window of any length the totals are unaffected; it only shows up at the edges of a narrow window.
</Accordion>

## Next

<Columns cols={2}>
  <Card title="Finance overview" icon="receipt" href="/finance/overview">
    Where these numbers come from: invoices, payments, orders and subscriptions.
  </Card>

  <Card title="Expenses" icon="coins" href="/finance/expenses">
    What feeds **Spent** and **Where the money went**.
  </Card>

  <Card title="Exporting reports" icon="file-export" href="/analytics/exporting-reports">
    Every CSV and PDF export across Reports, in one place.
  </Card>

  <Card title="Roles and permissions" icon="user-shield" href="/account/roles-and-permissions">
    Who can see the Finance tab, and who can export from it.
  </Card>
</Columns>
