Professional accounting reports for Actual Budget - P&L, Balance Sheet, Trial Balance, General Ledger, and more
npm install actual-reportsProfessional accounting reports for Actual Budget. Generate print-ready financial reports from your Actual Budget data with a clean web interface.


- Read-Only Access - Your budget data is never modified
- Professional Reports - Standard accounting report formats
- Print Ready - Optimized layouts for printing
- CSV Export - Export data for use in spreadsheets
- Multi-Period Views - Compare data across months, quarters, or years
- Modern Interface - Clean, responsive web UI
| Report | Description |
|--------|-------------|
| Profit & Loss | Income and expenses with optional grouping by month/quarter/year |
| Balance Sheet | Assets, liabilities, and equity as of a specific date |
| Trial Balance | All accounts with debit/credit balances, CSV export |
| General Ledger | Detailed transaction listing by account |
| Chart of Accounts | Complete list of all categories and accounts |
``bashUsing bun (recommended)
bun add -g actual-reports
$3
`bash
actual-reports
`Open http://localhost:3000 in your browser.
$3
`bash
Clone the repository
git clone https://github.com/actualbudget/actual-reports.git
cd actual-reportsInstall dependencies
bun installStart the server
bun run start
`Requirements
- Bun v1.0+ (or Node.js 18+)
- Actual Budget with local database files (typically in
~/Documents/Actual/)Usage
1. Select a budget from the dropdown menu
2. Choose a report type (P&L, Balance Sheet, Trial Balance, etc.)
3. Select the time period (Year, Quarter, Month, or Custom range)
4. View, print, or export your report
$3
Click the print button or use
Cmd/Ctrl + P. Reports are optimized for landscape printing.$3
Trial Balance reports include a CSV download button for spreadsheet import.
Configuration
$3
Set a custom port using the
PORT environment variable:`bash
PORT=8080 actual-reports
`$3
By default, Actual Reports reads budget databases from
~/Documents/Actual/. This is where Actual Budget stores local data.API Reference
$3
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET |
/api/budgets | List all available budgets |
| GET | /api/budgets/:id/years | Get available years for a budget |
| GET | /api/budgets/:id/reports/pnl | Profit & Loss report |
| GET | /api/budgets/:id/reports/balance-sheet | Balance Sheet report |
| GET | /api/budgets/:id/reports/trial-balance | Trial Balance report |
| GET | /api/budgets/:id/reports/general-ledger | General Ledger report |
| GET | /api/budgets/:id/reports/chart-of-accounts | Chart of Accounts |$3
| Parameter | Type | Description |
|-----------|------|-------------|
|
period | string | year, quarter, month, or custom |
| year | number | Year for the report |
| month | number | Month (0-11) when period is month |
| quarter | number | Quarter (0-3) when period is quarter |
| startDate | string | Start date (ISO) when period is custom |
| endDate | string | End date (ISO) when period is custom |
| includeOffBudget | boolean | Include off-budget accounts |$3
| Parameter | Type | Description |
|-----------|------|-------------|
|
grouping | string | monthly, quarterly, or annual for comparative view |Tech Stack
- Runtime: Bun
- Backend: Hono
- Frontend: React 19, Tailwind CSS
- Database: SQLite (read-only via bun:sqlite)
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
$3
`bash
Start with hot reload
bun run devBuild client only
bun run build:client
``This application provides read-only access to your Actual Budget data. No modifications are ever made to your budget files.
- Actual Budget - The budgeting app this tool generates reports for
- Actual Server - Self-hosted Actual Budget server