Find the ledger entries that don’t fit. Test the fix before anyone posts it.
A bank’s general ledger gets hundreds of entries a month. Today, an odd one is caught only if someone happens to notice it. This tool checks every row, ranks what looks wrong, says how much money is at stake and what to do, and proves whether a fix works.
Open the reviewThe problem
The general ledger is the bank’s main record of money. In the case file, almost every row is the daily interest the bank earns on its loans. These entries should follow a steady pattern: about the same total every Monday to Thursday, a bigger total on Fridays (they cover the weekend), and so on.
When something breaks that pattern — a missing day, a duplicate, a line with both a debit and a credit — it can mean the books are wrong.
- No systematic check. Problems are found only if a person notices them.
- Volume keeps growing. Manual review gets harder to do the same way each time.
- No shared definition of normal. Two reviewers can reach two answers.
Pain points we solve
What people in this field struggle with, the evidence, and what the tool does about it.
Errors are common, and teams are stretched
In a Gartner survey of 497 accounting staff, 18% said they make a financial error at least once a day and 59% make several a month. Gartner named low capacity as the main cause.1
Our answerEvery row is checked the same way, in seconds, every time you upload a file.
Nobody has written down what “normal” is
The case says it directly: there is no repeatable definition of normal, so different reviewers catch or miss different things.2
Our answerThe tool learns normal from the file itself and shows it in plain sentences, so anyone can check it.
Checks live in spreadsheets
74% of finance teams still rely on basic automation such as spreadsheet exports and macros; fewer than 10% have end-to-end automation.3 Research cited by Velixo found errors in 86–94% of real-world spreadsheets.4
Our answerUpload the export as it is (CSV or Excel). There are no formulas to build or maintain.
Finding a problem is slow, and alerts don’t say what to do
In a Sage survey of 1,600 finance staff, 56% said investigating anomalies has a medium-to-high impact on how long the close takes.5
Our answerIssues come ranked, with the money at stake, a confidence level and a short “what to do” list.
People don’t trust AI they can’t explain
In IDC research for Sage (2,275 finance leaders), 71% would reject an AI tool that is 99% accurate if it can’t explain its answers. They spend nearly 13 hours a week checking AI output.6
Our answerNo black box. Fixed rules decide every flag, and every number links back to a row in your file.
A fix can create a new error
A correcting entry is a new manual entry. Fixing the wrong line or date moves the mistake instead of removing it. Tools that suggest fixes describe doing so for “some anomaly patterns” only.7
Our answerProof-of-Fix tests every suggested fix before anyone posts it.
How it works
- UploadDrop in a CSV or Excel export. It is read in your browser and never sent to a server.
- Learn normalThe tool profiles the file: accounts, amounts, posting days and a normal daily total for each type of day.
- Run four checksFixed rules, the same every time. No AI model decides what is flagged.
- Rank and explainEach issue gets a priority, a confidence level, the money at stake and plain steps.
- Test the fixProof-of-Fix runs every check again on a corrected copy and shows what clears.
- Review and exportRecord a decision and a note, then download the ranked list.
The four checks
| Check | What it looks for | Example in the case file |
|---|---|---|
| Broken records R1 | A line with money on both sides, an amount that is not a number, a zero amount, a date that does not exist, or a missing field. | JE 1265 has a debit of $525.26 and a credit of $776 on one line. |
| Daily total far from normal R2 | Each business day’s interest total, compared with similar days (Mon–Thu, Friday, first Friday). | Nov 9 is 88.3% below a normal Monday. Nov 30 is 89.5% above. |
| Possible duplicates R3 | Two or more lines on the same day with the same account, side, amount and description. | JE 1767 and JE 1778: two $289 credits on Nov 30. |
| Weekend entries R4 | A line dated on a Saturday or Sunday, when weekend lines are rare in the file. | JE 1052 is dated Sunday, Sep 6, the day before Labor Day. |
Why not “round-dollar amounts”? In this file 99.7% of amounts are whole dollars, so round amounts are normal here. Amounts with cents are the unusual ones, and the tool points them out as supporting evidence.
How we decide what is “normal”
Compare like with like. A Friday carries the weekend, so it is compared only with other Fridays. The first Friday of the month is bigger still and has its own group.
Use the middle value. Normal is the median of the other days of the same type. The day being checked is left out, so it cannot hide itself.
Two tests must agree. A day is flagged only if it is more than 10% from normal and far outside the usual day-to-day swing (robust z of 4 or more). The first test ignores tiny wiggles; the second ignores days that are always noisy.
Shape matters too. A normal Monday-to-Thursday has the same mix of large and small lines. If that mix breaks, the day moves up in priority.
Open the review to see the profile of the loaded file.
How to read the daily chart
- Each bar is one business day. The middle line is a normal day (0%). Above the line: more interest than normal. Below: less.
- Example: Nov 30 is +89.5%: $75,894 against a normal $40,054.
- Red = check first. Amber = check next (needs a decision, for example a possible holiday). Gray = no flag.
- Two thin lines are the ±10% limits. A day must be outside them and far outside its usual daily change.
- Taller gray bars are still normal. Nov 5 is +5.1% (the extra credit on JE 1536). It is inside the limits.
- Hatched boxes are not scored: too few similar days (the three first Fridays).
- Fridays are not taller. A Friday is about 3 times a Monday because it covers the weekend, so it is compared only with other Fridays.
- A diamond marks another issue on that day, such as a broken row or a duplicate. Click a bar to see its rows.
Reading a result
Priority
Check first: broken records and days far from normal. Check next: needs a decision. Small item: little money, low risk.
Confidence
How strong the evidence is that the item is out of pattern — High, Medium or Low, with a one-line reason. It is not the chance that the entry is wrong.
Money at stake
The most money the issue could put in the wrong place. Each date counts once, duplicates count only the extra copy, and day totals count only the gap to normal. It is a ceiling, not a loss.
What to do
Two to four short steps, written in simple English (ASD-STE100 style): one action per step, so a new reviewer can follow them.
Proof-of-Fix
Most tools stop at “this looks wrong.” Some suggest a fix. We test the fix before anyone posts it.
- ProposeConcrete fixes: split a two-sided line, correct an impossible date, reverse a duplicate, move lines between days, or mark a holiday.
- Re-runApply the fix to a copy of the ledger and run all four checks again, with the same rules.
- Show the resultWhich flags clear, which stay, and whether a new one appears. Then a draft entry for approval.
The $289 duplicate on Nov 30. Reversing it clears the duplicate flag, but the day is still 89% too high. A reviewer who stopped there would think Nov 30 was fixed.
The amount “47,5” in the practice file. Reading it as 475 looks like a fix, but the re-run shows the day is still 11% short. The tool marks it borderline and does not recommend it.
When nothing works, it says so: “Do not post a correction before the source data shows the cause.”
How we compare
From each vendor’s public pages (read Oct 17, 2026). “Not described” means we could not find it, not that it does not exist.79101112
| This tool | MindBridge | BlackLine | HighRadius | FloQast | Big 4 audit tools | |
|---|---|---|---|---|---|---|
| Finds unusual entries | Yes | Yes | Yes | Yes | Yes | Yes |
| Explains each flag in plain words | Yes | Partly | Partly | Not described | Yes | Partly |
| Shows money at stake per issue | Yes | Not described | Not described | Not described | Not described | Not described |
| Suggests a fix | Yes | Not described | Not described | Partly | Not described | No |
| Tests the fix before it is posted | Yes | Not described | Not described | Not described | Not described | Not described |
| Works with no setup; data stays on your computer | Yes | No | No | No | No | No |
| Connects directly to the ERP | No | Yes | Yes | Yes | Yes | Yes |
| Covers every account and entity | Partly | Yes | Yes | Yes | Yes | Yes |
| Team workflow (assign, approve, audit trail) | Partly | Yes | Yes | Yes | Yes | Yes |
What they do better
- Direct connections to the ERP, so no file exports.
- Every account, entity and user, not one account.
- Models trained on many years and many companies.
- Team workflow: assign, approve, and a full audit trail.
What they are missing
- Proof that a fix works before it is posted.
- Money at stake on every issue, counted without double counting.
- Rules a reviewer can read and repeat, with every number tied to a row.
- A free tool that runs in minutes and keeps the data on your computer.
How we used AI — and where it was wrong
Tools. Claude (an AI assistant) helped profile the data, draft the rules, write the code and the tests. The finished tool runs fixed rules in Python; no AI model decides a flag or writes a number on screen.
Workflow. The AI proposes. A script (gl_verify.py) recomputes every number from the raw file. Automated tests (161 engine, 42 browser) check the result. A person decides.
Reusable build. A Claude skill file runs this engine on any new month of GL data, writes the top-five summary, and a validator rejects the summary if any number is not in the engine output.
Times the AI was confidently wrong
- “Every Friday has a ~68–69k line.” False: first Fridays have an ~86k line instead. Caught by listing every line over 50k for each Friday. Result: first Fridays became their own day type.
- “JE 1225–1530 use decimal formatting.” False: the format starts at JE 1258, with mixed formats before it. Caught by a run-length check on the raw text.
- “Nov 30 is a catch-up of Nov 9.” Stated as the only story. A test of the line mix found another pairing that fits as well. The tool now says the cause is unresolved and asks for the subledger.
- “Reading 47,5 as 475 fixes the day.” It looked right. The Proof-of-Fix re-run showed the day still 11% short, so the fix is marked borderline.
Honest limits and what is next
- The limits (10%, robust z 4) were tuned on one three-month file. They may need tuning for other banks. Each bank can change them in Review settings on the main page, including a dollar floor, and the check runs again. The days that come close but stay under the limits are listed under “Near the limit”.
- The file has one account and one side of each entry, so entries cannot be balanced.
- Without loan IDs, the tool cannot say which loan a line belongs to.
- No accuracy figure is claimed: there is no answer key for this data.
- A flag is a reason to look, never a finding of fraud or error.
- Next: keep a history of past months so “normal” improves every month.
- Next: connect to the ERP and the loan subledger.
- Next: more account types and multi-person review.
- Test with users: time to find the top issue, and whether reviewers pick the right next step.
Words used on this site
- General ledger (GL)
- The bank’s main record of every money movement. Each row is one line of an entry.
- Journal entry (JE)
- One accounting entry. The JE ID is its reference number.
- Debit / credit
- The two sides of an entry. A single GL line should use one side, not both.
- Accrual
- Interest the bank has earned but not yet received. It is recorded every business day.
- Subledger
- The detailed record behind a GL account, for example loan by loan. It is where you confirm the right amount.
- Median (“normal”)
- The middle value when you sort the numbers. One extreme day cannot pull it off course, unlike an average.
- Robust z
- How far a day is from normal, measured in typical day-to-day swings. 4 or more means far outside the usual spread.
- Reconcile
- Compare two records and explain every difference.
Sources
- Accountants make errors at work — Gartner survey (CPA Practice Advisor, Mar 2024)
- Neeley AI Forward — Emerging Track case: GL Anomaly Detection (case brief)
- Adoption of automation for monthly close lags — Trintech 2022 benchmark (Controllers Council)
- What actually causes month-end errors (Velixo, Jul 2026)
- The top 5 obstacles slowing down your close (Sage, 2021 survey)
- Finance leaders demand AI transparency as 71% reject unexplained decisions (Sage / IDC, Jul 2026)
- HighRadius anomaly management
- PCAOB staff: Audit Focus — Journal Entries (Jan 2025)
- MindBridge AI risk discovery
- BlackLine: journal entry automation and Journals Risk Analyser
- FloQast Variance Analysis
- EY: How an AI application can help auditors detect fraud (Helix GLAD)