Blog · Board and management reporting · Finance and FP&A teams
A general ledger report shows the journal lines behind account balances. Use an exported ledger to explain movements, check balanced journals and reconcile opening balances to closing balances.
A general ledger report shows the posted transactions behind each account balance. Read it as a roll-forward: opening balance, period debits and credits, then closing balance. Its job is to explain which entries moved the account and to provide references you can follow back to supporting documents.
A trial balance summarizes balances. The ledger report supplies the detail needed when a total changes unexpectedly or a reconciliation fails.
Start with an export containing posting date, journal ID, account, description, debit and credit. Preserve legal entity, currency, document reference and source transaction ID if supplied. Keep separate columns for transaction-currency and reporting-currency amounts; choose one currency basis for each calculation.
The IRS explanation of double-entry bookkeeping describes transactions being entered in journals and posted to ledger accounts. It also states the balancing requirement: total debits equal total credits after posting. That check applies to complete entries, not to an isolated expense or cash account.
Before analysis, remove presentation-only subtotal rows from your working selection. A ledger export may contain transaction lines, account totals and a grand total together. Summing all three counts the same movement repeatedly. Preserve the original file so the selection can be reviewed.
Also establish whether opening balances are separate fields or rows inside the export. They are the starting point for a roll-forward, not additional current-period activity.
The following US company example contains all journal lines for the illustrated September activity, in USD. Put the header in row 1 and the ten transaction rows in rows 2 through 11. Column G, added afterward, will hold net debit movement.
| A: Posting date | B: Journal | C: Account | D: Description | E: Debit (USD) | F: Credit (USD) |
|---|---|---|---|---|---|
| September 1, 2026 | J01 | Accounts receivable | Customer invoice | 15,000 | 0 |
| September 1, 2026 | J01 | Revenue | Customer invoice | 0 | 15,000 |
| September 5, 2026 | J02 | Operating expense | Supplier bill | 6,000 | 0 |
| September 5, 2026 | J02 | Accounts payable | Supplier bill | 0 | 6,000 |
| September 12, 2026 | J03 | Accounts payable | Supplier payment | 4,000 | 0 |
| September 12, 2026 | J03 | Cash | Supplier payment | 0 | 4,000 |
| September 20, 2026 | J04 | Cash | Customer receipt | 12,000 | 0 |
| September 20, 2026 | J04 | Accounts receivable | Customer receipt | 0 | 12,000 |
| September 30, 2026 | J05 | Depreciation expense | Monthly depreciation | 1,000 | 0 |
| September 30, 2026 | J05 | Accumulated depreciation | Monthly depreciation | 0 | 1,000 |
Read J03 across both accounts: AP falls through a debit, while cash falls through a credit. A debit does not universally mean an increase; its effect depends on the account type.
Enter the following in G2 and fill down through G11:
=E2-F2
This uses debit-positive signs consistently. A credit-balance liability will therefore appear as a negative signed balance. Keep that convention visible instead of switching signs silently between accounts.
Total debits and credits separately:
=SUM(E2:E11)
=SUM(F2:F11)
Both totals are $38,000: $15,000 + $6,000 + $4,000 + $12,000 + $1,000. The complete-export check must return zero:
=SUM(E2:E11)-SUM(F2:F11)
Check each journal too. List its journal ID once in J2:J6 and calculate this in K2, filled down:
=SUMIFS($E$2:$E$11,$B$2:$B$11,J2)-SUMIFS($F$2:$F$11,$B$2:$B$11,J2)
Every listed journal returns zero. This catches individual imbalances that could otherwise offset in the overall total. The formula follows Microsoft's SUMIFS syntax, which sums rows meeting specified criteria. Covirage is not affiliated with Microsoft.
Use SUMIFS by account and month when the real export covers multiple periods. Keep all criteria ranges aligned with the amount range; a shifted date range can select the wrong transactions while still returning a plausible result.
Closing signed balance = Opening signed balance + Debits - Credits
The company supplies the opening balances below independently of the transaction table. These are selected accounts, not a complete trial balance. Their movements come directly from the journal rows above.
| Account | Opening signed balance (USD) | Debits (USD) | Credits (USD) | Net movement (USD) | Closing signed balance (USD) |
|---|---|---|---|---|---|
| Cash | 50,000 | 12,000 | 4,000 | 8,000 | 58,000 |
| Accounts receivable | 25,000 | 15,000 | 12,000 | 3,000 | 28,000 |
| Accounts payable | -20,000 | 4,000 | 6,000 | -2,000 | -22,000 |
Cash closes at $50,000 + $12,000 - $4,000 = $58,000. AP closes at -$20,000 + $4,000 - $6,000 = -$22,000, meaning a $22,000 credit balance. The arithmetic uses exact dollars without rounding.
For a summary account name in M2 and its opening signed balance in N2, calculate closing balance with:
=N2+SUMIFS($E$2:$E$11,$C$2:$C$11,M2)-SUMIFS($F$2:$F$11,$C$2:$C$11,M2)
Compare that result with the independently exported closing ledger balance. Subtracting one from the other should return zero. A balanced journal total alone does not prove this roll-forward: the opening balance or reporting period could still be wrong.
The cash increase comes from customer receipts exceeding the supplier payment in these rows. It does not equal profit: the customer invoice, supplier expense and depreciation affect different accounts at different times. The accrual versus cash accounting guide explains that distinction.
For AP, use the closing ledger balance as the control total for the accounts payable aging reconciliation. Keep the transaction-level evidence here and investigate overdue invoice buckets in the aging report rather than trying to infer due dates from posting dates.
Bring journal lines with account names, posting dates, debits and credits, together with the balance figures you want to reconcile. Covirage maps the columns, and its tools compute and check the movements; the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own export.
See Excel analysis with Covirage for the wider file-based workflow.
The general ledger report provides transaction detail within accounts. A trial balance summarizes account balances at a date. Use the trial balance to locate an unexpected balance and the ledger detail to identify the transactions that explain it.
No. An individual account can have a net debit or credit movement. Equal debits and credits are expected across the complete journal, including its other accounts, and across a complete set of posted journal lines.
First check whether the export contains every side of each journal. An account filter, missing page or mixed currency fields can create a false difference. If complete, comparable entries still fail, have accounting investigate the source records.
Use the accounting posting date for the period movement and retain document dates for investigation. Record the extraction time too, because a later backdated posting can change a previous period even when its month-end date stays unchanged.