Function 11 ยท controls and data

Can every other number here be trusted?

The general ledger rebuilt from its postings ties to the reported balances in 786 of 792 account months, to the cent. The rest are one break, planted to prove the control works: account 2010, $4,217.36, first in 2026-03 and carried into 6 month ends because nothing later corrects it. Every sub ledger check ties (216 of 216), every data quality defect that was injected was caught at its injected count, and the warehouse passes 210 of 210 tests.

Account months tied to the cent
786 of 792
Postings with no source transaction
0
Injected defects caught
3 of 3
16 rules run
Planted identifiers found in staged data
0
30 tables scanned

Reported balance against the sum of postings, by account and month

10001100120012101220129020002010202021003000400040104100420050005010510052005210522053001000 2023-09: tied1000 2023-10: tied1000 2023-11: tied1000 2023-12: tied1000 2024-01: tied1000 2024-02: tied1000 2024-03: tied1000 2024-04: tied1000 2024-05: tied1000 2024-06: tied1000 2024-07: tied1000 2024-08: tied1000 2024-09: tied1000 2024-10: tied1000 2024-11: tied1000 2024-12: tied1000 2025-01: tied1000 2025-02: tied1000 2025-03: tied1000 2025-04: tied1000 2025-05: tied1000 2025-06: tied1000 2025-07: tied1000 2025-08: tied1000 2025-09: tied1000 2025-10: tied1000 2025-11: tied1000 2025-12: tied1000 2026-01: tied1000 2026-02: tied1000 2026-03: tied1000 2026-04: tied1000 2026-05: tied1000 2026-06: tied1000 2026-07: tied1000 2026-08: tied1100 2023-09: tied1100 2023-10: tied1100 2023-11: tied1100 2023-12: tied1100 2024-01: tied1100 2024-02: tied1100 2024-03: tied1100 2024-04: tied1100 2024-05: tied1100 2024-06: tied1100 2024-07: tied1100 2024-08: tied1100 2024-09: tied1100 2024-10: tied1100 2024-11: tied1100 2024-12: tied1100 2025-01: tied1100 2025-02: tied1100 2025-03: tied1100 2025-04: tied1100 2025-05: tied1100 2025-06: tied1100 2025-07: tied1100 2025-08: tied1100 2025-09: tied1100 2025-10: tied1100 2025-11: tied1100 2025-12: tied1100 2026-01: tied1100 2026-02: tied1100 2026-03: tied1100 2026-04: tied1100 2026-05: tied1100 2026-06: tied1100 2026-07: tied1100 2026-08: tied1200 2023-09: tied1200 2023-10: tied1200 2023-11: tied1200 2023-12: tied1200 2024-01: tied1200 2024-02: tied1200 2024-03: tied1200 2024-04: tied1200 2024-05: tied1200 2024-06: tied1200 2024-07: tied1200 2024-08: tied1200 2024-09: tied1200 2024-10: tied1200 2024-11: tied1200 2024-12: tied1200 2025-01: tied1200 2025-02: tied1200 2025-03: tied1200 2025-04: tied1200 2025-05: tied1200 2025-06: tied1200 2025-07: tied1200 2025-08: tied1200 2025-09: tied1200 2025-10: tied1200 2025-11: tied1200 2025-12: tied1200 2026-01: tied1200 2026-02: tied1200 2026-03: tied1200 2026-04: tied1200 2026-05: tied1200 2026-06: tied1200 2026-07: tied1200 2026-08: tied1210 2023-09: tied1210 2023-10: tied1210 2023-11: tied1210 2023-12: tied1210 2024-01: tied1210 2024-02: tied1210 2024-03: tied1210 2024-04: tied1210 2024-05: tied1210 2024-06: tied1210 2024-07: tied1210 2024-08: tied1210 2024-09: tied1210 2024-10: tied1210 2024-11: tied1210 2024-12: tied1210 2025-01: tied1210 2025-02: tied1210 2025-03: tied1210 2025-04: tied1210 2025-05: tied1210 2025-06: tied1210 2025-07: tied1210 2025-08: tied1210 2025-09: tied1210 2025-10: tied1210 2025-11: tied1210 2025-12: tied1210 2026-01: tied1210 2026-02: tied1210 2026-03: tied1210 2026-04: tied1210 2026-05: tied1210 2026-06: tied1210 2026-07: tied1210 2026-08: tied1220 2023-09: tied1220 2023-10: tied1220 2023-11: tied1220 2023-12: tied1220 2024-01: tied1220 2024-02: tied1220 2024-03: tied1220 2024-04: tied1220 2024-05: tied1220 2024-06: tied1220 2024-07: tied1220 2024-08: tied1220 2024-09: tied1220 2024-10: tied1220 2024-11: tied1220 2024-12: tied1220 2025-01: tied1220 2025-02: tied1220 2025-03: tied1220 2025-04: tied1220 2025-05: tied1220 2025-06: tied1220 2025-07: tied1220 2025-08: tied1220 2025-09: tied1220 2025-10: tied1220 2025-11: tied1220 2025-12: tied1220 2026-01: tied1220 2026-02: tied1220 2026-03: tied1220 2026-04: tied1220 2026-05: tied1220 2026-06: tied1220 2026-07: tied1220 2026-08: tied1290 2023-09: tied1290 2023-10: tied1290 2023-11: tied1290 2023-12: tied1290 2024-01: tied1290 2024-02: tied1290 2024-03: tied1290 2024-04: tied1290 2024-05: tied1290 2024-06: tied1290 2024-07: tied1290 2024-08: tied1290 2024-09: tied1290 2024-10: tied1290 2024-11: tied1290 2024-12: tied1290 2025-01: tied1290 2025-02: tied1290 2025-03: tied1290 2025-04: tied1290 2025-05: tied1290 2025-06: tied1290 2025-07: tied1290 2025-08: tied1290 2025-09: tied1290 2025-10: tied1290 2025-11: tied1290 2025-12: tied1290 2026-01: tied1290 2026-02: tied1290 2026-03: tied1290 2026-04: tied1290 2026-05: tied1290 2026-06: tied1290 2026-07: tied1290 2026-08: tied2000 2023-09: tied2000 2023-10: tied2000 2023-11: tied2000 2023-12: tied2000 2024-01: tied2000 2024-02: tied2000 2024-03: tied2000 2024-04: tied2000 2024-05: tied2000 2024-06: tied2000 2024-07: tied2000 2024-08: tied2000 2024-09: tied2000 2024-10: tied2000 2024-11: tied2000 2024-12: tied2000 2025-01: tied2000 2025-02: tied2000 2025-03: tied2000 2025-04: tied2000 2025-05: tied2000 2025-06: tied2000 2025-07: tied2000 2025-08: tied2000 2025-09: tied2000 2025-10: tied2000 2025-11: tied2000 2025-12: tied2000 2026-01: tied2000 2026-02: tied2000 2026-03: tied2000 2026-04: tied2000 2026-05: tied2000 2026-06: tied2000 2026-07: tied2000 2026-08: tied2010 2023-09: tied2010 2023-10: tied2010 2023-11: tied2010 2023-12: tied2010 2024-01: tied2010 2024-02: tied2010 2024-03: tied2010 2024-04: tied2010 2024-05: tied2010 2024-06: tied2010 2024-07: tied2010 2024-08: tied2010 2024-09: tied2010 2024-10: tied2010 2024-11: tied2010 2024-12: tied2010 2025-01: tied2010 2025-02: tied2010 2025-03: tied2010 2025-04: tied2010 2025-05: tied2010 2025-06: tied2010 2025-07: tied2010 2025-08: tied2010 2025-09: tied2010 2025-10: tied2010 2025-11: tied2010 2025-12: tied2010 2026-01: tied2010 2026-02: tied2010 2026-03: off by -$4,217.362010 2026-04: off by -$4,217.362010 2026-05: off by -$4,217.362010 2026-06: off by -$4,217.362010 2026-07: off by -$4,217.362010 2026-08: off by -$4,217.362020 2023-09: tied2020 2023-10: tied2020 2023-11: tied2020 2023-12: tied2020 2024-01: tied2020 2024-02: tied2020 2024-03: tied2020 2024-04: tied2020 2024-05: tied2020 2024-06: tied2020 2024-07: tied2020 2024-08: tied2020 2024-09: tied2020 2024-10: tied2020 2024-11: tied2020 2024-12: tied2020 2025-01: tied2020 2025-02: tied2020 2025-03: tied2020 2025-04: tied2020 2025-05: tied2020 2025-06: tied2020 2025-07: tied2020 2025-08: tied2020 2025-09: tied2020 2025-10: tied2020 2025-11: tied2020 2025-12: tied2020 2026-01: tied2020 2026-02: tied2020 2026-03: tied2020 2026-04: tied2020 2026-05: tied2020 2026-06: tied2020 2026-07: tied2020 2026-08: tied2100 2023-09: tied2100 2023-10: tied2100 2023-11: tied2100 2023-12: tied2100 2024-01: tied2100 2024-02: tied2100 2024-03: tied2100 2024-04: tied2100 2024-05: tied2100 2024-06: tied2100 2024-07: tied2100 2024-08: tied2100 2024-09: tied2100 2024-10: tied2100 2024-11: tied2100 2024-12: tied2100 2025-01: tied2100 2025-02: tied2100 2025-03: tied2100 2025-04: tied2100 2025-05: tied2100 2025-06: tied2100 2025-07: tied2100 2025-08: tied2100 2025-09: tied2100 2025-10: tied2100 2025-11: tied2100 2025-12: tied2100 2026-01: tied2100 2026-02: tied2100 2026-03: tied2100 2026-04: tied2100 2026-05: tied2100 2026-06: tied2100 2026-07: tied2100 2026-08: tied3000 2023-09: tied3000 2023-10: tied3000 2023-11: tied3000 2023-12: tied3000 2024-01: tied3000 2024-02: tied3000 2024-03: tied3000 2024-04: tied3000 2024-05: tied3000 2024-06: tied3000 2024-07: tied3000 2024-08: tied3000 2024-09: tied3000 2024-10: tied3000 2024-11: tied3000 2024-12: tied3000 2025-01: tied3000 2025-02: tied3000 2025-03: tied3000 2025-04: tied3000 2025-05: tied3000 2025-06: tied3000 2025-07: tied3000 2025-08: tied3000 2025-09: tied3000 2025-10: tied3000 2025-11: tied3000 2025-12: tied3000 2026-01: tied3000 2026-02: tied3000 2026-03: tied3000 2026-04: tied3000 2026-05: tied3000 2026-06: tied3000 2026-07: tied3000 2026-08: tied4000 2023-09: tied4000 2023-10: tied4000 2023-11: tied4000 2023-12: tied4000 2024-01: tied4000 2024-02: tied4000 2024-03: tied4000 2024-04: tied4000 2024-05: tied4000 2024-06: tied4000 2024-07: tied4000 2024-08: tied4000 2024-09: tied4000 2024-10: tied4000 2024-11: tied4000 2024-12: tied4000 2025-01: tied4000 2025-02: tied4000 2025-03: tied4000 2025-04: tied4000 2025-05: tied4000 2025-06: tied4000 2025-07: tied4000 2025-08: tied4000 2025-09: tied4000 2025-10: tied4000 2025-11: tied4000 2025-12: tied4000 2026-01: tied4000 2026-02: tied4000 2026-03: tied4000 2026-04: tied4000 2026-05: tied4000 2026-06: tied4000 2026-07: tied4000 2026-08: tied4010 2023-09: tied4010 2023-10: tied4010 2023-11: tied4010 2023-12: tied4010 2024-01: tied4010 2024-02: tied4010 2024-03: tied4010 2024-04: tied4010 2024-05: tied4010 2024-06: tied4010 2024-07: tied4010 2024-08: tied4010 2024-09: tied4010 2024-10: tied4010 2024-11: tied4010 2024-12: tied4010 2025-01: tied4010 2025-02: tied4010 2025-03: tied4010 2025-04: tied4010 2025-05: tied4010 2025-06: tied4010 2025-07: tied4010 2025-08: tied4010 2025-09: tied4010 2025-10: tied4010 2025-11: tied4010 2025-12: tied4010 2026-01: tied4010 2026-02: tied4010 2026-03: tied4010 2026-04: tied4010 2026-05: tied4010 2026-06: tied4010 2026-07: tied4010 2026-08: tied4100 2023-09: tied4100 2023-10: tied4100 2023-11: tied4100 2023-12: tied4100 2024-01: tied4100 2024-02: tied4100 2024-03: tied4100 2024-04: tied4100 2024-05: tied4100 2024-06: tied4100 2024-07: tied4100 2024-08: tied4100 2024-09: tied4100 2024-10: tied4100 2024-11: tied4100 2024-12: tied4100 2025-01: tied4100 2025-02: tied4100 2025-03: tied4100 2025-04: tied4100 2025-05: tied4100 2025-06: tied4100 2025-07: tied4100 2025-08: tied4100 2025-09: tied4100 2025-10: tied4100 2025-11: tied4100 2025-12: tied4100 2026-01: tied4100 2026-02: tied4100 2026-03: tied4100 2026-04: tied4100 2026-05: tied4100 2026-06: tied4100 2026-07: tied4100 2026-08: tied4200 2023-09: tied4200 2023-10: tied4200 2023-11: tied4200 2023-12: tied4200 2024-01: tied4200 2024-02: tied4200 2024-03: tied4200 2024-04: tied4200 2024-05: tied4200 2024-06: tied4200 2024-07: tied4200 2024-08: tied4200 2024-09: tied4200 2024-10: tied4200 2024-11: tied4200 2024-12: tied4200 2025-01: tied4200 2025-02: tied4200 2025-03: tied4200 2025-04: tied4200 2025-05: tied4200 2025-06: tied4200 2025-07: tied4200 2025-08: tied4200 2025-09: tied4200 2025-10: tied4200 2025-11: tied4200 2025-12: tied4200 2026-01: tied4200 2026-02: tied4200 2026-03: tied4200 2026-04: tied4200 2026-05: tied4200 2026-06: tied4200 2026-07: tied4200 2026-08: tied5000 2023-09: tied5000 2023-10: tied5000 2023-11: tied5000 2023-12: tied5000 2024-01: tied5000 2024-02: tied5000 2024-03: tied5000 2024-04: tied5000 2024-05: tied5000 2024-06: tied5000 2024-07: tied5000 2024-08: tied5000 2024-09: tied5000 2024-10: tied5000 2024-11: tied5000 2024-12: tied5000 2025-01: tied5000 2025-02: tied5000 2025-03: tied5000 2025-04: tied5000 2025-05: tied5000 2025-06: tied5000 2025-07: tied5000 2025-08: tied5000 2025-09: tied5000 2025-10: tied5000 2025-11: tied5000 2025-12: tied5000 2026-01: tied5000 2026-02: tied5000 2026-03: tied5000 2026-04: tied5000 2026-05: tied5000 2026-06: tied5000 2026-07: tied5000 2026-08: tied5010 2023-09: tied5010 2023-10: tied5010 2023-11: tied5010 2023-12: tied5010 2024-01: tied5010 2024-02: tied5010 2024-03: tied5010 2024-04: tied5010 2024-05: tied5010 2024-06: tied5010 2024-07: tied5010 2024-08: tied5010 2024-09: tied5010 2024-10: tied5010 2024-11: tied5010 2024-12: tied5010 2025-01: tied5010 2025-02: tied5010 2025-03: tied5010 2025-04: tied5010 2025-05: tied5010 2025-06: tied5010 2025-07: tied5010 2025-08: tied5010 2025-09: tied5010 2025-10: tied5010 2025-11: tied5010 2025-12: tied5010 2026-01: tied5010 2026-02: tied5010 2026-03: tied5010 2026-04: tied5010 2026-05: tied5010 2026-06: tied5010 2026-07: tied5010 2026-08: tied5100 2023-09: tied5100 2023-10: tied5100 2023-11: tied5100 2023-12: tied5100 2024-01: tied5100 2024-02: tied5100 2024-03: tied5100 2024-04: tied5100 2024-05: tied5100 2024-06: tied5100 2024-07: tied5100 2024-08: tied5100 2024-09: tied5100 2024-10: tied5100 2024-11: tied5100 2024-12: tied5100 2025-01: tied5100 2025-02: tied5100 2025-03: tied5100 2025-04: tied5100 2025-05: tied5100 2025-06: tied5100 2025-07: tied5100 2025-08: tied5100 2025-09: tied5100 2025-10: tied5100 2025-11: tied5100 2025-12: tied5100 2026-01: tied5100 2026-02: tied5100 2026-03: tied5100 2026-04: tied5100 2026-05: tied5100 2026-06: tied5100 2026-07: tied5100 2026-08: tied5200 2023-09: tied5200 2023-10: tied5200 2023-11: tied5200 2023-12: tied5200 2024-01: tied5200 2024-02: tied5200 2024-03: tied5200 2024-04: tied5200 2024-05: tied5200 2024-06: tied5200 2024-07: tied5200 2024-08: tied5200 2024-09: tied5200 2024-10: tied5200 2024-11: tied5200 2024-12: tied5200 2025-01: tied5200 2025-02: tied5200 2025-03: tied5200 2025-04: tied5200 2025-05: tied5200 2025-06: tied5200 2025-07: tied5200 2025-08: tied5200 2025-09: tied5200 2025-10: tied5200 2025-11: tied5200 2025-12: tied5200 2026-01: tied5200 2026-02: tied5200 2026-03: tied5200 2026-04: tied5200 2026-05: tied5200 2026-06: tied5200 2026-07: tied5200 2026-08: tied5210 2023-09: tied5210 2023-10: tied5210 2023-11: tied5210 2023-12: tied5210 2024-01: tied5210 2024-02: tied5210 2024-03: tied5210 2024-04: tied5210 2024-05: tied5210 2024-06: tied5210 2024-07: tied5210 2024-08: tied5210 2024-09: tied5210 2024-10: tied5210 2024-11: tied5210 2024-12: tied5210 2025-01: tied5210 2025-02: tied5210 2025-03: tied5210 2025-04: tied5210 2025-05: tied5210 2025-06: tied5210 2025-07: tied5210 2025-08: tied5210 2025-09: tied5210 2025-10: tied5210 2025-11: tied5210 2025-12: tied5210 2026-01: tied5210 2026-02: tied5210 2026-03: tied5210 2026-04: tied5210 2026-05: tied5210 2026-06: tied5210 2026-07: tied5210 2026-08: tied5220 2023-09: tied5220 2023-10: tied5220 2023-11: tied5220 2023-12: tied5220 2024-01: tied5220 2024-02: tied5220 2024-03: tied5220 2024-04: tied5220 2024-05: tied5220 2024-06: tied5220 2024-07: tied5220 2024-08: tied5220 2024-09: tied5220 2024-10: tied5220 2024-11: tied5220 2024-12: tied5220 2025-01: tied5220 2025-02: tied5220 2025-03: tied5220 2025-04: tied5220 2025-05: tied5220 2025-06: tied5220 2025-07: tied5220 2025-08: tied5220 2025-09: tied5220 2025-10: tied5220 2025-11: tied5220 2025-12: tied5220 2026-01: tied5220 2026-02: tied5220 2026-03: tied5220 2026-04: tied5220 2026-05: tied5220 2026-06: tied5220 2026-07: tied5220 2026-08: tied5300 2023-09: tied5300 2023-10: tied5300 2023-11: tied5300 2023-12: tied5300 2024-01: tied5300 2024-02: tied5300 2024-03: tied5300 2024-04: tied5300 2024-05: tied5300 2024-06: tied5300 2024-07: tied5300 2024-08: tied5300 2024-09: tied5300 2024-10: tied5300 2024-11: tied5300 2024-12: tied5300 2025-01: tied5300 2025-02: tied5300 2025-03: tied5300 2025-04: tied5300 2025-05: tied5300 2025-06: tied5300 2025-07: tied5300 2025-08: tied5300 2025-09: tied5300 2025-10: tied5300 2025-11: tied5300 2025-12: tied5300 2026-01: tied5300 2026-02: tied5300 2026-03: tied5300 2026-04: tied5300 2026-05: tied5300 2026-06: tied5300 2026-07: tied5300 2026-08: tied2023-092024-032024-092025-032025-092026-03

