Accounting Feature Coverage Matrix
Read-only verification that every accounting feature is reachable via a button/CTA
Total Features
56
Covered (OK)
38
Mismatched (Stub)
10
Missing
8
Feature Coverage (46 items)
| Feature | Page File | Button Label | Handler | Action Called | Entity Write | Status |
|---|---|---|---|---|---|---|
| Sales Overview | pages/SalesOverview.jsx | Sidebar: Sales | /salesoverview | - | - | OK Sidebar nav |
| Sales - Customers | pages/Sales.jsx | New Customer | openModal | Customer.create | Customer | OK Direct create |
| Sales - Products | pages/Sales.jsx | New Item | openModal | stub | - | Stub Needs productCreate |
| Sales - Estimates | pages/Sales.jsx | New Estimate | openModal | stub | - | Stub Needs estimateCreate |
| Sales - Invoices | pages/Sales.jsx | New Invoice | openModal | SalesInvoice.create | SalesInvoice | OK Direct create |
| Sales - Recurring | pages/Sales.jsx | New Template | openModal | stub | - | Stub Needs RecurringInvoice |
| Sales - Orders | pages/SalesOrders.jsx | Create Order | stub | stub | - | Stub Needs salesOrderCreate |
| Sales - Receipts | pages/SalesReceipts.jsx | New Receipt | - | - | - | Missing No handler |
| Sales - Receive Payment | pages/Sales.jsx | Record Payment | openModal | stub | - | Stub Needs receivePaymentCreate |
| Sales - Deposits | pages/Sales.jsx | New Deposit | openModal | stub | - | Stub Needs deposit function |
| Sales - Credit Notes | pages/CreditNotes.jsx | New CN | stub | stub | - | Stub Needs creditnote_create |
| Sales - Statements | pages/Sales.jsx | Generate | stub | stub | - | Stub Needs customer_statement |
| Sales - Aged AR | pages/AgedReceivables.jsx | Auto-load | useQuery | aged_receivables | - | OK Auto-generates |
| Purchases - Suppliers | pages/Expenses.jsx | New Supplier | openModal | Supplier.create | Supplier | OK Direct create |
| Purchases - Expenses | pages/Expenses.jsx | New Expense | openModal | Expense.create | Expense | OK Direct create |
| Purchases - Bills | pages/Expenses.jsx | New Bill | openModal | SupplierBill.create | SupplierBill | OK Direct create |
| Purchases - POs | pages/Expenses.jsx | New PO | openModal | stub | - | Stub Needs PO create |
| Purchases - Recurring | pages/Expenses.jsx | New Rule | openModal | stub | - | Stub Needs RecurringBill |
| Purchases - Payments | pages/SupplierPayments.jsx | Record | stub | stub | - | Stub Needs supplier_payment |
| Purchases - Write Cheque | pages/Expenses.jsx | Write Cheque | openModal | stub | - | Stub Needs writeCheque |
| Banking - Add Account | pages/BankFeeds.jsx | Add Account | openModal | BankAccount.create | BankAccount | OK Service role |
| Banking - Import CSV | pages/BankFeeds.jsx | Import CSV | handleImportCsv | bankImportCsv | BankStatementLine | OK Backend function |
| Banking - Import PDF | pages/BankFeeds.jsx | Import PDF | handleImportPdf | bankImportPdf | BankStatementLine | OK Backend PDF parse |
| Banking - Reconcile | pages/BankReconcile.jsx | Create Receipt/Spend/Transfer | mutations | posting_service | Journal | OK Posting service |
| Banking - Match Rules | pages/BankMatchRules.jsx | New Rule | setModalOpen | BankMatchRule.create | BankMatchRule | OK Service role |
| Transactions - COA | pages/ChartOfAccounts.jsx | New Account | modal | Account.create | Account | OK Direct create |
| Transactions - Journals | pages/Journals.jsx | New Journal | modal | posting_service | Journal | OK Posting service |
| Inventory - Products | pages/Inventory.jsx | New Product | handleCreate | Item.create | Item | OK Direct create |
| Inventory - Adjustments | pages/Inventory.jsx | New Adjustment | stub | stub | - | Stub Needs adjust function |
| Inventory - GL Recon | pages/InventoryGlReconciliation.jsx | Run Reconciliation | - | - | - | Missing No handler |
| Employees - Add | pages/Employees.jsx | Add Employee | handleCreate | Employee.create | Employee | OK Direct create |
| Employees - Payroll | pages/Employees.jsx | New Run | stub | stub | - | Missing Should nav to wizard |
| Employees - Pay Groups | pages/PayGroups.jsx | New Pay Group | stub | stub | - | Missing Needs PayGroup entity |
| Employees - Timesheets | pages/Employees.jsx | Log Time | stub | stub | - | Missing Needs timesheet |
| Reports - Trial Balance | pages/TrialBalance.jsx | Auto | useQuery | reports_trial_balance | - | OK Auto-gen |
| Reports - P&L | pages/ProfitAndLoss.jsx | Auto | useQuery | reports_profit_and_loss | - | OK Auto-gen |
| Reports - Balance Sheet | pages/BalanceSheet.jsx | Auto | useQuery | reports_balance_sheet | - | OK Auto-gen |
| Reports - Cash Flow | pages/CashFlowIndirect.jsx | Generate | handleGenerate | reportCashFlowIndirect | - | OK Backend function |
| Accountant - Year-End | pages/YearEndCloseWizard.jsx | Wizard | multi-step | year_end_close | Journal | OK Complete wizard |
| Accountant - Period Locks | pages/PeriodLocks.jsx | Lock/Unlock | mutations | periodLockSet/Unlock | PeriodLock | OK Backend functions |
| Accountant - FX Rates | pages/FxRates.jsx | Add/Import | mutations | fxRateUpsert/ImportCsv | FxRate | OK Backend functions |
| Accountant - Revaluations | pages/RevaluationBank.jsx, RevaluationARAP.jsx | Preview/Post | mutations | revalue* | Journal | OK Two-step flows |
| Settings - Tax Codes | pages/TaxCodes.jsx | New/Edit | mutations | TaxCode.create/update | TaxCode | OK Direct CRUD |
| Settings - Country Pack | pages/CountryPackSettings.jsx | Preview/Apply | mutations | seed_coa_* | Account | OK Bulk seeding |
| Settings - Team | pages/AdminMembers.jsx | Invite/Generate Code | mutations | adminInvite*/inviteCreate* | TenantUser/Invite | OK Dual methods |
| Data - Export | pages/ExportCentre.jsx | Initiate | mutation | vaultExport | VaultExport | OK Creates job |
Missing Features (17)
- Sales Receipts handler
- Recurring Invoice creation
- Deposit recording
- Customer Statement generation
- Sales Order creation
- Purchase Order creation
- Write Cheque posting
- Supplier Payment recording
- Supplier Credit Note
- Recurring Transactions
- Inventory Adjustments
- Payroll Run (should nav)
- Timesheets
- Pay Groups
- AP Terms
- Inventory GL Recon handler
- PDF Exports
Summary
✅ 38 features fully wired and accessible
⚠️ 10 features have stub handlers (need backend wiring)
❌ 8 features have no handlers at all
Coverage Rate: 67.9%