Reports

Financial reports computed from the double-entry ledger. All reports are read-only calculations derived from posted transactions — they have no stored state of their own.

Report types

  • Profit & Loss — revenue minus expenses for a date range, with optional prior-period comparison
  • Balance Sheet — assets, liabilities, equity, and retained earnings as at a specific date
  • Trial Balance — all accounts with non-zero balances showing debit/credit split, verifying the books balance
  • VAT Return Summary — output VAT, input VAT, net position, rate breakdown, and HMRC box mapping for a period
  • Dashboard — year-to-date P&L, bank balance, invoice stats, and tax set-aside calculations
  • Aged Debtors — outstanding receivables grouped by contact and aging bucket (current, 1–30, 31–60, 61–90, 90+ days)
  • Aged Creditors — outstanding payables with the same aging structure

Financial periods

Periods define the fiscal year boundaries (e.g. 6 April to 5 April for UK tax years). Periods can be open or closed. The dashboard defaults to the current open period.

Amounts

All monetary values are returned in minor units (pence). Balance computations use Decimal.js for arbitrary-precision arithmetic.

Accounting conventions

  • Revenue is stored as credits (negative in the ledger), displayed as positive on reports
  • Expenses are stored as debits (positive in the ledger)
  • Assets are debits, liabilities and equity are credits
  • The balance sheet equation: Assets = Liabilities + Equity + Retained Earnings

Endpoints