Reports
Solid Accounting ships five core financial reports plus tax reports. Every report reads from the General Ledger and recomputes from source — there's no stale "saved snapshot" risk; if a transaction changes, the next run reflects it.
The five core reports
| Report | What it shows | Reads from |
|---|---|---|
| Income Statement (P&L) | Revenue minus expenses for a period — your net income | All revenue and expense accounts |
| Balance Sheet | What you own, owe, and have left at a point in time | All asset, liability, and equity accounts |
| Cash Flow Statement | Where cash came from and where it went over a period | Cash accounts + reclassified by section |
| Trial Balance | Every account's current balance, debit and credit columns | Every account |
| General Ledger Summary | Activity in each account over a period | Every account, summarized |
Each is its own page in the Reports section of the sidebar. Pick the report, set a period, and run.
Income Statement
The income statement (often called "P&L" — profit and loss) shows revenue and expenses for a period. The structure:
Revenue
Income — service 125,000
Income — product 48,000
--------
Total Revenue 173,000
Cost of Goods Sold
Inventory Purchased 18,400
--------
Total COGS 18,400
Gross Profit 154,600
Expenses
Rent 24,000
Payroll 82,000
Software & Subscriptions 4,200
Office Supplies 950
--------
Total Expenses 111,150
Net Income 43,450
Standard format. Two layout choices that change at run time:
- Cash vs accrual basis — see General Ledger → Cash vs accrual. Same underlying transactions; the difference is which side counts as the recognition event.
- Column layout — Total Only, Monthly, Quarterly, or Year Comparison. The column choice doesn't change the data, just the granularity of how it's grouped horizontally.
Balance Sheet
The balance sheet is a point-in-time snapshot — what the company owns, owes, and has left in equity as of a specific date.
ASSETS
Current Assets
Operating Checking 48,217
Savings 12,500
Accounts Receivable 8,420
--------
Total Current Assets 69,137
Fixed Assets
Office Equipment 12,000
less Accumulated Depreciation (3,200)
--------
Total Fixed Assets 8,800
Total Assets 77,937
LIABILITIES
Current Liabilities
Accounts Payable 3,840
Credit Card 1,212
--------
Total Current Liabilities 5,052
Long-Term Liabilities
Equipment Loan 6,500
--------
Total Liabilities 11,552
EQUITY
Owner's Equity 42,000
Retained Earnings 8,335
Net Income (current period) 16,050
--------
Total Equity 66,385
Total Liabilities + Equity 77,937
The fundamental check: Total Assets = Total Liabilities + Equity. That equality is enforced by every transaction in the system; if it ever fails, something's broken at a level below normal use (the trial balance check would have caught it earlier).
The balance sheet's date can be any date in your file's history — Solid recomputes from the GL each time. There's no "lock the books to view a historical balance sheet" requirement; historical reports just work.
Cash Flow Statement
Where the cash actually went, organized by activity type:
| Section | What it captures |
|---|---|
| Operating | Day-to-day business — money in from customers, money out to vendors, payroll, etc. |
| Investing | Buying or selling fixed assets, investments, etc. |
| Financing | Loans taken or paid down, owner contributions or distributions, dividends |
The breakdown is mechanical — each cash transaction is classified by the type of the offsetting account (revenue/expense → operating, fixed-asset/investment accounts → investing, equity/long-term-liability → financing). You can review and reclassify at run time if the auto-classification doesn't match your reading.
The cash flow statement is the report that answers "we made $43K in net income but I only see $12K more in the bank — where did it go?" — almost always the answer is some combination of AR growth (revenue earned but not collected), inventory growth (cash spent on stock not yet sold), or fixed-asset purchases (cash out, depreciated over time, doesn't hit the income statement).
Trial Balance
The trial balance is the simplest report and the one that proves the books are intact. Every account in your chart, in two columns: debit balance and credit balance.
| Account | Debit | Credit |
|---|---|---|
| 1010 Operating Checking | 48,217.42 | — |
| 1020 Savings | 12,500.00 | — |
| 1300 Accounts Receivable | 8,420.00 | — |
| 2010 Accounts Payable | — | 3,840.20 |
| 3000 Owner's Equity | — | 42,000.00 |
| 4000 Service Revenue | — | 31,200.00 |
| 5000 Operating Expenses | 7,902.78 | — |
| Totals | 77,040.20 | 77,040.20 |
The two totals must match. Solid runs this check automatically after every batch import; if a batch would unbalance the GL, the entire batch rolls back. In day-to-day use you should never see an imbalanced trial balance — if you do, stop and investigate.
The trial balance is also the report your accountant asks for first. It's the cleanest one-page summary of where the books stand.
General Ledger Summary
The GL Summary is one row per account showing activity over the period: opening balance, total debits, total credits, ending balance. It's the bridge between the trial balance (point-in-time) and the underlying journal entries (every transaction).
1010 Operating Checking
Opening balance: 45,103.42
Total debits: 18,200.00
Total credits: 15,086.00
Closing balance: 48,217.42
Every line is clickable — drilling into an account opens the GL detail for that account in the period: every journal entry line that touched it, with date, description, source document, and running balance. Drilling into a journal-entry line opens the source transaction (the invoice, bill, deposit, etc.).
Column layouts
Four layouts available on the Income Statement and (where it makes sense) the Balance Sheet and GL Summary:
| Layout | Use case |
|---|---|
| Total Only | One column for the whole period. Default. |
| Monthly | One column per month — see seasonality, trends, monthly run-rate. |
| Quarterly | One column per quarter — board-deck format. |
| Year Comparison | Last year vs this year side by side. |
The Trial Balance is point-in-time and only has the one layout. Cash Flow shows the period total by section; multi-period cash flow is on the roadmap.
Tax reports
Solid generates the data behind tax-time reports without trying to replace your tax preparation software. The intent: clean data out, into whatever your accountant (or you) uses for filing.
- 1099 report — every contractor flagged for 1099 with their year-to-date payments by box. Excludes payments by credit card (which the card processor reports separately on Form 1099-K).
- TXF export — tax-line-mapped data exportable to ProSeries, Drake, TurboTax, and most tax-prep software. The TXF file is a plain-text format every major tax product reads.
If you're filing 1099s yourself, the 1099 report has the numbers; you produce the actual filings through the IRS FIRE/IRIS system or a 1099 service.
Export formats
| Format | Available on |
|---|---|
| Every report. Professional formatting, ready for clients, lenders, the bank. | |
| CSV | Every report. The numbers in a spreadsheet, no formatting. |
| TXF | Tax reports. Maps tax-lines to your accounts. |
| IIF | Some reports — primarily for a one-off export to an accountant who works in QuickBooks. |
PDF and CSV are the everyday workhorses. TXF and IIF are export-only paths intended for handoff to other software.
Drilldown — the model
Every number in every report in Solid Accounting is clickable. The chain is consistent:
Report number → GL Summary line for the account
GL Summary → Journal-entry lines that posted to the account
Journal entry → Source transaction (invoice, bill, deposit, etc.)
Source → The full document with line items
You can stop at any layer. The point is that every report number is provable — you can always answer the question "why is this number what it is?" with two or three clicks, which is what a CPA or auditor needs.
What about a custom-report builder?
Not yet. The five core reports plus tax reports cover most of what a small business needs; a general-purpose report builder is on the roadmap but not in the current release. In the meantime: every report exports to CSV, and most one-off custom views are easier to build in a spreadsheet from a CSV than to learn a new builder UI.
For the cases where a CSV export isn't enough, the embedded REST API (Professional and Accountant tiers) gives programmatic access to the same data the reports read — drop-in for a Power BI or Looker pipeline if your reporting needs really do warrant it.
Period selection
All reports use the same period picker:
| Selection | What it picks |
|---|---|
| Today / This Week / This Month / This Quarter / This Year | Common rolling-current options |
| Last Month / Last Quarter / Last Year | Most recent closed period |
| Year-to-Date | Current year start through today |
| Custom range | Any start and end date |
The picker remembers your last choice per report, so flipping between Income Statement and Balance Sheet doesn't reset the period.
Performance characteristics
Reports are computed at run time from the GL — there's no "saved" or "cached" version that could go stale. On commodity hardware:
- Trial Balance, Income Statement, Balance Sheet — sub-second on files under ~100K entries
- GL Summary across the whole file — typically a second or two; longer for multi-million-entry files
- Multi-period (monthly columns over a year) — adds proportionally; the work scales linearly with column count
When a report does feel slow, the usual fix is narrowing the period (a single month is much cheaper than a full year) or filtering to a specific account.