Trust / IOLTA Three-Way Reconciliation
For the small firm that holds client money and has to prove it every month, instead of buying a legal accounting package whole to get one report out of it.
The three numbers either agree within a penny or they don’t.
You find that out in one command instead of an afternoon adding up client balances by hand.
$49/mo per firm, however many attorneys you have. The three-way check, the negative-balance exceptions, and RECONCILIATION.md, EXCEPTIONS.md, and trust.json on every run. Cancel any day, and every reconciliation you’ve run stays on your disk.
The three columns that have to agree
A bar auditor asks for one thing first. Show me that the bank statement, the general ledger, and the sum of your client sub-ledgers were the same number at the end of the month, and show me you did that every month.
Most firms can produce two of the three without much trouble. The bank statement belongs to the bank. The book balance comes off the general ledger. The third column, the one that is the actual point of the whole exercise, is somebody adding up every client’s balance by hand and hoping the total lands where it’s supposed to.
That’s the column that fails. And an out-of-balance trust account isn’t a bookkeeping error. It’s somebody else’s money that isn’t where it’s meant to be, and your bar reads it that way whether you meant it that way or not.
How the check runs
- Export the sub-ledgers. One row per client, a
clientcolumn and abalancecolumn. Currency formatting is fine. It reads$1,234.50, and it reads(45.00)as a negative, because that’s how an accounting export writes one. - Type in the two balances.
BANK_BALANCEandBOOK_BALANCEgo into the.envfile as numbers, straight off this period’s statement and the general ledger. - Run it. It sums the sub-ledgers, compares all three figures against each other within
TOLERANCE, flags every client balance that has gone below zero, and writesRECONCILIATION.md,EXCEPTIONS.md, andtrust.json.
What comes out of a run
- It compares all three figures against each other, not just book against bank. Any pair differing by more than
TOLERANCEbreaks the reconciliation, and the report tells you which pair broke it. - Every client sub-ledger that has gone negative is listed in its own file,
EXCEPTIONS.md, because a negative client balance means one client’s matter was funded out of another client’s trust money. That is a different conversation from a variance, and it deserves its own page. TOLERANCEdefaults to a cent. You can set it higher. Understand what you’re agreeing to when you do.- The CSV parser survives a real export, quoted fields, embedded commas and newlines,
""-escaped quotes, and the accounting parentheses convention for negative numbers. - The CLI exits non-zero when the account doesn’t reconcile or when any client balance is negative, so it can be wired into a scheduled job that fails loudly on the first of the month instead of waiting for somebody to look.
trust-reconcile validatechecks the configuration with no file I/O at all, which is how you confirm the setup before pointing it at live balances.RECONCILIATION.mdstates reconciled, yes or no, with the variances underneath it. It’s a document, it’s dated, and you can hand it to whoever asks for it.
Who this is for, and who it is not
For the firm of one to fifteen attorneys keeping trust records in QuickBooks or a spreadsheet, doing the three-way by hand or meaning to. If your bookkeeper already runs a monthly three-way inside a legal accounting package, this is covered and you shouldn’t switch.
It also doesn’t do your accounting. It posts no transactions, matches no individual deposits against bank activity, and knows nothing about your bar’s recordkeeping rules. It checks the arithmetic and it tells you where the arithmetic broke.
What it replaces
Clio Manage with trust accounting switched on, or TrustBooks, or a QuickBooks file with class tracking bolted to the side of it. TrustBooks in particular is better at exactly the thing this doesn’t attempt. It holds the ledger, records every trust transaction as it happens, and reconciles line by line against bank activity rather than at the total level. That’s a real bookkeeping system.
This isn’t one. It takes the balances you already keep and proves the three columns agree, monthly, on a dated document, for $49.
Your data
Client trust balances are the most sensitive numbers a law firm holds, and they never leave the disk. LEDGERS_CSV is read locally, summed in memory, and never transmitted. The only writes are the three reports, inside OUTPUT_FOLDER, each path checked against that root before anything is written, each file set to 0600. There’s no account holding your client balances, because there’s no account. The reconciliation is a dated file on your machine, which is the form an auditor wants it in anyway.
Pricing, and the first reconciliation
$49 a month for the firm. Every run, every month, with no per-matter and no per-client charge sitting on top. The setup is a CSV path and two numbers, so if your sub-ledger export already exists, the first RECONCILIATION.md is minutes away rather than a project with a kickoff call. Cancel any day, and every reconciliation you’ve already written stays where you wrote it.
Security and privacy
Handles client trust/IOLTA sub-ledger data (client names and balances) — sensitive law-firm financial data. Security is designed in.
NOT legal advice. This document describes software security controls, not legal or bar-compliance guidance. Follow your bar association’s rules for trust/IOLTA accounting and recordkeeping.
Principles
– Local-first. LEDGERS_CSV is read from disk and never transmitted anywhere; nothing in this tool touches the network. Nothing is uploaded, no telemetry, no cloud dependency.
– Non-destructive. The source ledger CSV is only read, never modified or deleted.
– Least privilege. Reads LEDGERS_CSV, writes only under OUTPUT_FOLDER.
Protections implemented (v0.1.0)
– Path-traversal defense — every output filename is sanitized (safeSegment) and every write is checked with assertWithinRoot(), so the report can’t be written outside OUTPUT_FOLDER.
– Fail-fast config validation — clear errors for missing/invalid LEDGERS_CSV/BANK_BALANCE/BOOK_BALANCE/OUTPUT_FOLDER/TOLERANCE before any file is touched.
– Restrictive permissions — the generated report (RECONCILIATION.md, EXCEPTIONS.md, trust.json) is written 0600.
– Defensive parsing — the CSV parser and currency parser never throw on malformed input (missing fields default to empty string, unparseable amounts default to 0); a bad row degrades the reconciliation rather than crashing it.
– Secrets discipline — .env and generated Reconciliations/ output are git-ignored; no client trust data in the repo.
Distribution / AV trust
Known limitations / roadmap
– Three-way reconciliation checks totals only in v0.1.0 — it does not verify each client sub-ledger line-by-line against individual bank transactions (no transaction-level matching yet).
– Negative-balance detection is a point-in-time snapshot of LEDGERS_CSV; it does not track whether a client’s balance dipped negative and recovered intra-period.
– TOLERANCE is a flat $ amount, not a percentage — large trust accounts may need a different tolerance than small ones.
Reporting
Report suspected vulnerabilities privately to the maintainer before public disclosure.
Legal disclaimer
This tool is NOT legal advice. It automates the arithmetic of a three-way trust reconciliation; it remains the responsible attorney’s/bookkeeper’s obligation to follow their bar association’s specific trust/IOLTA accounting, recordkeeping, and reporting rules.
Frequently asked questions about Trust / IOLTA Three-Way Reconciliation
What does the Trust / IOLTA Three-Way Reconciliation trust software actually do?
The Trust / IOLTA Three-Way Reconciliation is trust software built for the one number a law firm cannot afford to get wrong, whether the cash sitting in the trust account matches the money the firm is holding on behalf of its clients. It compares three separate figures against one another. The first is the balance on the trust bank statement. The second is the trust book balance in the firm’s own accounting records. The third is the combined total of every individual client sub-ledger. When those three agree to the penny, the account is in balance and the firm can prove it. When they do not, this trust software shows you exactly where the gap is instead of letting it hide inside a bank feed for another month.
The work happens in three short steps. You import the bank balance, the book balance, and the client-ledger balances. You run the three-way match. The tool returns a reconciliation plus a list of exceptions, the individual lines that do not tie out and need a person to review them. That exceptions list is where the value sits, because a busy firm rarely has time to hunt line by line for the single posting that landed in the wrong client ledger. The Massachusetts Supreme Judicial Court lays out the underlying duty in its Rule 1.15 on the safekeeping of client property, which requires a lawyer to hold trust money separate from the lawyer’s own funds and to keep complete records of it.
What you get out the other side is a bar-ready reconciliation report, a dated document you can hand to a partner, an outside auditor, or a bar examiner without rebuilding anything by hand. Run it every month and you accumulate a run of dated proof that the account balanced on each of those dates. That is the contemporaneous record a regulator expects to see, not a balance you scramble to reconstruct after a client complaint has already been filed. You can see how the report fits into a monthly close on the Trust / IOLTA Three-Way Reconciliation page.
Because the reconciliation runs on your own machine, the client-ledger detail never has to travel to an outside server to be checked. The tool reads the balances you give it, performs the match, and writes the report locally, keeping a record of what it compared and when. For a firm that has been doing this in a late-night spreadsheet, the point is not speed alone. It is that the numbers get checked the same way every single month, and any client whose funds have gone short surfaces as an exception the moment it happens rather than a quarter later, when the money and the memory of what caused it are both long gone.
The firm this is built for is the solo or small practice that must three-way reconcile an IOLTA or trust account but has no enterprise rules engine and no full-time bookkeeper to run one. For that firm the monthly reconciliation has always been a manual, error-prone job squeezed in around client work. Handing the repetitive matching to a defined tool means the check gets done on schedule, in the same way, whether the month was quiet or the busiest of the year.
How does three-way reconciliation help a firm meet its trust accounting obligations?
Every jurisdiction that regulates lawyers expects the same thing of a trust account, that the firm can show at any moment whose money is in it and that none of it has been borrowed, commingled, or lost. The three-way reconciliation is how a firm demonstrates that. By matching the bank balance, the book balance, and the sum of the client sub-ledgers on the same date, the trust software produces evidence that the account holds exactly what the client ledgers say it should. Massachusetts sets out the standard in its Rule 1.15 on safekeeping property, which tells a lawyer to keep trust property separate from personal property and to preserve complete records of trust account activity for six years after the representation ends.
Six years is a long time to keep a clean paper trail, and it is where a lot of firms quietly fall down. A reconciliation done in a spreadsheet and then overwritten next month leaves no durable record that the account was ever in balance. This trust software fixes that by writing a dated reconciliation report each time you run it, so the six-year record builds itself as a by-product of the monthly close rather than as a separate documentation chore. If a bar auditor asks for proof that the account balanced in a given month, you open that month’s report instead of trying to recreate it from memory.
The exceptions list carries its own compliance weight. A negative client balance is not a rounding quirk, it is a sign that one client’s funds may have paid out for another, which is the exact harm the trust rules exist to prevent. Surfacing that the day it happens gives the firm a chance to correct it before it becomes a reportable violation. You can see where trust reconciliation fits alongside the rest of the practice tools on the legal and professional page.
None of this asks the firm to change how it takes in or disburses client money. You keep your existing trust bank account and your existing bookkeeping. The tool sits on top, checks the three figures against each other, and hands back a report and a list of what needs attention. The compliance benefit is not that the software promises to keep you out of trouble. It is that it makes the honest, in-balance answer the easy one to produce, and it leaves a dated record every month that shows the work was actually done rather than assumed. For a solo or small firm without a full-time bookkeeper, that dated record is often the difference between a routine review and a painful one.
The record also protects the firm, not just its clients. If a disgruntled client later claims their money was mishandled, a run of monthly reconciliations showing the account in balance is the firm’s first and best answer. It converts a he-said dispute into a documented fact. Without that record, even an honest firm can struggle to prove a negative, that nothing went wrong, across years of activity. The trust software turns the compliance duty into an asset the firm can actually reach for when it matters, rather than a box it merely hopes it checked at some point in the past.
Where does our client trust data live, and is it safe?
The trust ledger is one of the most sensitive records a firm keeps. It ties named clients to dollar amounts and to the matters those dollars belong to, which is precisely the kind of personal financial information that attracts both regulators and thieves. The Trust / IOLTA Three-Way Reconciliation answers the safety question by design. It runs locally, on the firm’s own machine, and the client-ledger detail it reads does not get uploaded to an outside service to be reconciled. The trust software works with the balances you already hold, checks them, and writes its report to the same machine, so there is no second cloud copy of your client money data sitting on someone else’s server.
Keeping the data local does not remove the firm’s duty to protect it, and the tool is built to fit the way the Federal Trade Commission tells businesses to handle personal information. Its guide, Protecting Personal Information: A Guide for Business, lays out five plain steps: take stock of the data you hold, scale down what you keep, lock it, pitch what you no longer need, and plan ahead for problems. Because this trust software reads only the balances it needs and stores its output where you already control access, it lines up with the take-stock and scale-down parts of that guidance rather than working against them.
Local operation also keeps the firm in charge of who can open the reconciliation. There is no shared web portal to lock down and no vendor login to audit, because the report lives inside the firm’s own file structure and inherits whatever access controls already protect that folder. You can read more about how the tool handles firm data on the Trust / IOLTA Three-Way Reconciliation page.
The honest limit is worth stating. Running locally protects the data from a vendor breach, but it does not protect a machine that is never backed up or a laptop that walks out the door unencrypted. The tool keeps your trust data on your own equipment and keeps a record of what it did with it. The firm still owns the everyday security around that equipment. Pairing local-first reconciliation with sensible device security, full-disk encryption, a strong login, and a real backup, is what actually keeps client trust information where it belongs and out of the wrong hands.
It also helps to know what the tool does not collect. The reconciliation needs balances and ledger totals, the numbers that prove the account ties out. It does not need social security numbers, bank login credentials, or the underlying matter files to do its job, so the sensitive surface it touches is deliberately small. That narrowness is itself a protection, because data you never gather cannot leak from you. The Federal Trade Commission’s scale-down principle makes exactly this point, that the less personal information a business holds, the less it has to defend. For a firm weighing a hosted practice-management suite against a local tool for this one task, running the match locally keeps that ledger on infrastructure the firm controls.
How is this different from reconciling trust accounts in a spreadsheet?
Most small firms reconcile trust the way they always have, in a spreadsheet, and it works right up until it does not. A spreadsheet does whatever the person building it tells it to, which means a dragged formula, a mistyped balance, or a client ledger left off the sum can all produce a total that looks reconciled and is not. The trust software removes that class of error by running the same defined three-way match every time. It pulls the bank balance, the book balance, and the full set of client sub-ledgers, compares them the same way on every run, and refuses to call the account balanced when the figures disagree.
The second difference is the record. A spreadsheet is usually overwritten each month, so last month’s proof of balance is gone the moment this month’s numbers go in. The Trust / IOLTA Three-Way Reconciliation writes a separate dated report each run, building the durable history that a spreadsheet erases. The third difference is the exceptions view. A spreadsheet shows you a total. This trust software shows you the specific lines that break the match, which is what turns a two-hour hunt into a five-minute correction.
There is a security angle too. The National Institute of Standards and Technology frames good practice around understanding and reducing risk, and its Cybersecurity Framework is built to help an organization identify, protect, detect, and respond. A one-off spreadsheet emailed between staff is hard to govern under any of those headings. A single local tool that reads defined inputs and writes a controlled report is far easier to reason about. You can see how it sits next to the rest of the lineup on the legal and professional page.
What the tool does not do is replace the practice-management add-ons some firms already run. It is narrower than that on purpose. If your practice-management suite already three-way reconciles and keeps the dated proof, you may not need a separate tool for it. If it does not, or if you are still doing the match by hand in a spreadsheet, the trust software gives you a repeatable check and a record you can hand to an examiner without a late-night rebuild. It does one job, it does it the same way every month, and it leaves proof behind.
Consistency is the deeper gain. A spreadsheet built by one staff member often cannot be run by anyone else, because the formulas and layout live in that person’s head. When they are out, the reconciliation waits, or someone rebuilds it and introduces fresh mistakes. A defined tool takes the same inputs and produces the same report no matter who runs it, so the monthly close does not depend on a single person being at their desk. When the trust software reports a match, it applied the same rule it applies every month, and any break shows up in the exceptions list rather than hiding in a cell, which is what lets a reviewer sign off without redoing the work by hand.
How does the tool catch a negative client trust balance before it becomes a violation?
A negative client balance is the single most dangerous thing that can happen inside a trust account, because it means the firm has paid out more on one client’s behalf than that client actually had on deposit. In plain terms, someone else’s money covered the difference. That is commingling by another name, and it is the precise harm the trust rules are written to stop. The Trust / IOLTA Three-Way Reconciliation watches for it on every run and flags any client whose sub-ledger has dropped below zero, so the firm learns about it right away instead of during an audit.
The catch works because the tool reconciles at the client level, not just the account level. A trust account can look perfectly healthy in total while one client sits at negative two hundred dollars and another sits high enough to hide it. Summed together, the account still matches the bank. The trust software breaks the total apart into individual client ledgers, which is the only way a single client shortfall becomes visible. Massachusetts is explicit that this individual accounting matters in its Rule 1.15 on safekeeping client property, which requires records for each client whose funds the lawyer holds.
When a negative balance appears in the exceptions list, the firm has a window to act. Often the cause is innocent, a disbursement entered before a deposit cleared, or a fee moved a day early. Catching it the same week lets you correct the posting or move firm money in to cure the shortfall before anyone is harmed. Catching it a year later, under a bar inquiry, is a very different conversation. You can read how the alerts appear in the report on the Trust / IOLTA Three-Way Reconciliation page.
The alert is deliberately blunt. This trust software does not try to guess whether a negative balance is acceptable, because none of them are. It surfaces the client, the amount, and the date so a human can decide what to do. The firm keeps the judgment. The tool keeps the watch, runs the check the same way every month, and makes sure a shortfall that used to hide inside a column total gets seen while there is still time to fix it rather than explain it.
Timing is everything with a trust shortfall. The same negative balance is a minor bookkeeping fix in the week it appears and a career problem in the year it is discovered by someone else. Most shortfalls trace back to ordinary sequencing, a check written against funds that had not yet cleared, a wire posted late, or a fee taken a day before it was earned. None of those are misconduct on their own. They become misconduct when they sit uncorrected because no one was looking at the client-level detail. Running the reconciliation on a fixed monthly schedule closes that window, because the tool checks every client ledger on every run and the longest a shortfall can hide is until the next one, which is why the fixed cadence matters as much as the check itself.
| Attributes | Value |
|---|---|
| Deployment |
Cloud |
| Platform |
Web |
| License Type |
Subscription |
| Billing Period |
Monthly |
| Target Customer |
Law Firms |
| Free Trial |
Yes |
Frequently bought together
-
1099-K & Gross Receipts Tie-Out
$39.00 -
AI QA / Citation Layer for AI outputs
$39.00 -
Bates Numbering & Production Stamper
$69.00 -
Conflict-of-Interest Checker
$15.00 -
Contract Renewal & Obligation Tracker
$39.00 -
Contract Review Workbench
$75.00 -
Docket & Deadline Calculator
$29.00 -
Document Intake & Missing-Item Concierge
$75.00







