Peachtree / Sage 50 Report Parity¶
Goal: reach full coverage of the Peachtree (Sage 50) report catalog our clients migrate from. This page is the single source of truth for which Peachtree reports already exist in this backend, which are partial, and which are still missing — plus the plan to close the gap.
Legend:
Done — a working report exists (query/service) covering the same intent.
Partial — some of the data/report exists but the Peachtree-equivalent view is incomplete.
Missing — no equivalent report yet.
Naming note: Peachtree menus mix English standard reports with the client's Spanish "custom" variants (e.g. Reporte de Ventas, comision vendedor, Cuentas por pagar_proveedores). Custom variants are just filtered/renamed versions of a standard report — we track them against the standard report they derive from.
Every report in this backend lives under app/graphql/reports/ and follows
model → repository → service → GraphQL query, returns GenericReportPageResponse<T>, and supports
generateCsv + PDF export. See Reports & Metrics for the architecture.
Summary¶
| Module | Done | Partial | Missing | Total |
|---|---|---|---|---|
| Accounts Receivable (Customers & Sales) | 18 | 0 | 6 | 24 |
| Accounts Payable (Vendors & Purchases) | 12 | 1 | 4 | 17 |
| Payroll | 6 | 1 | 5 | 12 |
| General Ledger | 8 | 1 | 1 | 10 |
| Financial Statements | 4 | 3 | 8 | 15 |
| Account Reconciliation | 5 | 1 | 0 | 6 |
| Total | 53 | 7 | 24 | 84 |
Counts are approximate and should be updated as items move columns.
Accounts Receivable — Customers and Sales¶
| Peachtree report | Status | Our equivalent / notes |
|---|---|---|
| Invoice Register | Invoice Register Report — reports/queries/sales/sales_report_queries.py |
|
| Reporte de Ventas / REPORTE DE ITBMS / REPORTE DE VENTAS ITBMS (custom) | Filtered variants of Invoice Register; ITBMS column exists via ITBMS Liability. Need saved "custom" presets + tax-column layout. |
|
| Sales Journal / Sales Journal_only (custom) | Sales Journal Report (INVOICES ledger postings, debit/credit) — reports/queries/journals/journal_report_queries.py. See Journal-Format Reports. |
|
| Sales Order Journal | Order register in journal (debit/credit) format — reports/queries/sales/sales_report_queries.py |
|
| Sales Order Register | Order Register Report — sales_report_queries.py |
|
| Quote Register | Quote Register Report — sales_report_queries.py |
|
| Proposal Register / Proposal Report | Quotes cover proposals; "accepted/remaining-to-bill" proposal view not surfaced. | |
| Items Sold to Customers / ITEMS VENDIDOS A CLIENTES / ARTICULO COMPRADO POR CLIENTE (custom) | Item Invoice Detail + Product Margin (qty, amount, cost, gross profit, margin) — reports/queries/inventories/, reports/queries/sales/product_margin_report_queries.py |
|
| Aged Receivables | Aged Receivable Report + summary — reports/queries/aged_receivables/ |
|
| Cash Receipts Journal / INFORME DE CAJA (custom) | Cash Receipts Journal Report (RECEIPTS ledger postings) — reports/queries/journals/journal_report_queries.py. See Journal-Format Reports. |
|
| Customer Ledgers | Client Statement (per-client transactions + balance) — reports/queries/client_statement/ |
|
| Customer Transaction History | Covered by Client Statement. |
|
| Customer Sales History | Data exists (invoices + receipts per client); dedicated history view not surfaced. | |
| Customer Management Detail | Customer Management Detail (open invoices, terms, balance, aging) — reports/queries/management_detail/. See Management Detail Reports. |
|
| Sales Rep Reports / comision vendedor (custom) | Commission Report — sales/queries/ (commission by salesperson, subject/not-subject). |
|
| Sales Taxes | Sales Taxes Report (per-rate output ITBMS + rate metadata) — reports/queries/tax/tax_report_queries.py. See Panama Tax Reports. |
|
| Taxable / Exempt Sales | Taxable/Exempt Sales Report (taxable base vs exempt base + per-rate breakdown) — reports/queries/tax/tax_report_queries.py. See Panama Tax Reports. |
|
| Customer List / Customer Master File List / Contact List | Customer List Report (contact, tax-id, terms, balance) — reports/queries/master_data/. See Master-Data List Reports. |
|
| Prospect List | No CRM prospect entity yet. | |
| Picklist Report | Picklist Report (open-order lines, remaining > 0) — reports/queries/open_documents/. See Open-Document Status Reports. |
|
| Sales Backorder Report | Sales Backorder Report (open-order lines, remaining > 0) — reports/queries/open_documents/. See Open-Document Status Reports. |
|
| Sales Order Report | Sales Order Report (qty ordered/shipped/remaining) — reports/queries/open_documents/. See Open-Document Status Reports. |
Accounts Payable — Vendors and Purchases¶
| Peachtree report | Status | Our equivalent / notes |
|---|---|---|
| Purchase Order Register | Purchase Order Register Report — reports/queries/purchases/purchases_report_queries.py |
|
| Purchase Order Journal | Register exists; debit/credit journal-format renderer missing. | |
| Purchase Journal | Purchase Journal Report (SUPPLIER_INVOICES ledger postings) — reports/queries/journals/journal_report_queries.py. See Journal-Format Reports. |
|
| Supplier Invoice Register / Cuentas por pagar_proveedores (custom) | Supplier Invoice Register Report — purchases_report_queries.py |
|
| Supplier Quote Register | Supplier Quote Register Report — purchases_report_queries.py |
|
| Aged Payables | Aged Payable Report + summary — reports/queries/purchases/aged_payable_queries.py |
|
| Items Purchased from Vendors | Item Supplier Invoice Detail + Item Purchases — reports/queries/inventories/, reports/queries/purchases/item_report_queries.py |
|
| Vendor Ledgers / Vendor Transaction History | Vendor transaction + balance history (supplier statement). | |
| Purchase Order Report | Purchase Order Report (qty ordered/received/remaining, open POs) — reports/queries/open_documents/. See Open-Document Status Reports. |
|
| Cash Disbursements Journal | Cash Disbursements Journal Report (PAYMENTS ledger postings) — reports/queries/journals/journal_report_queries.py. See Journal-Format Reports. |
|
| Cash Requirements | Cash Requirements (open supplier invoices due as-of, ordered by due date + aging) — reports/queries/management_detail/. Discount column deferred. See Management Detail Reports. |
|
| Check Register | Printed/unprinted checks. | |
| Electronic Payment Register | Electronic payments + transmission info. | |
| 1099 Vendor Report | US-only; likely N/A for Panama tenants. | |
| Vendor Management Detail | Vendor Management Detail (open supplier invoices, due date, balance, aging) — reports/queries/management_detail/. See Management Detail Reports. |
|
| Vendor List / Vendor Master File List | Vendor List Report (contact, tax-id, balance) — reports/queries/master_data/. See Master-Data List Reports. |
Payroll¶
| Peachtree report | Status | Our equivalent / notes |
|---|---|---|
| Payroll Journal | Payroll module posts journals; report view not surfaced. See Payroll. | |
| Payroll Register | Payroll Register (per-paycheck hours, gross, deductions, net) — reports/queries/payroll/. See Payroll Reports. |
|
| Current / Quarterly / Yearly Earnings Report | Covered by Payroll Register — any date range (month/quarter/year) — reports/queries/payroll/. See Payroll Reports. |
|
| Employee List | Employee List Report (number, name, national-id, position, salary, status; active-only option) — reports/queries/master_data/. See Master-Data List Reports. |
|
| Employee Compensation Report | Raise dates/amounts/percentages exist in compensation history. | |
| Payroll Check Register | Printed/unprinted payroll checks. | |
| Payroll Tax Report | Payroll Tax Liability (per-concept deductions/employer, gross base) — reports/queries/payroll/. See Payroll Reports. |
|
| Tax Liability Report | Payroll Tax Liability (gross base + withheld/liability per concept) — reports/queries/payroll/. See Payroll Reports. |
|
| Vacation and Sick Time Report | Accrued/taken/balance per period. | |
| Exception Report | Employees with incorrect withholdings. |
General Ledger — Account Information¶
| Peachtree report | Status | Our equivalent / notes |
|---|---|---|
| General Ledger | GENERAL_LEDGER report — transactions per account for a range. |
|
| General Journal | JOURNAL_MOVEMENTS — posted GL transactions in journal format. |
|
| General Ledger Trial Balance | Trial Balance service — reports/services/financial/trial_balance_service.py |
|
| Chart of Accounts | Account listing — see Chart of Accounts. | |
| Transaction Detail Report | Transaction Detail Report (posted lines, optional account/source-type filters) — reports/queries/gl/. See GL Detail Reports. |
|
| Cash Account Register | Cash Account Register (account activity + running balance) — reports/queries/gl/. See GL Detail Reports. |
|
| Working Trial Balance | Trial balance worksheet with adjustment columns. | |
| Account Variance | Account Variance (actual vs budget $/% by account, natural sign) — reports/queries/budget/. See Budget-Comparison Reports. |
|
| Account Variance-Dual Budgets | Single-budget variance shipped; dual-budget layout deferred. See Budget-Comparison Reports. | |
| Budget | Budget Report (amounts per account per period) — reports/queries/budget/. See Budget-Comparison Reports. |
Financial Statements¶
| Peachtree report | Status | Our equivalent / notes |
|---|---|---|
| Balance Sheet | Balance Sheet service — reports/services/financial/balance_sheet_service.py |
|
| Income Statement (Income Stmnt) | Income Statement — reports/queries/financial/financial_report_queries.py |
|
| Cash Flow | Cash Flow Statement service — reports/services/financial/cash_flow_statement_service.py |
|
| Balance Sheet/Budget | Balance sheet exists; budget columns not joined. | |
| Income/Budget, /Budget-Per, /Budget-YTD | Covered by Account Variance with accountTypes: [SALES, OTHER_INCOME, EXPENSES, …] — actual vs budget per income account. See Budget-Comparison Reports. |
|
| Income 2 yrs / Income - 12 Period | Period/YTD comparison exists in dashboards; formal statement layout missing. | |
| Income/Earnings / Retained Earnings | Retained earnings tracked in ledger; statement not surfaced. | |
| GL Account Summary | Beginning balance, activity, ending balance per account. | |
| Income/2 Budget-Per, /2 Budget-YTD | Two-budget comparison. | |
| Statement of Changes (Stmnt Changes) | Statement of changes in financial position. |
Account Reconciliation — Banking Transactions¶
| Peachtree report | Status | Our equivalent / notes |
|---|---|---|
| Account Reconciliation | Bank reconciliation — see Bank Reconciliation. | |
| Account Register | Account transactions with running balance (bank statements). See Bank Statements. | |
| Outstanding Checks | Outstanding Checks (uncleared credits on the account) — reports/queries/bank_rec/. See Bank-Reconciliation Detail Reports. |
|
| Deposits in Transit | Deposits in Transit (uncleared debits) — reports/queries/bank_rec/. See Bank-Reconciliation Detail Reports. |
|
| Bank Deposit Report | Bank Deposit Report (deposit debit lines over a range) — reports/queries/bank_rec/. See Bank-Reconciliation Detail Reports. |
|
| Other Outstanding Items | Deposit/check split covers uncleared items; a distinct "other" classification is deferred. |
Build-out plan¶
Reports cluster into a few reusable shapes. Each phase delivers a shared primitive plus the reports it unlocks, so we don't re-implement layout/rendering per report. Follow methodology.md for each item (plan file → code → tests → mkdocs → changelog).
Phase 1 — Journal-format renderer (highest leverage)¶
Many "Missing"/"Partial" AR/AP/GL reports are the same underlying data we already query, rendered in
debit/credit journal format. Build one JournalReportRenderer (grouped debit/credit columns + running
totals) and wire the existing register queries through it.
- Unlocks: Sales Journal, Cash Receipts Journal, Purchase Journal, Purchase Order Journal, Cash Disbursements Journal, General Journal polish, Payroll Journal.
Phase 2 — Open-document status reports¶
A shared "open document with qty ordered / fulfilled / remaining" view over orders and purchase orders.
- Unlocks: Sales Order Report, Sales Backorder Report, Picklist Report, Purchase Order Report.
Phase 3 — Budget-comparison financial statements¶
Join existing Budgets data (Budgets) into the financial-statement services as actual-vs-budget columns.
- Unlocks: Account Variance (+ Dual Budgets), Balance Sheet/Budget, Income/Budget family, Budget report.
Phase 4 — Payroll reporting suite¶
Surface the payroll run data (Payroll) as period reports.
- Unlocks: Payroll Register, Earnings (Current/Quarterly/Yearly), Payroll Tax, Tax Liability, Payroll Check Register, Vacation/Sick Time, Exception Report.
Phase 5 — Bank reconciliation detail reports¶
Break the reconciliation state (Bank Reconciliation) into the standard uncleared-items reports.
- Unlocks: Outstanding Checks, Deposits in Transit, Bank Deposit Report, Other Outstanding Items.
Phase 6 — Tax & master-data listings¶
- Tax: Taxable/Exempt Sales, Sales Taxes per-agency (extend
ITBMS Liability). - Master-data listings (Customer/Vendor/Employee/Contact lists, Management Detail): thin report wrappers over existing landing-page data.
Custom (Spanish) presets — cross-cutting¶
The client's custom reports (Reporte de Ventas, comision vendedor, Cuentas por pagar_proveedores, etc.)
are saved filter/column presets over the standard reports above. Once the standard report exists, expose it as
a saved Report Config (reports/queries/common/report_config_queries.py) rather than new code.
Explicitly out of scope¶
- 1099 Vendor Report — US tax form, not applicable to Panama tenants (revisit only for US expansion).
How to maintain this page¶
When you ship a report:
- Move its row from
/
to
and fill in the file path.
- Update the Summary counts.
- If it completes a phase, note it in the phase section.