aboutsummaryrefslogblamecommitdiffstats
path: root/bud.1.scd
blob: fb10ddda790a5ff28e163823f60aa8d81b999740 (plain) (tree)





































































                                                                               
bud(1)

# NAME

bud - simple monthly budget tracker

# DESCRIPTION

*bud* is intended to replace the customary spreadsheet as a means of recording
routine expenses. It parses enumerated expenses, summing up which ones are
expected on which days of which months, and displays this information in
either an annual summary overview or a month-specific view.

# USAGE

## bud daily [month]

Shows total expenses for each day of the current month. Days with zero totals
are skipped. Lastly, shows total expenses for the first and second half of each
month. In the future this may be configurable, but right now it uses the 1st
though 14th and the 15th through end of month. This is intended to align with
semi-monthly pay cycles.

This will fail if any expenses in the given month do not have a day associated
with them.

Calling *bud* with no argument calls this.

## bud show [month]

Shows all expenses applicable to the given month, sorted by date then amount,
with a total at the bottom. Shows all available metadata for each expense. If
you don't specify a month, the current month is used.

## bud overview

Shows an overview of all expenses across all months. The "base" amount is the
minimum amount for any month (that is, the sum of all expenses incurred in
_all_ months). Amounts for other months are only shown if they differ from the
base amount.

# EXPENSE SYNTAX

The file containing expenses must be located at *$HOME/.config/bud/expenses*.
Expenses are organized in a newline-delimited *Key = Value* format, e.g.

	Name = Rent++
Category = Essentials++
Amount = 27500++
Method = Checking Account++
Months = \*++
Day = 1

*Name*, *Amount*, and *Months* are required. Other items are optional.

Amounts are indicated in the smallest possible currency denomination (i.e. 
cents for USD, yen for JPY). This is for future-proofing when/if custom
currency formating becomes possible.

Months are comma-delimited three-letter abbreviations, e.g. "Jan,Feb". The
asterisk (\*) is a special case meaning all months. In this way you can
easily represent an e.g. quarterly expense like "Jan,Jul".

Each expense must be separated by exactly one empty line, and the file must
end with a newline character. Lines beginning with the hash (#) are treated as
comments and ignored.

# CONFIGURATION

No configuration options exist. These may or may not exist in the future.