Each square is one account at one month end: pale is tied, a solid square with a cross is a break.

786 of 792 account months tie to the cent. The one break is savings deposits, account 2010, first appearing in 2026-03 at $4,217.36 and carried unchanged into every later month: one break, located, not 6. Every posting traces to a sub ledger transaction.

Source: generated, Harborline general ledger, 22 accounts by 36 months, seed 20260831, as of 2026-08-31.

Account 2010: reported balance less the sum of its postings

-$4,000-$3,000-$2,000-$1,000$02023-092024-022024-072024-122025-052025-102026-032026-08Month endbreakDifference

Reported less postings

The difference is zero until 2026-03, then holds at -$4,217.36 in every later month, which is what one unposted or misposted entry looks like: a step, not a drift.

Source: generated, Harborline general ledger, 22 accounts by 36 months, seed 20260831, as of 2026-08-31.

Every data quality rule, with its hits

Three defects were injected into the generated data at known counts; each rule that should find one must find exactly that many. The real datasets' own issues are counted by the same rules and left in view rather than cleaned away.

RuleTableSeverityRows checkedRows hitInjectedFinding
application income missingloan applicationsflag36,2100
loan opened after as ofloansquarantine40,2880
loan balance negativeloan performancequarantine854,3890
transfer without counterpartydeposit entriesflag8,229,3311,7211,721โœ“ caught at the injected count
entry after as ofdeposit entriesquarantine8,229,3310
balance does not rolldeposit balancesflag2,127,521212212โœ“ caught at the injected count
posting duplicategl postingsquarantine17,990,7267,1937,193โœ“ caught at the injected count
posting zero amountgl postingsquarantine17,990,7260
card txn nonpositivecard transactionsquarantine1,077,2200
hmda exempt valuehmda larflag609,4139,864
hmda income not availablehmda larflag609,41349,974
hmda ltv not availablehmda larflag609,413171,322
cfpb response in progresscfpb narrativesflag46,0842
uci undocumented codeuci defaultflag30,000399
baf missing markerbafflag600,000564,284
bls month unavailablemacro monthlyflag1161

Source: mixed, every staged table, as of 2026-08-31.

FDIC institutions checked for the bank's name
27,834
0 collisions, active or inactive
Warehouse models built
62
210 of 210 tests pass
FDIC peers that stop reporting in the window
47
Found by rule and left out of the latest quarter's peer group

The break, as the control reports it

AccountFirst monthAmountMonths carriedComparisonFinding
20102026-03$4,217.366reported vs postingsthe injected break, located

Method and limitations

  • The ledger and its sub ledgers are generated, so the control is proved on a known answer: the planted break's account, month and amount are in the truth tables, and the test fails if the control reports anything else.
  • Reconciliation compares balances at month end. An offsetting pair of errors inside one month would tie; the sub ledger checks and the unsourced posting count are there for that.