aboutsummaryrefslogtreecommitdiff
path: root/docs/finbudg.5.scd
blob: 72bfd5811f69aca99d5460b7e3ea54dcbc4ff529 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
finbudg(5)

# NAME

finbudg - Quick cli tool to calculate your expenses and balance for a set period
of time.

# DESCRIPTION

This manual page documents the syntax of the expenses files used by the
*finbudg* program.

# SYNTAX

Expenses files used by *finbudg* use the toml file format as their base for the
syntax.

## PREAMBLE

The expenses file should contain at the start the following keys:

*start_date*=YYYY-MM-DD
	This is the date when the period for this budget starts, e.g. your payday.

*end_date*=YYYY-MM-DD
	This is the date when the period for this budget ends, e.g. the day before
	your next payday.

*budget*=float64
	A floating point number that represents your budget for the specified period
	of time.

*essential_categories*=String[]
	An array of strings representing the categories that you want to take into
	account as "essential". _Optional_.

*[[days]]*
	An entry of this type is an entry for the array of tables *days* and
	contains the following keys:

		*date*=YYYY-MM-DD
			The date for this day when the following expenses were made.

		*[[days.expenses]]*
			An entry of this type is an entry for the nested array of tables
			*expenses* inside of an entry of type *days*. It may contain the
			following keys:

				*name*=String
					The name of the product/service/etc. that money was spent
					on.

				*price*=float64
					How much money was spent on said product/service/etc.

				*category*=String
					The category to which this expense belongs. _Optional_.

				*shared*=uint32
					If more than one, then the amount of people this expense was
					shared with. _Optional_.

				*recurring*=bool
					Indicates if this is a recurring expense, i.e. one that
					repeats for each period of time. For example, electricity
					bills. _Optional_.

# NOTES

The dates should be in ISO 8601 format with *NO* time in them, e.g.
*2020-04-20*.

You don't have to include every day in the period in your expenses file if you
didn't spend any money that day. The program will take into account the last
date in the file to count the number of days. Also, the *[[days.expenses]]* key
is optional, you can also include a day and omit the expenses.

If you're not very familiar with the TOML format, you should take a look at
*https://toml.io/en/v1.0.0-rc.2*. Especially the part about arrays of tables.

If you're still not sure how the input file should look like, or if you prefer
to learn by example, take a look at *https://github.com/Yaroslav-95/finbudg*.
The README.md includes an example of an expense file.

# SEE ALSO

*finbudg*(1)

# AUTHORS

Yaroslav de la Peña Smirnov <yps@yaroslavps.com>.