# Phase 6 — Reporting Suite: Manual Test Checklist Five reports are now live under **Reports Centre**, each reachable directly from its card (the "Coming soon" reports remain placeholders). Every report respects the branch switcher in the top bar — Main gives a consolidated view, a single branch scopes to just that branch's posted activity. ## 1. Trial Balance (`/reports/trial-balance`) - [ ] Pick an "As at" date after some posted activity — accounts with posted movement appear, sorted by account code - [ ] The "Balanced" / "Out of balance" chip in the header reads **Balanced** (it always should — this is a structural invariant of double-entry posting, not something that can drift) - [ ] Total Debit column sum equals Total Credit column sum in the footer row - [ ] Switching the branch selector to a single branch narrows the accounts/amounts shown to that branch's postings only ## 2. Profit & Loss Statement (`/reports/profit-and-loss`) - [ ] Defaults to year-to-date on load - [ ] Narrowing the date range changes which invoices/postings are included (an invoice dated outside the range should disappear from its account's line) - [ ] Net Profit = Total Income − Total Expense, shown in green when positive / red when negative - [ ] Income/Expense accounts with zero movement in the period are omitted, not shown as zero ## 3. Balance Sheet (`/reports/balance-sheet`) - [ ] Assets, Liabilities, and Equity sections all populate - [ ] "Current Year Earnings" appears as a computed equity line (no account code) equal to this fiscal year's Profit & Loss net profit up to the As-at date — this app has no year-end close step, so this is how the balance sheet stays real-time-balanced - [ ] Header chip reads **Balanced** (Total Assets = Total Liabilities + Total Equity) ## 4. Aged Receivables (`/reports/aged-receivables`) - [ ] Only customers with an outstanding (unpaid/partially paid) posted invoice appear - [ ] An overdue invoice lands in the correct bucket (Current / 1–30 / 31–60 / 61–90 / 90+) based on days between its due date and the As-at date - [ ] Clicking a customer name navigates to that customer's detail page - [ ] Footer row sums match the column totals ## 5. Aged Payables (`/reports/aged-payables`) - [ ] Same checks as Aged Receivables, mirrored for suppliers — clicking a supplier name navigates to the supplier's detail page ## Regression - [ ] General Ledger card in Reports Centre still links to the existing Journal Entries page (its "By Account" tab is the account drill-down report) - [ ] Reports Centre's still-unbuilt cards (Customer Statement, Payment Run, Budget vs Actual, Branch Performance) remain visibly disabled ("Coming soon")