Cashflow

Compare your latest income & expenses to your average.

Cashflow is a simple command-line application written in Ruby using Thor. It's purpose is simple: to analyse your bank transactions (collecting only the date and amount) in order to build an average if your income and expenses over the last few months and compare these with the income and expenses for the current month.

Only transactions up to the current day of the month are included, so the app gives you good insight into your financial position at this exact point in the month -- extremely useful when you have regular monthly transactions such as rent and salary.

By default, only transactions from 4 months prior are factored into the calculations (or as far back as the stored transactions go), but this is configurable.

Usage

Install via rubygems: gem install cashflow. Basic useage is simple. You load a set of transactions (in ofx format), then print a report.

Useage screenshot

Note that Cashflow doesn't care about your net position; it only cares about the comparison to your averages. This means that, as in the example above, even if your net position is negative (ie, you've spent more than you've earned), Cashflow will still report a positive outcome provided you have made an improvement on your average.

Commands

cashflow help            # Show this help message
cashflow help COMMAND    # Describe available commands or one specific command
cashflow load PATH       # Loads the OFX file at the specified PATH
cashflow report          # Analyses the stored transactions and prints a comparison report
cashflow version         # Prints the current version number

cashflow load may be used mutiple times -- duplicate transactions will not be imported. You may also load ofx exports for multiple accounts.

cashflow report takes optional parameters. You can specify the date range for the transactions to compare against by passing -s or --span followed by a number repensenting the number of months to use. To print a report for a single account only, you may pass -a or --account followed by the account name or number (this is displayed when the file is imported).