DEV Community

Damin Mutti profile picture

Damin Mutti

Founder and CEO of ZeraBooks, AI bookkeeping that books and reconciles bank and card statements and closes the month. Teams at top-10 U.S. accounting firms use our converter.

Joined Joined on  Personal website https://www.zerabooks.com

Work

Founder & CEO at ZeraBooks

Designing an AI general ledger: the model proposes, deterministic code disposes

Designing an AI general ledger: the model proposes, deterministic code disposes

Comments
4 min read
Splitting loan payments into principal and interest with Decimal, and generating the journal entries

Splitting loan payments into principal and interest with Decimal, and generating the journal entries

Comments
4 min read
A pre-flight validator for QuickBooks Online bank CSV uploads

A pre-flight validator for QuickBooks Online bank CSV uploads

Comments
4 min read
Bank reconciliation as code: deposits in transit, outstanding checks, book errors and one assertion

Bank reconciliation as code: deposits in transit, outstanding checks, book errors and one assertion

1
Comments
5 min read
Wells Fargo statements: using the half-empty 'Ending daily balance' column as a free parser test

Wells Fargo statements: using the half-empty 'Ending daily balance' column as a free parser test

Comments
5 min read
A sales tax payable tie-out in 50 lines of Python, for more than one jurisdiction

A sales tax payable tie-out in 50 lines of Python, for more than one jurisdiction

Comments
5 min read
Parsing RBC and TD chequing statements in Python: year-less dates, header-mapped columns and a balance proof

Parsing RBC and TD chequing statements in Python: year-less dates, header-mapped columns and a balance proof

Comments
5 min read
Bank statement analysis in pandas: netting out own-account transfers before you average deposits

Bank statement analysis in pandas: netting out own-account transfers before you average deposits

Comments
4 min read
Proving a parsed brokerage statement: the cash check and the position check in Python

Proving a parsed brokerage statement: the cash check and the position check in Python

Comments
4 min read
Splitting a business card statement by cardholder, and keeping year-to-date totals out of the rows

Splitting a business card statement by cardholder, and keeping year-to-date totals out of the rows

Comments
3 min read
Modeling a chart of accounts: number ranges, types and a CSV import format

Modeling a chart of accounts: number ranges, types and a CSV import format

Comments
6 min read
A line-item schema for invoice extraction (and the checks that catch bad reads)

A line-item schema for invoice extraction (and the checks that catch bad reads)

Comments
6 min read
Parsing financial statement PDFs: parentheses, comparative columns and subtotal checks

Parsing financial statement PDFs: parentheses, comparative columns and subtotal checks

1
Comments 1
6 min read
Detecting gaps and overlaps when merging monthly bank statements

Detecting gaps and overlaps when merging monthly bank statements

Comments
6 min read
Validating a Xero bank CSV before import: a small checker in plain JavaScript

Validating a Xero bank CSV before import: a small checker in plain JavaScript

Comments
6 min read
Nonprofit books as a data model: two extra dimensions on every ledger line

Nonprofit books as a data model: two extra dimensions on every ledger line

Comments
4 min read
A restaurant month as double-entry data: prime cost, tip liabilities and delivery gross-up

A restaurant month as double-entry data: prime cost, tip liabilities and delivery gross-up

Comments
4 min read
Modelling a month-end close as a state machine, with a lock date and an undo log

Modelling a month-end close as a state machine, with a lock date and an undo log

Comments 1
4 min read
Finding the month a bank balance broke: reconciliation as a data integrity check

Finding the month a bank balance broke: reconciliation as a data integrity check

Comments
4 min read
Parsing credit card statement PDFs: signs, detail lines and a total that has to tie

Parsing credit card statement PDFs: signs, detail lines and a total that has to tie

Comments
4 min read
Three-way reconciliation as a data integrity check for law firm trust accounts

Three-way reconciliation as a data integrity check for law firm trust accounts

Comments
4 min read
An AI agent that does the books without touching the database

An AI agent that does the books without touching the database

Comments 1
7 min read
Using the printed closing balance as a checksum for OCR'd bank statements

Using the printed closing balance as a checksum for OCR'd bank statements

Comments
4 min read
A proof of cash validator in 40 lines of Python: every row and every column has to tie

A proof of cash validator in 40 lines of Python: every row and every column has to tie

Comments
4 min read
A break-even model for bookkeeping costs: when does a hire beat a freelancer?

A break-even model for bookkeeping costs: when does a hire beat a freelancer?

Comments 1
4 min read
The trust account invariant: one bank balance, many owners, and the check that catches commingling

The trust account invariant: one bank balance, many owners, and the check that catches commingling

Comments 1
4 min read
Building a construction WIP schedule in Python: percent complete, over and under billing, and the month-end entry

Building a construction WIP schedule in Python: percent complete, over and under billing, and the month-end entry

Comments
4 min read
Pairing inter-account transfers across bank statements with pandas

Pairing inter-account transfers across bank statements with pandas

Comments
4 min read
Writing a transaction CSV that Google Sheets imports correctly: locale, decimals and formula injection

Writing a transaction CSV that Google Sheets imports correctly: locale, decimals and formula injection

Comments 1
4 min read
Migrating books between providers: tying opening balances to bank statements, with uncleared items

Migrating books between providers: tying opening balances to bank statements, with uncleared items

Comments
4 min read
Parsing OFX bank files by hand: SGML without end tags, GMT dates and backwards card signs

Parsing OFX bank files by hand: SGML without end tags, GMT dates and backwards card signs

Comments 1
4 min read
Parsing QFX files: an annotated sample, FITID dedupe, and the pitfalls that bite

Parsing QFX files: an annotated sample, FITID dedupe, and the pitfalls that bite

1
Comments 1
4 min read
The software stack a small CPA firm actually runs, one job at a time

The software stack a small CPA firm actually runs, one job at a time

Comments
4 min read
loading...