The Reports module provides pre-built and filterable reports drawing live data from Finance, HR, Inventory, and Projects — giving you a single place to analyse business performance without exporting to spreadsheets.
All financial reports require your fiscal year to be configured in Settings → Company Profile. Without it, reports cannot calculate period-based comparisons or year-to-date figures.
The balance sheet shows your financial position at a single point in time. Choose the date — typically the last day of a financial period.
3
Review assets, liabilities, and equity
The report is structured in standard accounting format: Current Assets, Non-current Assets, Current Liabilities, Non-current Liabilities, and Equity.
4
Verify the balance
Total Assets must equal Total Liabilities plus Equity. If the sheet is out of balance, there is an unreconciled journal entry — contact your accountant.
Set the date range and select team members (optional)
3
Review
See total hours logged per person, broken down into billable and non-billable. The utilisation percentage shows what proportion of available hours were billable.
4
Identify over- and under-utilised staff
Consistently high utilisation may indicate burnout risk or need for additional headcount. Low utilisation may indicate capacity for more work.
The Profitability report calculates per-order gross margin from your sales orders and the cost of goods sold (COGS) captured automatically at the time of the sale. Both Shopify and WooCommerce orders include shipping cost, so margins are accurate end-to-end.
1
Open Reports → Profitability
2
Set the date range and channel filter (optional)
Filter by sales channel (Shopify, WooCommerce, In-store, B2B) to see margin per channel, or leave unfiltered for the full picture.
3
Review the six KPI tiles
Total revenue, total COGS, gross margin %, total shipping cost, average order value, and number of orders.
4
Drill into the per-order table
The table shows every order with its margin %. Sort by margin to find loss-making orders. The table is virtualised, so 100,000 rows render without lag.
5
Export
Download as CSV for further analysis.
COGS is captured automatically by a database trigger when a sales order is confirmed. Items priced using FIFO or weighted-average pull the relevant cost; manually-priced items use the cost field on the item record. If a margin looks wrong, check the item’s cost in Inventory.
The Channel Performance report compares revenue, orders, and AOV across all your active sales channels in a single view.
1
Open Reports → Channel Performance
2
Set the date range
3
Review by channel
Each channel (Shopify, WooCommerce, In-store, B2B, etc.) gets a row showing revenue, order count, AOV, refunds, and net revenue. Variance vs the previous period is shown alongside.
4
Drill into a channel
Click any channel to see its top products, top customers, and per-order list filtered to that channel.
To add or rename channels, see Sales Channels in Settings.
The Reconciliation Workbench is where you match bank transactions to invoices, vendor bills, expense claims, and payment runs. The Auto-Reconciliation Engine pre-classifies every transaction:
HIGH — auto-applied. No action needed; this section just shows you what was matched.
MEDIUM — confirm with one click, or reject.
LOW — review and confirm or reassign.
Unmatched — assign manually to an existing record, or create a new entry.
1
Open Reports → Reconciliation Workbench
2
Pick the bank account
Each connected bank account has its own reconciliation queue.
3
Work through MEDIUM and LOW matches first
Click Confirm for ones the engine got right; Reject for ones it did not. The engine learns from your confirmations and improves matching over time.
4
Handle unmatched transactions
Tag with a category, link to a record, or write off. Unmatched transactions stay queued indefinitely until you act on them.
5
Periodic close
At month-end, run the Reconciliation Status report to confirm 100% of bank activity is reconciled before closing the period in Finance.
The 3-pass matching engine runs nightly and on every new bank transaction. For details on confidence levels and the matching logic, see the Bank Feeds integration page.
Finance aggregates data from all modules automatically. Unexpected figures are usually caused by payroll postings from HR, depreciation entries from Assets, or expense reimbursements from Travel & Expense. Open Finance → Journal Entries, filter by the date range, and sort by source to identify the origin of any unusual entries.
The Balance Sheet is not balancing
An imbalanced balance sheet means there is at least one journal entry where debits and credits are not equal — this should not be possible if entries were created through the normal workflow. If you entered manual journal entries, review them in Finance → Journal Entries. Contact your accountant if you cannot identify the cause.
The aged receivables report shows invoices that have been paid
The report uses the as-at date to determine outstanding balances. If the payment was recorded after the as-at date you selected, the invoice will appear as outstanding as of that date — which is correct. Change the as-at date to today to see current outstanding balances only.
A scheduled custom report is not arriving by email
Check that the recipients’ email addresses are entered correctly on the report schedule. Also confirm that your email provider is connected and working under Settings → Email. Send a test email to verify the connection.
The stock valuation does not match my accounting records
Discrepancies are typically caused by the costing method (FIFO vs average cost) or by stock adjustments that were posted without a corresponding Finance journal entry. Go to Inventory → Adjustments and check for any adjustments without a linked Finance entry. Ensure your Settings → Inventory costing method matches what your accountant expects.
Can I schedule reports to be emailed automatically?
Yes. When saving any report, toggle Schedule and set the frequency (daily, weekly, monthly) and the recipients. The report runs at the scheduled time and is emailed as a PDF or CSV attachment.
Can I export reports to Excel?
Every report exports to CSV, which opens directly in Excel. For formatted reports with charts and layout, use the PDF export. CSV is better for further data manipulation; PDF is better for sharing with stakeholders.
Can I see a consolidated report across multiple departments?
Yes. All financial reports support a consolidated view by default. Use the department filter to drill down to a specific department, or leave it unfiltered for the full company view.
How current is the data in reports?
All reports pull live data at the time you run them. There is no data warehouse or overnight refresh delay — if a payment was recorded 30 seconds ago, it is in the report now. The only exception is HR leave balances, which update every 15 minutes.
Can I create reports that combine data from multiple modules?
Yes, using Custom Reports. Select a primary data source and add related fields from other modules. For example, a Project Profitability report might combine billable hours from Projects with invoice amounts from Finance and payroll costs from HR.