Every report FinShare delivers has passed an automatic tie-out. If any check fails, the report is marked Didn't tie out; not delivered and you can't download it in any format. A file that doesn't match QuickBooks is never handed over quietly.
Interactive · Illustrative figures
What FinShare checks before a balance sheet is delivered
Three of the checks, run on a short balance sheet. Edit a cell to see one fail.
- Current asset lines add up to the subtotal QuickBooks reported…
412,880.14 = 412,880.14
- Total assets = current assets + fixed assets…
651,295.14 = 651,295.14
- Total assets = liabilities + equity…
651,295.14 = 651,295.14
Show the numbers
| Check | Computed | Reported | Result |
|---|---|---|---|
| Current asset lines add up to the subtotal QuickBooks reported | 412,880.14 | 412,880.14 | Pass |
| Total assets = current assets + fixed assets | 651,295.14 | 651,295.14 | Pass |
| Total assets = liabilities + equity | 651,295.14 | 651,295.14 | Pass |
What tie-out checks
QuickBooks returns each report as structured data, with its own subtotals and totals. FinShare runs these checks on every report, using exact decimal arithmetic (no floating-point rounding).
1. Nothing was cut off
QuickBooks caps a single response at 400,000 cells. Over the cap, it can return a partial report with the note "Unable to display more data. Please reduce the date range." FinShare checks every response for that marker. A truncated response is never used.
2. QuickBooks' own arithmetic
In every section of the raw report, the lines are added up and compared with the section's total, column by column. Parent accounts include their own postings. This catches a malformed or incomplete response before anything is built from it.
3. Accounting identities
| Report | Check |
|---|---|
| Profit and Loss | Gross profit = income − cost of goods sold. Net operating income = gross profit − expenses. Net other income = other income − other expenses. Net income = net operating income + net other income. |
| Balance Sheet | Total assets = total liabilities and equity, in every column. |
| Trial Balance | Total debits = total credits. |
| Statement of Cash Flows | Operating + investing + financing = net cash increase. Ending cash = beginning cash + net cash increase. |
| A/R and A/P Aging Summary | On every row, the aging buckets add up to the row total. The customer or vendor rows add up to the grand total. |
4. Long general ledgers join cleanly
A general ledger for a long period is pulled in monthly pieces, and any piece QuickBooks truncates is split in half until it fits. The pieces are joined into one file. Then FinShare checks that:
- every transaction from the pieces appears in the joined file exactly once, with nothing added;
- the joined file's totals equal the sum of the pieces' totals, column by column;
- the joined file's own sections still add up.
5. The file matches the data
FinShare reads the finished file back (the actual Excel bytes, not an in-memory copy) and compares it with a separate walk of the raw QuickBooks response. Every row label must match, in order, and every amount must be identical. The same check runs on CSV and JSON when you download them.
Where to see the result
On the request page, a delivered report shows Ties out. Hover over it to see how many checks passed. Over the API, GET /v1/reports/:id returns every check with its name, whether it passed and a detail line, for example "42 sections sum to their totals".
When a report doesn't tie out
The usual cause is size: a non-GL report so large that QuickBooks returned only part of it. What to try:
- a shorter period;
- quarterly or yearly columns instead of monthly;
- refreshing later, if QuickBooks had a temporary problem.
Other reports in the same round are unaffected. The round shows Partly delivered.
What tie-out does not mean
Tie-out tells you the file is a faithful copy of what QuickBooks reports, and that QuickBooks' own numbers add up. It does not tell you the books are right. Miscoded expenses, missing accruals or revenue booked in the wrong month will tie out perfectly. That's still your diligence.
FinShare also doesn't compare one report with another. Tying the balance sheet's retained earnings to the P&L, or the A/R aging total to accounts receivable on the balance sheet, is a check you still run yourself.