Generate Reports.
Run tax reports, aging reports, and customer statements in InvoiceScript. Export invoice data as CSV.
Generate Reports
InvoiceScript produces three report types (tax, aging, and customer statement) plus a full invoice CSV export. All reports are available under Reports in the main navigation for users with the Owner, Admin, or Accountant role.
Open the Reports Hub
Click Reports in the top navigation bar. The hub shows four cards:
- Tax report: tax collected per rate, grouped by period
- Aging report: outstanding invoices bucketed by days overdue
- Customer statement: per-customer invoice and payment history
- Invoice export: download all invoices as CSV
Tax Report
The tax report aggregates tax from finalized invoices and credit notes in a date range. Each row shows a tax rate, its taxable base, the tax collected, and the line total.
- Click Tax report from the hub.
- Select a period preset (This month, Last month, This quarter, This year, Last year) or choose Custom range and set start/end dates.
- The table updates to show per-rate totals. A summary row at the bottom shows the grand totals.
- Click Download CSV to export the data, or Print to open the browser print dialog.
What counts: Only finalized (non-draft, non-cancelled) invoices and credit notes with an issue date inside the selected period. Draft and cancelled documents are excluded.
Worked Example
Northwind Studio runs the tax report for Q1 2026 (1 Jan to 31 Mar). Three invoices finalized in the period use two rates:
| Tax rate | Taxable base | Tax amount | Total |
|---|---|---|---|
| VAT 21% | 8,500.00 EUR | 1,785.00 EUR | 10,285.00 EUR |
| VAT 9% | 3,200.00 EUR | 288.00 EUR | 3,488.00 EUR |
| Summary | 11,700.00 EUR | 2,073.00 EUR | 13,773.00 EUR |
Aging Report
The aging report shows outstanding invoices grouped by days past due per customer. It answers the question: how much is owed and how overdue is it?
- Click Aging report from the hub.
- The report generates for the current date. No period filter is needed; it always reflects the live outstanding position.
Buckets:
| Bucket | Meaning |
|---|---|
| Current | Invoice due date has not passed |
| 1-30 days | 1 to 30 days past due |
| 31-60 days | 31 to 60 days past due |
| 61-90 days | 61 to 90 days past due (amber highlight) |
| 90+ days | More than 90 days past due (red highlight) |
Each row shows a customer name (linked to their detail page), amounts in each bucket, and the total outstanding. The summary row shows the totals across all customers.
What counts: Finalized invoices with status Sent or Partially Paid. Paid, cancelled, and draft invoices are excluded. The balance shown is grand_total - amount_paid.
Customer Statement
The customer statement shows a single customer's invoice and payment history for a period.
- Click Customer statement from the hub.
- Select a customer from the dropdown.
- Select a period.
- The page shows:
- Summary cards: opening balance, total invoiced, total payments, closing balance
- Transaction table: each invoice, credit note, and payment in chronological order with a running balance
The opening balance is the sum of unpaid invoices issued before the selected period. The closing balance reflects all activity within the period.
Worked Example
Northwind Studio pulls the May 2026 statement for Alpine Bakery:
| Date | Document | Type | Debit | Credit | Balance |
|---|---|---|---|---|---|
| Opening balance | 500.00 EUR | ||||
| 2026-05-03 | INV-2026-0047 | Invoice | 1,200.00 EUR | 1,700.00 EUR | |
| 2026-05-10 | Payment | 500.00 EUR | 1,200.00 EUR | ||
| 2026-05-18 | CN-2026-0003 | Credit note | 200.00 EUR | 1,000.00 EUR |
Closing balance: 1,000.00 EUR
Invoice CSV Export
Click Invoice export from the hub to download all finalized invoices as a CSV file. The file includes:
document_number, status, customer_name, issue_date, due_date, currency_code, subtotal, discount_total, tax_total, grand_total, amount_paid, balance_due, reference, notes
The CSV uses UTF-8 encoding with a BOM for Excel compatibility. Money amounts are formatted as decimal numbers (e.g., 125.50).
To filter by period, append period parameters to the URL:
/reports/invoices/csv?period=this_year
Permissions
Reports are gated by the data.export permission. Only Owner, Admin, and Accountant roles have access. Employees do not see the Reports navigation item.
Ready to build?
One-time purchase. Self-hosted. Own every file forever.