Blog · Data quality and reconciliation · Finance and FP&A teams
Check finance workbooks for missing periods, duplicate journal lines, incomplete mappings and totals that fail to reconcile. This walkthrough gives exact spreadsheet formulas, a small ledger example and a clear release checklist.
Financial data integrity checks test whether your reporting workbook includes the right periods and records, uses valid classifications and reconciles to the finance sources. Run them before calculating performance measures. An internally balanced file can still omit a whole month or put an expense in the wrong place.
Write down the entities, reporting periods, currency and ledger status expected in the report. Preserve the original export and perform checks on a working copy. Keep an exception register with the failed check, source row, amount, responsible owner and resolution evidence.
For this example, US01's workbook should cover July through September 2026 in USD. It contains journal-line detail, not complete financial statements. That distinction determines which tests can run immediately and which need additional reports.
Place these columns in A:H on a sheet named Ledger. Period cells are actual spreadsheet dates representing the first day of the month, displayed below in US date format. Row numbers are spreadsheet row references, outside the A:H data.
| Row | A: Entity | B: Period | C: Journal | D: Line | E: Account | F: Currency | G: Debit (USD) | H: Credit (USD) |
|---|---|---|---|---|---|---|---|---|
| 2 | US01 | 07/01/2026 | J100 | 1 | 1100 | USD | 10,000 | 0 |
| 3 | US01 | 07/01/2026 | J100 | 2 | 4000 | USD | 0 | 10,000 |
| 4 | US01 | 09/01/2026 | J200 | 1 | 1100 | USD | 12,000 | 0 |
| 5 | US01 | 09/01/2026 | J200 | 2 | 4000 | USD | 0 | 12,000 |
| 6 | US01 | 09/01/2026 | J200 | 1 | 1100 | USD | 12,000 | 0 |
| 7 | US01 | 09/01/2026 | J300 | 1 | 5999 | USD | 3,000 | 0 |
| 8 | US01 | 09/01/2026 | J300 | 2 | 2000 | USD | 0 | 3,000 |
These illustrative rows contain separate completeness, duplication and mapping problems. Fixing one does not close the others.
In I2, test identifiers, date type and numeric debit-credit values, then fill down:
=IF(OR(A2="",NOT(ISNUMBER(B2)),C2="",D2="",E2="",F2="",NOT(ISNUMBER(G2)),NOT(ISNUMBER(H2))),"REVIEW","OK")
This avoids treating text amounts as usable numbers. Also inspect whether the dates belong to approved fiscal periods and whether the entity and currency match the scope. A populated value is not necessarily a valid value.
On a separate Coverage sheet, enter July 1, August 1 and September 1, 2026 in A2:A4 as dates. In B2, fill down:
=COUNTIFS(Ledger!$A$2:$A$8,"US01",Ledger!$B$2:$B$8,A2)
The raw row counts are July 2, August 0 and September 5. August needs investigation: zero records means no evidence of coverage, not proof of no activity. Build the expected list from the reporting calendar rather than from the export; otherwise an absent month never appears in the test.
The source owner confirms that entity, period, journal and line form the unique key. In J2, fill down:
=COUNTIFS($A$2:$A$8,A2,$B$2:$B$8,B2,$C$2:$C$8,C2,$D$2:$D$8,D2)
Rows 4 and 6 both return 2. That flags a repeated key; it does not authorize deletion. Compare the source export, confirm whether the line was copied twice, and preserve the explanation for any exclusion.
Microsoft documents COUNTIFS as counting rows where all supplied criteria match. The ranges must have the same dimensions. Avoid using amount alone as a duplicate test: equal amounts occur in legitimate transactions.
Put the approved account map in Map!A2:B4: 1100 is trade receivables, 2000 is trade payables and 4000 is revenue. Keep account identifiers consistently formatted in both sheets. In K2, fill down:
=IF(COUNTIF(Map!$A$2:$A$4,E2)=1,"OK","REVIEW")
Account 5999 fails because it is absent. A count above 1 would also fail because the map gives the same account multiple destinations. The controller must approve its classification; matching totals will not reveal an expense assigned to revenue.
For journal balance in L2, fill down:
=ROUND(SUMIFS($G$2:$G$8,$A$2:$A$8,A2,$B$2:$B$8,B2,$C$2:$C$8,C2,$F$2:$F$8,F2)-SUMIFS($H$2:$H$8,$A$2:$A$8,A2,$B$2:$B$8,B2,$C$2:$C$8,C2,$F$2:$F$8,F2),2)
This tests each entity-period-journal-currency group, rounded to cents. Microsoft's SUMIFS documentation explains summing only values that meet all conditions. Here J200 is out by $12,000; J100 and J300 balance.
Suppose the source owner confirms row 6 is an extra copy. Excluding only that confirmed duplicate produces:
| Check | Raw workbook (USD where monetary) | After confirmed exclusion (USD where monetary) |
|---|---|---|
| Journal lines | 7 | 6 |
| Debit total (USD) | 37,000 | 25,000 |
| Credit total (USD) | 25,000 | 25,000 |
| Debit minus credit (USD) | 12,000 | 0 |
| August lines | 0 | 0 |
The corrected debit total is $10,000 + $12,000 + $3,000 = $25,000; credits are the same three amounts. The arithmetic now balances, but August and account 5999 remain unresolved. The workbook is not ready for a complete quarterly report.
For prepared statements, also tie closing cash to the reconciled cash report, receivables to the aging, and retained earnings to opening balance plus earnings and approved equity movements. The distinction between an independent source tie and an internal equation is covered in control total and identity. Use financial data reconciliation for investigating the differences, rather than plugging them into a balancing line.
These formulas use Excel. Covirage is not affiliated with Microsoft. For the broader review of explanations and evidence, see AI for financial analysis.
Bring your ledger export, approved account map and matching statement totals: Covirage maps the columns, its tools compute and check the figures, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring a sample of your own data.
See the approach to metrics governance.
No. A missing balanced journal, an omitted month or an expense mapped to the wrong line can leave debits equal to credits. Check scope, transaction identity and classifications as well as balance, then reconcile the prepared statement to an independently obtained source.
Use the combination that the source system defines as unique, often entity, fiscal period, journal number and line number. An amount or invoice number alone may repeat legitimately. Investigate repeated complete keys against the original export before deleting or excluding any row.
Keep it as an open coverage exception and ask the source owner to confirm whether activity existed. Obtain the missing export or documented confirmation of a valid no-activity period. Do not fill missing finance rows with zeros merely to make a quarterly table look complete.