Skip to content

From a dropped file to a locked period.

Six steps, one approval, and four assertions before the lock. Nothing reaches the ledger without a person committing it first.

  1. 1

    Drop or feed

    A bank or card feed connects through Bank Feeds using Plaid, read-only — it cannot move money. Pulled lines sit unpromoted until you promote them, per account, with a dry run first; they do not just appear in your books.

    Anything without a feed you drop on Batch extract: a PDF bank or card statement, or a spreadsheet of transactions. Receipts and check images drop too; they attach as evidence and never post. Other documents, like a payroll summary, go to chat, which reads them and proposes a journal entry.

    Every dropped file shows its real state — waiting, reading, ready, needs attention, or already in a commit — and a file that stops shows why. No spinner ever eats a file.

  2. 2

    It learns to read the statement

    The app calls the reader for one source a skill: which column holds the date, where the amount sits, what the totals should foot to. For a PDF statement the model builds that reader on the first read, foots it against the totals printed on that document, and saves it — next month the same statement reads itself. Spreadsheets you map by hand, and a client's check-register sheet can be saved so next month's checks land on the same key the bank will clear them against.

    Every revision of a reader is kept, in order, so you can see what changed the month a statement started reading differently.

  3. 3

    Staging

    Read rows land in staging. The app calls one of these rows a fact — the reviewer counts them, and the close checks that none are left outside a commit.

    Staging is the honest middle: the work is visible but nothing has been asserted. Rows get their account, their source account, a class, and a split where one line is really several. The raw line as it was read is kept beside the worked line — the original date and the statement's own debit and credit columns — so you can always see what the source actually said.

  4. 4

    Review

    Decisions — the screen's own heading reads Needs your decision — shows only what the model will not code on its own. Usually a couple of dozen items out of several hundred.

    A line is coded without asking you only when this company's own record justifies it: the vendor is resolved, there are prior codings that agree, the amount is in the band this vendor has been in before, and the descriptor has not changed shape. Fail any one of those and it becomes a card with the reason on it. You approve, or you change the account and it learns. The desk says how many decisions are waiting and how many of them block the close.

  5. 5

    Commit

    Approved work is sealed into a commit — the unit of recording, not the file and not the line. At finalization it is hashed and chained to the commit before it, and its lines are written to the ledger carrying that commit's id.

    A commit covers exactly one account, because it is the certification unit: one hash, one status, one undo boundary. Hand Batch extract two statements for different accounts and it refuses to seal them together. There is no path that writes a ledger line without a commit behind it, and once a commit is sealed a database rule blocks deleting a line or changing its amount, date or accounts.

  6. 6

    Lock

    Locking writes a close commit — the period range, who signed it, and a typed explanation for anything still not tying — hashed into the same chain as everything else. After that the period's transactions cannot be added to, moved or removed; the normal correction is a new adjusting commit in the open period. If you must go back, reopening is one button and a reason, and that is recorded too.

The shape of a close

The work nests. A board of clients and months, a desk for one month, a card for the one thing that is not finished, and a checklist that ends it.

Close board

Every company you can reach is a row, the last twelve months are the columns, and each cell is open, in review, or locked. Click a cell and you are on that period's checklist. Nothing is stored — the board is computed from the books every time you open it, so it cannot show green on a month that fails its own checklist.

Welcome — one company, one month

You land on one company and one period. A line across the top says how many items need you, how much of the period is posted, and how many bank accounts tie to their statement. The Close button beside it closes the month in one click — but only when nothing needs a person and every assertion passes. Otherwise it refuses and names the line that is not passing.

The cards on that desk

One card per area of the close: Needs your decision, Bank & card, What looks wrong, Inbox, Open questions, Checks, Fixed assets, Loans, 1099 & W-9, Payroll. Each is a door. A card with nothing outstanding says so.

What looks wrong

A separate list from Decisions, because it asks the opposite question: not how should this be coded, but what is missing. A vendor paid in each of the last three months and absent this month. An account at more than twice its usual level. A clearing account holding a balance before you have reached the lock. Things to go look at, during the month, with no proposal attached.

Flow and the reviewer

Every commit in the company, one card each, unfinished first — the month's work in progress. Open a card and its lines open in the staging reviewer, with the receipt tray beside it. A commit that has not been sealed can still be archived. A sealed one cannot.

Names and 1099s

Vendors and customers in one list, because the same name is often both, and the 1099 flag is set here. At close the 1099 worklist computes who crossed the filing line from the payments themselves — not from a checkbox someone remembered to tick — and shows who still has no W-9 on file. Tax IDs are encrypted and shown as last-four unless you verify to reveal one.

Loans and fixed assets

Drop the loan document in. The terms are read out of it, the schedule is built, and you confirm it once; after that each payment splits into principal and interest against that schedule. Both sides of the payment meet in one Loan Clearing account, and that account netting to zero at close is what proves they were the same money. Fixed assets get a straight-line book schedule and post the period's depreciation as a commit.

Checks

Checks written but not yet paid by the bank, per account, as of period end — the reconciling item on the bank rec. Anything unpaid past ninety days is marked stale and can be voided so the number is free again. Missing numbers in a sequence are shown as a question to ask the client, not as an error.

Close period

The four assertions computed live from the books, and the Lock button with those four in front of it. This is where the month is certified.

Reports

Ten reports, read straight from the ledger, not from a parallel copy. Profit & Loss, P&L by Class, Balance Sheet, and the Statement of Cash Flows in both indirect and direct form. Then the detail: Trial Balance, General Ledger, Journal Entries — and two a close tool needs, a Commit Register listing every sealed commit with its hash, and an Audit Trail. Any report prints to PDF or emails out. There is no ledger browser in the menu, on purpose: you reach a transaction by opening the number that contains it.

The four close assertions

The checklist is where the promise becomes visible. One screen per company and period, with four assertions computed live against the books — nothing is snapshotted, so nothing can go stale or disagree with the ledger:

  • Cash ties. For every bank and credit-card account, the ledger balance through period end — net of items not yet cleared — equals the ending balance read from the statement on file. No statement on file, and the line fails.
  • Nothing unfiled. No fact, in-flight commit, staged row or unidentified document for the period is left sitting outside a commit.
  • Clearing is empty. Every account whose policy says it must net to zero — transfer, payroll, split, suspense, undeposited funds — holds 0.00.
  • Schedules posted. Each active loan's scheduled payment for the period is posted, and a company with fixed assets has the period's depreciation posted. A company with neither sees no line at all.

A failing assertion is marked and named on the line. Beside the checklist sits a to-do list — unmatched receipts, missing W-9s, pending cash receipts, stale outstanding checks — which is advisory and never blocks.

A failing assertion has to be fixed, or explained in writing. The explanation is signed into the close commit alongside the certification, so the record shows what did not tie and why you locked anyway. The Lock button stays dark until every failing line has one.

Watch a period close

Video coming — render close-it-right from site/video/. The full script is below.

Transcript. A close board of companies and periods. One period is still open, so it is opened. Its checklist fills in as the work lands: cash ties to the statement, nothing is unfiled, clearing is empty — green. A to-do list appears beside it: a receipt with no match, a missing W-9. Neither stops anything. One assertion still fails: a loan payment the schedule expected this month was never posted. The Lock button stays dark. The payment is posted, the line turns green, and the Lock button lights. The period locks. Closed right.

Set up one company and close one month

The first setup is the work. The month after that is a desk, a few decisions and a checklist.

Start free