---
key: run-a-financial-report
title: Run a financial report
audience: staff
section: bookkeeping
routes: ["/bookkeeping/reports"]
permissions: ["bookkeeping.reports.read"]
features: ["bookkeeping"]
since: 0.0.1
updated: 0.0.1
status: published
summary: "See your profit and loss, balance sheet, trial balance, sales tax, aging, cash flow, vendor payments and a health check for any date range."
keywords: [P&L, profit and loss, income statement, balance sheet, trial balance, aging report, cash flow, 1099, T4A, who owes us, sales tax report]
related: [export-your-books, remit-sales-tax, close-the-books-for-a-period, set-up-bookkeeping]
---

In the sidebar, open **Bookkeeping**, then **Sales Tax & Reports**. The page address is `/bookkeeping/reports`.

## Before you start

- Reports only show what has been posted: categorized bank lines, expenses, invoices and payments. Categorize first if the numbers look thin; see [[categorize-bank-transactions]].
- Your role needs permission to read bookkeeping reports.

## Steps

1. Set the date range with **From** and **To** at the top. They start at the first day of this year and today. Reports that are a snapshot in time, such as the balance sheet and aging, use the **To** date.
2. Pick a report from the row of tabs:
   - **Profit & Loss**: income and expenses by account with **Net income** at the bottom. Under **Basis**, choose **Cash** (the starting choice: counted when money moves) or **Accrual** (counted when invoiced or billed). Switch **By account** to **By dimension (accrual)** to split income and expenses by the work order a cost was charged to; everything else sits under (unassigned).
   - **Balance Sheet**: **Assets**, **Liabilities** and **Equity** as of the **To** date, with **Current earnings**, earlier years' retained earnings when there are any, and totals.
   - **Trial Balance**: every account's **Debit** or **Credit** balance. The last row says whether the books are balanced.
   - **Sales Tax**: **Tax collected on sales**, **Input tax credits (ITC)** and **Net to remit** for the range. See [[remit-sales-tax]].
   - **A/R · A/P Aging**: under **Show**, pick **Receivable (customers owe us)** or **Payable (we owe vendors)**. Amounts are grouped into current, 1–30, 31–60, 61–90 and 90+ days with **Total outstanding**, and each open document is listed with its due date and days overdue.
   - **Cash Flow**: **Opening cash**, operating, investing and financing activity, **Net change in cash** and **Closing cash**. Under **Method**, choose **Direct** or **Indirect**.
   - **Vendor Payments**: **Total paid** to each vendor in the range. Vendors at or over the threshold named above the table ($600) are flagged under **Reportable** for 1099-NEC or T4A slips.
   - **Health Check**: confirms **Accounts Receivable** and **Accounts Payable** agree with the open invoices and bills behind them. In balance is what you want to see.
3. Read the table. Change the dates or tab and the report reloads on its own.

## What you see

- Amounts show in your organization's currency.
- Across the top sit **Close the books** (see [[close-the-books-for-a-period]]) and, when your role allows, the export buttons (see [[export-your-books]]) and **Rebuild ledger**.

## If something looks different

- **Trial Balance** reads OUT OF BALANCE, or **Health Check** shows a **Difference** other than zero: a manual journal entry was posted straight to a control account, or a document skipped it. Look through your journal entries first; see [[post-a-journal-entry]].
- **Health Check** says the difference is advisory and lists balances by currency: some older records are in another currency and cannot be totalled. That is expected for historical data.
- The report is empty for a range you know had activity: check **Basis**. On **Cash**, an unpaid invoice does not count yet.
- A closed fiscal year shows zero net income on **Cash**: the year-end closing entry is counted on that basis. Switch to **Accrual** for that year.
- The **Document** column in the aging list, or a row in **By dimension (accrual)**, shows a code instead of an invoice or work order number: that is Nova's internal reference for the record.
- The numbers still look wrong after categorizing and your role can post journal entries: press **Rebuild ledger**, then **Rebuild** in **Rebuild ledger?**. Nova re-derives every posting from your invoices, payments and other source documents and shows **Ledger rebuilt from source documents.** It is safe to run again.

[[route:/bookkeeping/reports|Open Reports]]
