All work Live, 2024

CompanyDiary

Business finance and partner ledger

CompanyDiary interface

The problem

Small partnerships track money in a notebook until the first disagreement, at which point nobody can reconstruct what happened. This keeps a ledger that can be audited.

What I built

Entries are immutable. A mistake is corrected with a reversing entry, not an edit, which means the history stays true and the balance is always derivable from the record.

Each partner has a running balance computed from the ledger rather than stored, so a stored total can never drift out of agreement with the transactions behind it.

Architecture

Django and PostgreSQL. Balances are aggregates over the entry table, with a periodic reconciliation check that flags any discrepancy.

Problems worth writing down

Editable history

The first version allowed edits, and a corrected entry made an old report wrong. Reversing entries replaced editing entirely.

Rounding

Floating point cents did not add up across a year. Storing minor units as integers ended the problem.