ZFinance

ZFinance is a personal finance software system built for my family after I grew frustrated with limitations in off the shelf finance software. ZFinance consists of a mix of the flexibility of a spreadsheet, the personal finance-specific automation and reporting power of dedicated desktop finance programs, and the convenience of an access-anywhere multi-user web application. The front end application is written in Javascript targeted at modern web browsers. The back end runs as a PHP/MySQL REST API.

Premise

ZFinance stores all transactions in a single list (not divided into accounts/envelopes) and allows you to filter using faceted and keyword search into an arbitrary "working set" containing the information you want to work with right now. Aggregate statistics (sums, average, asset normalization, etc) are generated live for the current working set and for the currently selected transactions. Instead of having separate systems for transaction data entry, budgeting, and reporting the application is a live interactive report of your entire financial system. Transactions can be entered, edited, and removed inline from anywhere in the application.

Key Features

  • Web Based, available anywhere. Multiple users can view and edit simultaneously without interfering.
  • Mobile-friendly quick add transaction.
  • Envelope budgeting is used throughout to abstract physical accounts from spending allocation decisions.
  • Powerful ad-hoc reporting based on faceted search and live aggregate statistics generation.

Project Status

My wife and I use ZFinance as our primary financial organization system. I have done limited trials of the development version with other users and gathered great feedback. Personal finance software is a difficult problem to solve and software alone is only a small part of a successful personal finance system. Making a non-trivial difference in user's financial lives requires them to change behavior in ways that software alone cannot compel them to do. Better tools are not enough. I plan to continue to fixing bugs in ZFinance and testing ways to make its innovations applicable to a wider variety of financial situations.