Accounting data imports: prove the batch is complete before approving it
A finance team imports a file of journals from another system. The accounting software accepts it, and debits equal credits. One complete journal, a 500 debit and its matching 500 credit, never arrived. Because both lines went missing together, the batch still balances. A balanced batch shows only that its debit and credit totals agree. To approve an import, compare the source with what was accepted and what was rejected.

Counts and totals catch the missing journal
This example is hypothetical: one entity, one currency, generic units and two balanced journals, each with one debit line and one credit line. Header and comment rows are not counted as data rows.
Net balance is zero on both sides, so it hides the loss. The journal count, the data row count and the gross debit and credit totals all expose it. FISCAM, the June 2026 audit manual from GAO and CIGIE, illustrates the same idea: compare control totals for the same records before and after processing. FISCAM is federal audit methodology. The checks in this article are our proportionate suggestions for a business, not requirements drawn from it.
| Control | Source file | Accepted in ledger |
|---|---|---|
| Journals | 2 | 1 |
| Data rows | 4 | 2 |
| Total debits | 1,500 | 1,000 |
| Total credits | 1,500 | 1,000 |
| Debits less credits | 0 | 0 |
Sources and context, checked :
What counts and totals miss
Changing the account on one accepted debit leaves every count and total unchanged. Even a batch that matches all these controls can still contain a mapping error. Offsetting errors, swapped accounts and wrong dates pass the same way. Control totals therefore sit beside a review of the mapping for accounts, dimensions, currencies and dates, and a sample of ledger entries traced back to their source documents.
A monetary total is only meaningful on a like-for-like basis. Never add amounts in different currencies and call the result a control total. Compare figures in one currency and on one accounting basis, over a defined date range.
Before the file is loaded
We suggest freezing the source extract so it cannot change during the import, defining the batch scope, and giving the batch an ID and each record a source key. Do not assume that source IDs stay stable across systems or that the software blocks duplicates. Check for duplicate records yourself, and prove how the product behaves if a file is loaded twice.
Product guidance matters here. Sage Intacct's documentation for importing general ledger journals calls for a current, company-specific template, a consistent date format chosen at import, exact record IDs and balanced journals, and recommends testing a small representative set first. That is one product's guidance. Other applications use different fields and can accept part of a batch. FISCAM's input controls cover format and content validation, duplicate inputs, errors and rejected records that remain unresolved.
Sources and context, checked :
Test small, and confirm the way back
Run the representative test in a test environment if the product provides one. If it does not, agree a controlled test using the product's documented process. Before the full run, confirm how a wrong posting would be corrected in that product. Do not assume an undo button, a rollback, a preview or an all-or-nothing import exists until you have checked. An export taken beforehand is evidence of the starting position. It does not make an import reversible. If the test records post to the live ledger, remove them from the full file so they are not imported twice.
After the import
Reconcile source records to accepted plus rejected records, and resolve every reject rather than leaving it in a log. Recompute the control totals on the same basis as the source, trace a sample to documents, and check that no entry falls outside the intended period. FISCAM's interface controls describe the same source-to-target reconciliation. Keep the import log, the control figures, the reviewer's sign-off and a list of any records to be rerun.
Sources and context, checked :
On the next import
Before loading the file, write the source journal count, data row count, gross debits and gross credits on the approval record. After loading, put the accepted and rejected figures beside them. Approve the batch only when every difference has a named record behind it.
